
Eu escrevi alguns comandos, adicionando recentemente alguns comandos convenientes \FS
para adicionar fontes de figuras:
\newcommand{\FS}[1]{%
\protect\\{\protect\scriptsize{}Bildquelle: #1}}
Não sei se isso está correto (todos esses \protect
), mas parece funcionar por dentro \caption
. Infelizmente tentei melhorar o comando, adicionando um parâmetro opcional:
\newcommand{\FS}[2][Bildquelle]{%
\protect\ifthenelse{\equal{#1}{}}%
\protect\\{\protect\scriptsize{}#2}
\protect\\{\protect\scriptsize{}#1: #2}}
Ao usar a variante sem nenhum parâmetro opcional especificado, o efeito é que a #2
saída é expandida, seguida por expandida Bildquelle: #2
(na verdade, mesmo ao especificar o parâmetro opcional, a saída é duplicada conforme descrito). Por exemplo:
Não estou familiarizado o suficiente com o TeX para poder resolver o problema sozinho, mesmo depois de ler essas respostas no \protect
. Como o comando deve ser escrito?
Responder1
Observe que \ifthenelse{<condition>}{<true>}{<false>}
requer <true>
e <false>
para ser agrupado. Caso contrário, presume-se que os dois tokens após <condition>
denotam <true>
e <false>
. Na sua configuração, <true>
is \protect
e \\
is <false>
. Você provavelmente estava procurando por algo como
\newcommand{\FS}[2][Bildquelle]{%
\protect\ifthenelse{\equal{#1}{}}%
{\protect\\{\protect\scriptsize{}#2}}
{\protect\\{\protect\scriptsize{}#1: #2}}}
Usando o teste condicional emComo verificar se um valor de macro está vazio ou não criará texto com condicionais TeX simples?, você pode definir \FS
como sendo
\newcommand{\FS}[2][Bildquelle]{%
\\
\scriptsize
\if\relax\detokenize{#1}\relax\else
#1:
\fi
#2%
}
Aqui está um exemplo mínimo completo do 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}