使用 natbib 与 showkeys 的问题

使用 natbib 与 showkeys 的问题

从 MacTex 2013 更新至 MacTex 2014 后,natbib 和 showkeys 停止协同工作。

每当 pdflatex 在启用两个包的情况下处理引文时,我都会收到以下错误

./fail.tex:8: TeX capacity exceeded, sorry [main memory size=5000000].
\rlap #1->\hb@xt@ \z@ {#1\hss }

l.8 Hello world. \cite{jon90}

这是一个最小的例子

\documentclass{article}

\usepackage{showkeys}
\usepackage{natbib}

\begin{document}

Hello world. \cite{jon90} 

\begin{thebibliography}{1}
 \bibitem[Jones et al.(1990)]{jon90} .....
\end{thebibliography}

\end{document}

任何想法如何解决这一问题?

答案1

showkeys从 3.15 版(TeX Live 2013 中的版本)到 3.17 版(TeX Live 2014 上的当前版本)发生了变化。

在旧版本中showkeys它挂接到\cite命令,而现在它挂接到\@citex,以修复一些问题:这是源文件中的注释

% \changes{v3.17}{2014/04/24}
%         {rededine \cs{@citex} rather than \cs{cite} for tools/4162}

它所指的错误描述如下这里

这样做的后果是,该包必须在重新定义的包之后加载\@citex,其中包括natbib,或者重新定义了错误的\@citex命令,从而导致无限循环。

相关内容