ऊपर शो कठिन सब के सब इसे बनाने के लिए किया जा सकता है एक अच्छा लचीला (या एक ओवरलोड न करे) LaTeX में समारोह !!! अच्छी तरह से (कि टेक्स कोड मेरे लिए यूनानी तरह दिखता है)
, बस मेरी हाल ही में (यद्यपि के रूप में लचीला नहीं) विकास को जोड़ने के लिए, यहाँ है कि मैं क्या हाल ही में मेरी थीसिस दस्तावेज़ में इस्तेमाल किया गया है, साथ
\usepackage{ifthen} % provides conditonals...
प्रारंभ आदेश, "वैकल्पिक" कमांड डिफ़ॉल्ट रूप से खाली सेट के साथ:
\newcommand {\figHoriz} [4] [] {
मैं तो मैक्रो है, एक अस्थायी चर, \ अस्थायी {} सेट अलग ढंग पर किया जाए या नहीं वैकल्पिक तर्क खाली है निर्भर करता है। इसे किसी भी पारित तर्क के लिए बढ़ाया जा सकता है।
\ifthenelse { \equal {#1} {} } %if short caption not specified, use long caption (no slant)
{ \def\temp {\caption[#4]{\textsl{#4}}} } % if #1 == blank
{ \def\temp {\caption[#1]{\textsl{#4}}} } % else (not blank)
फिर मैं दो मामलों के लिए \ temp {} चर का उपयोग कर मैक्रो चलाता हूं। (यहां यह केवल लंबे कैप्शन के बराबर शॉर्ट-कैप्शन सेट करता है यदि यह उपयोगकर्ता द्वारा निर्दिष्ट नहीं किया गया था)।
\begin{figure}[!]
\begin{center}
\includegraphics[width=350 pt]{#3}
\temp %see above for caption etc.
\label{#2}
\end{center}
\end{figure}
}
इस मामले में मैं केवल एकल, "वैकल्पिक" तर्क की जांच करता हूं जो \ newcommand {} प्रदान करता है। यदि आप इसे सेट अप करना चाहते हैं, तो कहें, 3 "वैकल्पिक" तर्क, आपको अभी भी 3 रिक्त तर्क भेजना होगा ... उदाहरण के लिए।
\MyCommand {first arg} {} {} {}
जो बहुत मूर्ख, मुझे पता है, लेकिन इस बारे में के रूप में दूर है के रूप में मैं LaTeX के साथ जाने के लिए जा रहा हूँ - यह सिर्फ इतना है कि एक बार sensical नहीं है मैं टेक्स कोड देख शुरू ... मैं श्री पसंद करते हैं रॉबर्टसन के xparse विधि हालांकि, शायद मैं यह कोशिश करता हूँ ...
प्रासंगिक प्रश्न: [साथ और वैकल्पिक तर्क के बिना विभिन्न आदेश परिभाषाओं] (http://tex.stackexchange.com/q/308/1347) । –