我使用texi2pdf
(GNU Texinfo 6.7 (2019);在 macOS 上)从命令行(终端)编译.tex
文档。几年前,默认设置是texi2pdf
在第一次出现错误时停止。出于某种原因,这一定已经改变了。现在的行为是texi2pdf
“不间断”运行,如果出现错误,则输出"/usr/local/opt/texinfo/bin/texi2dvi: pdflatex exited with bad status, quitting."
。这一行很容易被忽略,然后您需要在终端中向后滚动才能真正看到错误(例如Missing $ inserted
)。使用运行下面的 MWEtexi2pdf MWE.tex
来查看(除非您可能拥有 2003 年左右随 mac 一起提供的非常旧的texi2dvi
版本)。我拥有的版本texi2dvi
正是来自的版本这里。我怎样才能texi2dvi
在出现第一个错误时停止(所以在Missing $ inserted
)pdflatex
?
判断从这个帖子,以前有一个选项nonstopmode
,但现在似乎不再可用。有趣的是,这与我几年前的经历很吻合,当时可以说是默认的,如果需要,stopmode
需要主动请求。nonstopmode
\documentclass{scrartcl}
\begin{document}
These_underscores_lead_to_errors_but_texi2pdf_wont_stop_at_the_first_error_so_you_need_to_scroll_to_find_it
\end{document}
答案1
如果您愿意更改源代码,texi2dvi
那么您可以修改构建 LaTeX 命令的行。
原文出处(888行起):
# Run without interaction.
# \batchmode does not show terminal output at all, so we don't
# want that. And even in batch mode, TeX insists on having input
# from the user. Close its stdin to make it impossible.
tex_cmd="$tex_cmd </dev/null '${escape}nonstopmode'"
改为nonstopmode
。errorstopmode
现在texi2dvi
仍将运行多次,但每次都会在第一次错误时停止,因此您会在终端输出的末尾看到错误,而不是在中间的某个地方。