Tutto lo spettacolo sopra sia difficile può essere quello di fare una bella, flessibile (o vietare un sovraccarico) funzione in LaTeX !!! (Che il codice TeX assomiglia greco a me)
bene, solo per aggiungere il mio recente (anche se non così flessibile) di sviluppo, ecco quello che ho utilizzato di recente nella mia tesi doc, con
\usepackage{ifthen} % provides conditonals...
Inizio il comando, con il comando "optional" insieme in bianco per impostazione predefinita:
\newcommand {\figHoriz} [4] [] {
ho poi la macro impostare una variabile temporanea, \ temp {}, in modo diverso a seconda se l'argomento opzionale è vuoto. Questo potrebbe essere esteso a qualsiasi argomento passato.
\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)
Poi eseguire la macro utilizzando il \ temp {variabile} per i due casi. (Qui imposta semplicemente il sottotitolo per pareggiare la didascalia lunga se non è stato specificato dall'utente).
\begin{figure}[!]
\begin{center}
\includegraphics[width=350 pt]{#3}
\temp %see above for caption etc.
\label{#2}
\end{center}
\end{figure}
}
In questo caso, controllo solo il singolo argomento "facoltativo" fornito da \ newcommand {}. Se dovessi configurarlo per, diciamo, 3 argomenti "facoltativi", dovresti comunque inviare i 3 argomenti vuoti ... ad es.
\MyCommand {first arg} {} {} {}
che è abbastanza stupido, lo so, ma questo è quanto ho intenzione di andare con LaTeX - non è solo che sensical una volta che iniziare a guardare il codice TeX ... mi piace Mr. metodo xparse di Robertson, però, forse ci proverò ...
questione rilevante: [definizioni comando diverso con e senza argomento opzionale] (http://tex.stackexchange.com/q/308/1347) . –