2008-09-23 14 views
12

मेरे पास एक कमांड है जिसमें एक ग्राफिक्स कमांड शामिल है - मैं अपने आदेश में एक छवि पास कर सकता हूं, और यह वास्तव में छवि सहित पहले मेरे लिए कुछ मानक स्वरूपण करेगा। इस आदेश के माध्यम से मैं शामिल कुछ छवियों को \ textwidth से छोटा है, जबकि कुछ बड़े हैं। मैं, \ textwidth करने के लिए नीचे बड़े चित्र पैमाने पर करने के जबकि ऊपर छोटी छवियाँ स्केलिंग नहीं करना चाहते हैं - इसका मतलब है मैं तो बस ऐसा नहीं कर सकतेस्केल छवि नीचे, लेकिन लेटेक्स में नहीं

\includegraphics[width=\textwidth]{img} 

वहाँ एक maxwidth निर्दिष्ट करने के लिए कोई तरीका है? या, मैं किसी भी तरह छवि की चौड़ाई तो मैं जैसे

\ifthenelse{\imagewidth > \textwidth}{% 
    \includegraphics[width=\textwidth]{img}}{% 
    \includegraphics{img}} 

उत्तर

16

छवि की चौड़ाई प्राप्त करने के लिए आप इस कोड का उपयोग कर सकते हैं:

\usepackage{graphicx} 
\usepackage{calc} 

\newlength{\imgwidth} 

\newcommand\scalegraphics[1]{% 
    \settowidth{\imgwidth}{\includegraphics{#1}}% 
    \setlength{\imgwidth}{\minof{\imgwidth}{\textwidth}}% 
    \includegraphics[width=\imgwidth]{#1}% 
} 

:

\newlength{\imgwidth} 
\settowidth{\imgwidth}{\includegraphics{img}} 

आप दस्तावेज़ प्रस्तावना में यह इस्तेमाल कर सकते हैं एक नया आदेश बनाने के लिए स्वचालित रूप से चौड़ाई सेट करने के और फिर, आपके दस्तावेज़ में:

\scalegraphics{img} 

मुझे आशा है कि इससे मदद मिलती है!

+0

मैं डॉन ' मुझे पता नहीं है कि मैंने कितनी बार \ settowidth देखा और फैसला किया कि यह किसी कारण से छवियों पर काम नहीं करेगा - धन्यवाद! –

+0

मैं भी keepaspectrati जोड़ने की सिफारिश करेंगे ओ शामिल करने के लिए तर्कों में से एक के रूप में। जैसा कि नाम कहता है, यह निर्दिष्ट के साथ स्केल करते समय छवि के पहलू अनुपात को बनाए रखता है। उदा। \ includegraphics [width = \ imgwidth, keepaspectratio] {# 1} – mxg

-3

CTAN मैनुअल और गूगल परिणाम के माध्यम से खोज के कुछ ही मिनटों के बाद कुछ कर सकते हैं प्राप्त कर सकते हैं, मुझे लगता है कि मैं सुरक्षित रूप से कह सकते हैं कि है कि आप क्या करना चाहते हैं या तो असंभव या बहुत मुश्किल है। मेरी एकमात्र सिफारिश यह है कि आपके पास दो कमांड हैं, एक छोटी छवियों के लिए और एक बड़ा है, या एक विकल्प के साथ एक कमांड है।

एक तरीका हो सकता है, लेकिन मैं इसे अन्य एसओ में छोड़ देता हूं। बेहतर जवाब प्रदान करने के लिए लाटेक्स विज़ार्ड।

संपादित करें: मैं गलत हूं, ऊपर देखें।

+0

मैं एक ही निष्कर्ष पर आया - हालांकि, मुझे छवि की चौड़ाई कैसे प्राप्त करने के अलावा, सब कुछ पता चला है, इसलिए मैं वास्तव में उम्मीद कर रहा हूं कि मैं उस अंतिम बाधा को प्राप्त कर सकता हूं। –

1

मैं वैकल्पिक छवि ऊपर या नीचे एक सा स्केलिंग के लिए एक अतिरिक्त पैरामीटर की तरह है, तो \ scalegraphics की मेरी संस्करण इस तरह दिखता है:

\newcommand\scalegraphics[2][]{% 
    \settowidth{\imgwidth}{\includegraphics{#2}}% 
    \setlength{\imgwidth}{\minof{#1\imgwidth}{\textwidth}}% 
    \includegraphics[width=\imgwidth]{#2}% 
} 
0

adjustbox पैकेज इस के लिए उपयोगी है। नीचे आपको एक छोटा सा उदाहरण मिलेगा। आप के लिए महत्वपूर्ण प्रासंगिक उदाहरण के लिए

\documentclass[a4paper]{article} 


\usepackage[demo]{graphicx} 
\usepackage[export]{adjustbox} 

\begin{document} 

\adjustbox{max width=\linewidth}{\includegraphics[width=.5\linewidth,height=3cm]{}} 

\adjustbox{max width=\linewidth}{\includegraphics[width=2\linewidth,height=3cm]{}} 

\includegraphics[width=2\linewidth,height=3cm,max width=\linewidth]{} 
\end{document} 

आप export पैकेज विकल्प अपनी चाबियों का सबसे सीधे \includegraphics साथ इस्तेमाल किया जा सकता का उपयोग करते हैं, max width: यह निम्नलिखित (अलावा triming अनुमति देता है, कतरन, मार्जिन और सापेक्ष स्केलिंग जोड़ने।

संबंधित मुद्दे