我正在使用<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.