LaTeX - 在图的标题中插入引用

31

在LaTeX中,我想在图例中添加一个引用,例如:

\begin{figure}
   ...
   \caption{This is the legend of this figure (reprinted from \cite{something}).}
   ...
\end{figure}

但是引用不允许放在说明文字中,只能放在正文中。我的参考文献可以在文本的其他地方工作。

有什么建议吗?

谢谢

2个回答

57
发现解决方案:将 \cite{ref} 改为 \protect\cite{ref} 或者更简短的写法:'{\cite{ref}}'

3
不了解PdfLaTeX,但这在“xelatex”中无法工作。 - Subhamoy S.
当我使用pdflatex时,这确实为我解决了问题。 - Tom
1
对于我(pdflatex),\protect有效,但用{}包围不行。 - drevicko
同样适用于超链接 -- 使用 \protect\hyperlink{supp1}{补充链接 1} 而不是 \hyperlink{supp1}{补充链接 1}。 - maia
使用BibLaTeX时,{\protect\autocite{ref}}在XeLaTeX中可以正常工作。因此,将\protect和引用命令放在一对花括号中,即{\protect\cite{ref}},也可以在XeLaTeX中正常工作。 - Carlos Luis Rivera

7

鉴于被接受的答案似乎有点“hacky”(并且对我也不起作用),我将发布我的解决方案:

\begin{figure}
  ...
  \caption[Cap for listoffigures]{Cap below figure with cite \cite{source}}
  ...
\end{figure}

这个编译没有错误和警告。


1
我正在使用xelatex编译,但是我在标题中看不到引用。将其括在\protect{}中也没有效果。 - Subhamoy S.
@SubhamoyS。使用BibLaTeX,{\protect\autocite{ref}}在XeLaTeX中可以正常工作。因此,将\protect和引用命令放在一对花括号中,即{\protect\cite{ref}},也可以在XeLaTeX中正常工作。 - Carlos Luis Rivera

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接