latexmk:interaction=nonstopmode 无效

latexmk:interaction=nonstopmode 无效

我有这个示例 LaTeX 文件,我正在使用latexmk -f -interaction=nonstopmode -latex Eqn.tex,但 nonstopmode 无效。我了解方程中的实际问题。我的问题是如何让引擎通过并仅在日志文件中显示错误。

\documentclass{article}

\usepackage{amsmath,amssymb,amsfonts}

\begin{document}

$$\begin{aligned} Q - Q' = {\left\{ \begin{array}{ll} [ -2^j]P &{} \text {if } k_j = 0,\\  [2^j]P &{} \text {if } k_j = 1. \end{array}\right. } \end{aligned}$$

\end{document}

日志

...
entering extended mode
^C! Interruption.
<to be read again>
                   \vskip
l.7 ... [ -2^j]P &{} \text {if } k_j = 0,\\  [2^j]
                                                  P &{} \text {if } k_j = 1....

? x
No pages of output.

它只是等待用户的一些输入。

答案1

如果您滚动经过一个错误(在批处理模式或非停止模式下),tex 将尝试在没有任何用户交互的情况下进行恢复,但是如果您编写一个循环,无论是明确的还是由于不幸的错误恢复,都不会出现错误提示,但 TeX 可能会在循环时挂起。

如果你以交互方式运行提供的示例,你会看到 8 个错误,但之后就不会再有错误提示,因为 TeX 处于一个紧密的循环中。如果你按 Ctrl-C 来中断它,你会看到

! Interruption.
<to be read again> 
                   \vskip 
l.7 ... [ -2^j]P &{} \text {if } k_j = 0,\\  [2^j]
                                                  P &{} \text {if } k_j = 1....

? 

这表明该文件现在相当于

\documentclass{article}

\begin{document}

\let\par\relax
zzz\vskip 5pt

\end{document}

这将永远循环,直到被中断为止,不会出现任何错误。

TeX\vskip在水平模式下看到 ,因此将其添加\par到段落末尾,然后执行重新插入\vskip,但\par已被重新定义为不执行任何操作,因此\vskip再次在水平模式下看到 并循环。由于这里没有错误,因此--interaction没有任何影响。

相关内容