
Escribí algunos comandos y recientemente agregué algunos comandos convenientes \FS
para agregar fuentes de figuras:
\newcommand{\FS}[1]{%
\protect\\{\protect\scriptsize{}Bildquelle: #1}}
No sé si esto es correcto (todos esos \protect
), pero parece funcionar por dentro \caption
. Lamentablemente intenté mejorar el comando, agregando un parámetro opcional:
\newcommand{\FS}[2][Bildquelle]{%
\protect\ifthenelse{\equal{#1}{}}%
\protect\\{\protect\scriptsize{}#2}
\protect\\{\protect\scriptsize{}#1: #2}}
Cuando se utiliza la variante sin ningún parámetro opcional especificado, el efecto es que #2
se genera la salida expandida, seguida de la expandida Bildquelle: #2
(en realidad, incluso cuando se especifica el parámetro opcional, la salida se duplica como se describe). Por ejemplo:
No estoy lo suficientemente familiarizado con TeX como para poder solucionar el problema yo mismo, incluso después de leer esas respuestas en \protect
. ¿Cómo se debe escribir el comando?
Respuesta1
Tenga en cuenta que \ifthenelse{<condition>}{<true>}{<false>}
requiere <true>
y <false>
para ser agrupado. De lo contrario, <condition>
se supone que los dos tokens que siguen a denotan <true>
y <false>
. En su configuración, <true>
es \protect
y \\
es <false>
. Probablemente estabas buscando algo como
\newcommand{\FS}[2][Bildquelle]{%
\protect\ifthenelse{\equal{#1}{}}%
{\protect\\{\protect\scriptsize{}#2}}
{\protect\\{\protect\scriptsize{}#1: #2}}}
Usando la prueba condicional en¿Cómo comprobar si un valor de macro está vacío o no crea texto con condicionales TeX simples?, en su lugar puedes definirlo \FS
como
\newcommand{\FS}[2][Bildquelle]{%
\\
\scriptsize
\if\relax\detokenize{#1}\relax\else
#1:
\fi
#2%
}
Aquí hay un ejemplo mínimo completo del uso:
\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}