如何让 texi2pdf 在第一次出现错误时(再次)停止?

如何让 texi2pdf 在第一次出现错误时(再次)停止?

我使用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 $ insertedpdflatex

判断从这个帖子,以前有一个选项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'"

改为nonstopmodeerrorstopmode现在texi2dvi仍将运行多次,但每次都会在第一次错误时停止,因此您会在终端输出的末尾看到错误,而不是在中间的某个地方。

相关内容