如何在没有日志通知的情况下跟踪未定义的引用

如何在没有日志通知的情况下跟踪未定义的引用

我遇到了一个奇怪的情况。我有一本很长的书,大约 600 页,各章节都有参考文献。在第三次 latex 运行结束时,我仍然得到一个

LaTeX Warning: There were undefined references.

不幸的是,对日志文件进行简单的 grep 查询undef却没有任何结果。这很令人困惑。有没有办法打印出第一个困扰 latex 的未定义引用?

附言:通常我可以通过提前结束文档并查看错误是否消失来隔离错误,但在这种情况下当然是不可能的......

答案1

您可以\show\@refundefined在文档的各个位置植入。在未定义的引用之后,它将改变其含义,因此您可以更好地对其进行本地化:

\documentclass[]{article}
\begin{document}
\makeatletter
zzz

\show\@refundefined

\ref{blub}

\show\@refundefined


\end{document}

给出

> \@refundefined=\relax.
l.27 \show\@refundefined
                        
? 

LaTeX Warning: Reference `blub' on page 1 undefined on input line 29.

> \@refundefined=macro:
->\@latex@warning@no@line {There were undefined references}.
l.31 \show\@refundefined

相关内容