我遇到了一个奇怪的情况。我有一本很长的书,大约 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