导致“紧急停止”错误的最短代码

导致“紧急停止”错误的最短代码

这个问题纯粹是学术性的。对包含以下内容的文件进行 TeX 处理

\valign{\halign#\cr!

导致! Emergency stop.错误。这是在 TeX 中产生致命错误的最短代码吗?

答案1

\def\a{a\a}\a

编辑:简短版本,正如 Bruno 所建议的:

\def~{~~}~

得出I can't go on meeting you like this

\halign{#&&#\cr\multispan{300}}

结果是This can't happen

\halign{#&&#\cr\multispan{300}\cr}

答案2

一个仅由以下内容组成的文件^H(IIRC 唯一一个在 LaTeX 中默认情况下 catcode 无效的字符)将执行此操作:

[1 1016] ~/temp % echo -e '\b' | latex
This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011)
**entering extended mode
! Text line contains an invalid character.
<*> ^^H

? 
! Emergency stop.
<*> ^^H

No pages of output.
Transcript written on texput.log.
[1 1017] ~/temp %

答案3

{

以下是日志:

This is TeX, Version 3.1415926 (TeX Live 2011) (format=tex 2011.8.28)  14 OCT 2011 11:17
**short
(./short.tex)
! Emergency stop.
<*> short

*** (job aborted, no legal \end found)

No pages of output.

如果允许跑步-interaction=batchmode那么我赢了:试试看

touch inexistent.tex
tex -interaction=batchmode inexistent

你会得到

This is TeX, Version 3.1415926 (TeX Live 2011) (format=tex 2011.8.28)  14 OCT 2011 11:25
**inexistent.tex
(./inexistent.tex)
! Emergency stop.
<*> inexistent.tex

*** (job aborted, no legal \end found)

No pages of output.

要检查的 shell 的输出:

> ls -l inexistent.tex 
-rw-r--r--  1 enricomb  staff  0 Oct 14 11:25 inexistent.tex

答案4

另一种导致引擎崩溃的方式是:\closeout18\bye在尝试发送页面时导致 pdfTeX 和 XeTeX 出现分段错误。终端上显示的最后一行是

[1zsh: segmentation fault (core dumped)  pdftex '\closeout18\bye'

相关内容