从 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
命令,从而导致无限循环。