在列表标题中引用

在列表标题中引用

我正在尝试在列表标题中引用一篇论文。我有以下代码:

\begin{lstlisting}[caption=Example of something (Adapted from \cite{abc})]
   example
\end{lstlisting}

但这给了我错误!它说! Illegal parameter number in definition of \reserved@a。有人能帮我解决这个问题吗?

答案1

这看起来像是一个典型的“移动参数中的脆弱命令问题”。但是以下文档没有显示任何问题:

\documentclass{article}
\usepackage{listings}
\begin{document}
\lstlistoflistings
\begin{lstlisting}[caption=Example of something (Adapted from \cite{abc})]
   example
\end{lstlisting}
\begin{thebibliography}{1}
\bibitem{abc} x
\end{thebibliography}
\end{document}

\cite所以我怀疑您正在使用某种会以某种方式破坏稳健性的包。

解决这个问题的一种方法是写作

\protect\cite{abc}

在标题中,但可能用最少的例子可以更好地解决这个问题。

正如 Gonzalo Medina 在其评论中正确指出的那样,也有可能写作

\begin{lstlisting}[
  caption={[Example of something]Example of something (Adapted from \cite{abc})}
]

这样只有“某事物的示例”才会被发送到列表列表(如果采用的参考书目样式是“未分类”的话,这一点非常重要)。

相关内容