将“多重定义标签”警告视为错误

将“多重定义标签”警告视为错误

有没有办法将特定警告视为 LaTeX 中的错误?具体来说,是否可以将警告LaTeX Warning: There were multiply-defined labels.视为错误?

(我猜测 MWE 是不必要的,但是为了完整性,这里有一个。)

\documentclass{article}

\begin{document}
Hello, world!\label{A}

Bye.\label{A}
\end{document}

我知道我可以使用任何旧的脚本语言读取日志文件并以此方式创建错误,但我希望立即响应此错误。

(我不知道将此特定警告视为错误有何缺点,但如果我错了,我将不胜感激!)

答案1

不确定这有多大用处;无论如何……

\documentclass{article}

\usepackage{xpatch}

\makeatletter
\xpatchcmd{\@newl@bel}
 {\@latex@warning@no@line}
 {\@latex@error}% change warning into error
 {}{}
\xpatchcmd{\@newl@bel}
 {\@latex@warning@no@line}
 {{}\@latex@warning@no@line}% add the required argument to \@latex@error
 {}{}
\makeatother

\begin{document}
Hello, world!\label{A}

Bye.\label{A}
\end{document}

在第二次运行时,LaTeX 将停止并显示

! LaTeX Error: There were multiply-defined labels.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.20 \end{document}

相关内容