latex 编译错误级别

latex 编译错误级别

想想经典的编程语言,许多编译器都支持错误级别。错误级别允许指定编译过程停止的严重程度。这非常方便。一旦项目结束,我通常会启用一个非常严格的错误级别,这样我就可以确保我贡献的内容确实没有任何错误。

我想知道 Latex 是否有类似的东西?举个例子,如果有一个标志可以在未定义引用时停止编译,而不是必须伪造我的整个文档才能找到???,我会觉得很理想。

笔记

我最终使用了可接受的答案。由于第一次运行时没有引用,因此我在 Makefile 中添加了 \pedantic 标志。

$(FILE)_pedantic.pdf: *.tex
    pdflatex -synctex=1 -shell-escape "\def\pedantic{0} \input{$(FILE).tex}"
    pdflatex -synctex=1 -shell-escape "\def\pedantic{0} \input{$(FILE).tex}"
    bibtex $(FILE)
    makeglossaries $(FILE)
    pdflatex -synctex=1 -shell-escape "\def\pedantic{0} \input{$(FILE).tex}"
    pdflatex -synctex=1 -shell-escape "\def\pedantic{1} \input{$(FILE).tex}"

然后我的 root.tex 文件设置

\if\pedantic1
   \MakeWarningsErrors
\fi

正如所接受答案的作者所建议的那样。

答案1

解决这个问题的一个简单方法是\GenericWarning用更严格的方法重新定义 LaTeX 的宏\GenericError

\documentclass{article}

\newcommand\MakeWarningsErrors{%
    \renewcommand\GenericWarning[2]{%
        \GenericError{##1}{##2}{}{}%
    }%
}

\begin{document}
See section \ref{foo} ...

\MakeWarningsErrors
... and section \ref{bar}.
\end{document}

然后 LaTeX 会正常报告第一个警告,但会停止第二个警告的编译:

LaTeX Warning: Reference `foo' on page 1 undefined on input line 11.

! LaTeX Warning: Reference `bar' on page 1 undefined.

Type  H <return>  for immediate help.

相关内容