以下 MWE 崩溃:
\documentclass{memoir}
\usepackage{amsmath}
\usepackage{listings}
\newlistof{lstlisting}{lol}{\lstlistlistingname}
\begin{document}
\begin{lstlisting}
struct x;
\end{lstlisting}
\end{document}
错误信息是:
! TeX capacity exceeded, sorry [input stack size=5000].
\reserved@a ->\def \reserved@a
*{\@nameuse {mem@lstlisting}{01}}\reserved@a
l.11 \end{lstlisting}
! ==> Fatal error occurred, no output PDF file produced!
出于某种奇怪的原因,amsmath
包裹是必须的。问题似乎出在这条\newlistof
线上,评论说一条包裹通过了,没有问题。
答案1
当你跑步时
\newlistof{foo}{ext}{name}
定义了一个新的宏:(\foo
如\tableofcontents
或\listoffigures
)
在这种情况下
\newlistof{lstlisting}{lol}{\lstlistlistingname}
定义\lstlisting
也与之相同,\begin{lstlisting}
所以您刚刚破坏了lstlisting
环境。
虽然错误memoir
在于 ,但在定义它之前memoir
应该检查 的存在。\foo
此错误已被注意到,并将在将来的版本中修复memoir