Yukarıdakilerin tümü, LaTeX'te güzel, esnek (veya aşırı yüklenmiş bir işlevi yasaklamanın) olabileceğini gösteriyor !!! (bu TeX kodu bana yunanca gibi görünüyor)
Pekala, sadece son (esnek olmasa da) gelişimimi eklemek için, işte son zamanlarda tez dokümanımda kullandım
\usepackage{ifthen} % provides conditonals...
Komutu, varsayılan olarak boş "isteğe bağlı" komut kümesiyle başlatın:
\newcommand {\figHoriz} [4] [] {
Daha sonra, isteğe bağlı bağımsız değişkenin boş olup olmamasına bağlı olarak makroyu geçici bir değişken (\ temp {}) ayarladım. Bu, geçirilen herhangi bir argümana genişletilebilir.
\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)
Ardından iki durum için \ temp {} değişkenini kullanarak makroyu çalıştırıyorum. (Burada, kısa başlığı, kullanıcı tarafından belirtilmemişse, uzun başlığa eşit olacak şekilde ayarlar).
\begin{figure}[!]
\begin{center}
\includegraphics[width=350 pt]{#3}
\temp %see above for caption etc.
\label{#2}
\end{center}
\end{figure}
}
Bu durumda, yalnızca \ newcommand {} 'ın sağladığı tek, "isteğe bağlı" bağımsız değişkeni kontrol ederim. Örneğin 3 "isteğe bağlı" bağımsız değişken için ayarlayacak olsaydınız, yine de 3 boş değiştirge göndermeniz gerekir ... ör.
\MyCommand {first arg} {} {} {}
Bu oldukça aptalca, biliyorum, ama bu LaTeX ile gideceğim kadarıyla - TeX koduna bakmaya başladığımda o kadar da mantıklı değil ... Bay Robertson'un xparse yöntemini beğeniyorum, belki de ben Deneyeceğim ...