您是否知道除了紧急停止之外的任何其他错误,该错误不包含有关日志文件中收到错误的行号的信息?
答案1
我认为,如果在处理文件时发生所有 tex 错误(包括紧急停止),则所有 tex 错误都包含这样的行号。
例如,此文档在尝试输入不存在的文件后紧急停止
\documentclass{article}
\begin{document}
\batchmode \input zzzzzzzzz
\end{document}
日志显示错误发生在第 5 行(l.5
)
! Emergency stop.
l.5 \batchmode \input zzzzzzzzz
*** (job aborted, file error in nonstop mode)
读取文件后会出现不显示行号的错误,通常是由于\end{document}
latex 中缺少行号造成的。
该文档显示的<*>
不是行号,而是表示当 tex 未处于批处理模式时从终端读取时出现的错误。
\documentclass{article}
\begin{document}
\batchmode
生成日志
! Emergency stop.
<*> file
*** (job aborted, no legal \end found)
如果你没有处于批处理模式,TeX 正在接受终端输入,那么任何可能会产生 TeX 错误,<*>
而不是显示行号,如以下终端会话所示
$ latex
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017) (preloaded format=latex)
restricted \write18 enabled.
**\relax
entering extended mode
LaTeX2e <2017-04-15>
Babel <3.12> and hyphenation patterns for 84 language(s) loaded.
*\zzzzz
! Undefined control sequence.
<*> \zzzzz
?
*\def\zzz}
! Missing { inserted.
<*> \def\zzz}
? x
No pages of output.
Transcript written on texput.log.