以批处理模式可靠地终止 LaTeX 的命令序列

以批处理模式可靠地终止 LaTeX 的命令序列

我正在寻找一个命令序列来终止正在运行的实例

pdflatex --interaction batchmode

无论其状态和先前的输入如何。我不关心输出或错误消息——基本上我想要一个“神版”的

\makeatletter\@@end

终止pdflatex进程,即使之前的输入是

\newcommand{\iwannabeclever}{

或者

\begin{verbatim}

。我当时正在考虑一个长序列},但 catcode 可能已经改变(例如,在逐字模式下)。

应用

我想通过 fifo(由 创建mkfifo)来输入 LaTeX。这可行,但关闭 fifo 似乎无法终止该pdflatex过程。

答案1

如果你使用

 pdflatex --halt-on-error

然后它将在第一个错误处停止。引入错误的一种方法是使用非法字符。在 LaTeX 中,默认情况下只有 0(ASCII NULL)和 127(ASCII DEL)。(在纯 TeX 中,只有 DEL 是非法的,NULL 会被忽略。)

通常情况下,您可以输入该内容,^^@但如果您希望它能够逐字逐句地工作,则需要输入流中有一个实际的字节 0。

相关内容