是否可以以某种方式将包含页面规范的引用(如)放入\cite[page]{book}
图表列表相关的图表标题中,即\caption[*HERE*]{...}
?
我可以
\caption[\protect\cite{book}]{other text}
但
\caption[\protect\cite[page]{book}]{other text}
在第一次运行中产生book] other text
作为标题的结果,并在第二次 LaTeX 运行中产生错误“\NAT@@cite 的参数有一个额外的}”。
我正在使用 pdfLaTeX 和 natbib。
答案1
可选参数(在括号[
和 中]
)的扫描方式与强制参数(在花括号{
和 中}
)的扫描方式略有不同;TeX 会计算花括号,但不会计算花括号。因此,根据您的输入,看到的可选参数是
\protect\cite[page
也就是说,从[
到第一个的一切]
(相对于大括号)。为了避免此问题,可选参数内的括号必须用大括号“掩盖”:
\caption[{\protect\cite[page]{book}}]{other text}
这一论点不能不平衡大括号,因此在这种情况下,后面的括号page
不会结束它。