![以繁琐的方式编译 LaTeX](https://linux22.com/image/274951/%E4%BB%A5%E7%B9%81%E7%90%90%E7%9A%84%E6%96%B9%E5%BC%8F%E7%BC%96%E8%AF%91%20LaTeX.png)
一些通用编程语言(例如 GCC)的编译器具有将警告转换为实际错误的开关:
$ gcc -Werror main.c
是否有类似的编译 LaTeX 文档的机制?
答案1
LaTeX 发出的警告主要有两类:例如,排版引擎发出的警告
Overfull \hbox (153.62823pt too wide) in paragraph at lines 10--10
以及 LaTeX 发出的警告,例如
LaTeX Warning: Float too large for page by 275.0pt on input line 17.
如果不改变 TeX(程序),第一种警告就无法变成错误消息,但我不敢这么做。
对于第二种,理论上可以通过以下方式实现
\DeclareRobustCommand{\GenericWarning}[2]{%
\GenericError{#1}{#2}{}{Warning turned into error}}
因此上述警告将变成类似
! LaTeX Warning: Float too large for page by 275.0pt.
Type H <return> for immediate help.
...
l.24 \end{table}
? h
Warning turned into error
h
我还在其中展示了在错误提示下输入的结果。
对于 LaTeX3,更通用的重定向功能正在开发中。