纯 TeX、pdfTeX、XeTeX 和 LuaTeX 中的紧急停止?

纯 TeX、pdfTeX、XeTeX 和 LuaTeX 中的紧急停止?

我正在使用<TeX_Engine> -jobname=TEX_TESTING -halt-on-error -interaction=nonstopmode <my_code>TeX 处理单行代码A\bye。它不起作用。以下是日志:

纯 TeX:

This is TeX, Version 3.14159265 (TeX Live 2017) (preloaded format=tex
2017.5.23)  5 MAY 2019 17:59
**A\bye

! Emergency stop. <to be read again> 
                   \par  \bye ->\par 
            \vfill \supereject \end  <*> A\bye
          No pages of output.

pdfTeX:

This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) (preloaded format=pdftex 2017.5.23)  5 MAY 2019 17:59
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**A\bye

! Emergency stop.
<to be read again> 
                   \par 
\bye ->\par 
            \vfill \supereject \end 
<*> A\bye

!  ==> Fatal error occurred, no output PDF file produced!

XeTeX:

This is XeTeX, Version 3.14159265-2.6-0.99998 (TeX Live 2017) (preloaded format=xetex 2017.5.23)  5 MAY 2019 17:59
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**A\bye

! Emergency stop.
<to be read again> 
                   \par 
\bye ->\par 
            \vfill \supereject \end 
<*> A\bye

No pages of output.

LuaTeX:

This is LuaTeX, Version 1.0.4 (TeX Live 2017)  (format=luatex 2017.5.23)  5 MAY 2019 17:59
 restricted system commands enabled.
**A\bye

! Emergency stop.
<to be read again> 
\par 
\bye ->\par 
            \vfill \supereject \end 
<*> A\bye

!  ==> Fatal error occurred, no output PDF file produced!

发生了什么?在 TeXShop 中一切正常。是因为-halt-on-error还是-interaction=nonstopmode?我无法摆脱任何一个,因为我真的不希望在任何情况下停止。

我需要的是包含特定字符串的最简单的有效 TeX/XeTeX/LuaTeX 代码(这里就是A)。就是这样。

答案1

摘自 TeXbook 第 23 页

' **' 是 TEX 要求您提供输入文件名的方式。

由于您想以交互方式使用 TeX,而不是处理文件,因此您必须通过说 来让 TeX 知道。您看到的错误来自于 TeX 试图将其读取为文件名的\relax事实,这涉及到 的完整扩展,其定义为A\bye\bye

\outer\def\bye{\par\vfill\supereject\end}

它立即被阻塞,\par因为这显然不是文件名的合法部分。

因此,如果A\bye你说它\relax A\bye按预期工作:

This is TeX, Version 3.14159265 (TeX Live 2019) (preloaded format=tex)
**\relax A\bye
[1]
Output written on texput.dvi (1 page, 208 bytes).
Transcript written on texput.log.

您也可以仅\relax**提示符下键入,然后在提示符下提供命令*

This is TeX, Version 3.14159265 (TeX Live 2019) (preloaded format=tex)
**\relax

*A\bye
[1]
Output written on texput.dvi (1 page, 208 bytes).
Transcript written on texput.log.

相关内容