
Ich habe einige Befehle geschrieben und kürzlich einige praktische Befehle \FS
zum Hinzufügen von Abbildungsquellen hinzugefügt:
\newcommand{\FS}[1]{%
\protect\\{\protect\scriptsize{}Bildquelle: #1}}
Ich weiß nicht, ob das richtig ist (alles davon \protect
), aber es scheint innerhalb zu funktionieren \caption
. Leider habe ich versucht, den Befehl zu verbessern, indem ich einen optionalen Parameter hinzugefügt habe:
\newcommand{\FS}[2][Bildquelle]{%
\protect\ifthenelse{\equal{#1}{}}%
\protect\\{\protect\scriptsize{}#2}
\protect\\{\protect\scriptsize{}#1: #2}}
Wenn Sie die Variante ohne Angabe eines optionalen Parameters verwenden, wird „expanded“ #2
und dann „expanded“ ausgegeben. Bildquelle: #2
(Tatsächlich wird die Ausgabe auch bei Angabe des optionalen Parameters wie beschrieben dupliziert.) Beispiel:
Ich kenne mich mit TeX nicht gut genug aus, um das Problem selbst beheben zu können, selbst nachdem ich die Antworten dazu gelesen habe \protect
. Wie soll der Befehl geschrieben werden?
Antwort1
Beachten Sie, dass und gruppiert werden \ifthenelse{<condition>}{<true>}{<false>}
müssen . Wenn nicht, wird angenommen, dass die beiden Token nach dem und bezeichnen . In Ihrem Setup ist und ist . Sie haben wahrscheinlich nach etwas wie gesucht<true>
<false>
<condition>
<true>
<false>
<true>
\protect
\\
<false>
\newcommand{\FS}[2][Bildquelle]{%
\protect\ifthenelse{\equal{#1}{}}%
{\protect\\{\protect\scriptsize{}#2}}
{\protect\\{\protect\scriptsize{}#1: #2}}}
Verwendung des bedingten Tests inWie kann ich mit einfachen TeX-Bedingungen prüfen, ob ein Makrowert leer ist oder keinen Text erstellt?können Sie stattdessen definieren, \FS
dass
\newcommand{\FS}[2][Bildquelle]{%
\\
\scriptsize
\if\relax\detokenize{#1}\relax\else
#1:
\fi
#2%
}
Hier ist ein vollständiges Minimalbeispiel der Verwendung:
\documentclass{article}
\usepackage{caption}
\newcommand{\FS}[2][Bildquelle]{%
\\
\scriptsize
\if\relax\detokenize{#1}\relax\else
#1:
\fi
#2%
}
\begin{document}
\begin{figure}
\caption{Some caption. \FS{abc}}
\caption{Another caption. \FS[abc]{def}}
\caption{Final caption. \FS[]{ghi}}
\end{figure}
\end{document}