编译我的 LaTeX 文档后,日志文件包含以下消息:
LaTeX 警告:存在未定义的引用。
我如何知道哪些行和/或标签引发了此警告?
PS:这个问题已经在此评论由其他用户提出,并且答复是提问者应该在单独的帖子中提问,但我找不到任何解决这个问题的帖子。
答案1
该消息There were undefined references
是屏幕上最后显示的内容之一,以引起您对问题的注意。但是,向上滚动到控制台输出或日志文件将显示未定义引用所在的行号。文件
\documentclass{article}
\begin{document}
\section{foo}\label{foo}
This is section \ref{fo}
\end{document}
返回
LaTeX Warning: Reference `fo' on page 1 undefined on input line 4.
[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./mwe.aux)
LaTeX Warning: There were undefined references.
当然,如果未定义的引用之后有很多页面,可能还有图表,那么您可能需要向后滚动很多。
如果你使用\input
外部文件,那么你必须记住,引用的行号始终指的是当前的 文件。假设我们有一个文件foo.tex
\section{foo}\label{foo}
This is section \ref{fo}
主文件内容main.tex
如下
\documentclass{article}
\begin{document}
Text text.
\input{foo}
\end{document}
那么日志将包含
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/TeX Live for SUSE Linux) (preloaded format=pdflatex 2019.9.25) 9 APR 2021 14:59
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**main.tex
(./main.tex
LaTeX2e <2017-04-15>
% [ ... other stuff ... ]
(./foo.tex
LaTeX Warning: Reference `fo' on page 1 undefined on input line 2.
) [1
{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./mwe.aux)
LaTeX Warning: There were undefined references.
)
% [ ... other stuff ...]
这里的行号指的是外部的file:注意(./foo.tex
表示这是当前打开的文件的字符串。相应的右括号)
显示在警告之后;最后的右括号指的是主文件(相应的打开文件在第 6 行)。