当词汇表包与其他包一起加载时紧急停止

当词汇表包与其他包一起加载时紧急停止

以下文档编译良好。

\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)。

相关内容