以下文档编译良好。
\documentclass{amsart}
\usepackage{amssymb,latexsym}
\usepackage{glossaries}
\begin{document}
\title{My Title}
\maketitle
Hello, world!
\end{document}
然而,以下非常相似的文档的编译却失败并出现错误。
\documentclass{amsart}
\usepackage{amssymb,glossaries,latexsym}
\begin{document}
\title{My Title}
\maketitle
Hello, world!
\end{document}
产生的错误是
紧急停止。
为什么?
答案1
TeX 的错误信息从来都不是Emergency stop
,至少从来都不是信息的主要部分,甚至是最重要的部分。
当发生需要用户输入的错误情况时,TeX 会紧急停止,但它正在运行\batchmode
或因其他原因无法进行交互式输入,因此它会停止。
例如如果我添加
\batchmode
\immediate\openout5 ../zzzz
对于任何文件,这默认将是一个错误,因为默认的安全设置阻止写入父目录。
我进入日志:
! I can't write on file `../zzzz.tex'.
l.2 \immediate\openout5 ../zzzz
(Press Enter to retry, or Control-D to exit; default file extension is `.tex')
Please type another output file name
! Emergency stop.
l.2 \immediate\openout5 ../zzzz
*** (job aborted, file error in nonstop mode)
前 5 行是通常的“交互式”错误对话框,但随后它不会等待用户输入所请求的文件名,而是在运行时\batchmode
发出紧急停止消息并停止。因此您会看到Emergency stop
行,然后它会告诉您它停止的原因(file error in nonstop mode
)。