在安静模式(latex example.tex -quiet
)下,LaTeX 仅打印错误;即以下格式错误的文档:
\documentclass{minimal}
\begin{document}
}
输出结果为:
...
! Too many }'s.
l.3 }
...
在安静模式下:
example.tex:3: Too many }'s
但是,这仅适用于 TeX 错误,即语法和其他低级错误。使用 打印的 LaTeX 错误\errmessage
不会显示任何消息;以下是人为的例子:
\documentclass{minimal}
\begin{document}
\errmessage{example error}
\end{document}
以正常模式打印
...
! example error.
l.3 \errmessage{example error}
...
但在安静模式下
example.tex:3:
没有任何错误消息的踪迹。有没有办法打印错误消息,同时静音包含内容和其他输出?
答案1
总结
-interaction=batchmode
“安静”模式可能是与MiKTeX的结合-c-style-errors
。显示部分错误消息,这可能是一个错误,因为控制台上不应该显示任何内容(安静)。
完整的错误消息可以在.log
文件中读取。
长版本
TeX 在某些 TeX 发行版(如 TeX Live 或 MiKTeX)中具有一些交互模式和附加命令行选项,用于设置错误消息的样式。
交互模式:
-interaction=MODE Set the interaction mode; MODE must be one
of: batchmode, nonstopmode, scrollmode,
errorstopmode.
名称前面的反斜杠是 TeX 中的命令。
batchmode
使控制台输出(包括错误消息)静音,但.log
文件中会写入这些消息。
正常错误信息处于交互模式,按下可h
查看更多详细信息:
! example error.
l.3 \errmessage{example error}
? h
This error message was generated by an \errmessage
command, so I can't give any explicit help.
Pretend that you're Hercule Poirot: Examine all clues,
and deduce the truth by order and method.
?
在批处理模式下,控制台不显示任何内容,但.log
文件包含:
! example error.
l.3 \errmessage{example error}
This error message was generated by an \errmessage
command, so I can't give any explicit help.
Pretend that you're Hercule Poirot: Examine all clues,
and deduce the truth by order and method.
错误信息样式:
MiKTeX:
-c-style-errors Enable file:line:error style messages.
批处理模式显示文件中的完整错误
.log
:test.tex:3: example error This error message was generated by an \errmessage command, so I can't give any explicit help. Pretend that you're Hercule Poirot: Examine all clues, and deduce the truth by order and method.
控制台以批处理模式显示:
test.tex:3:
我认为这是一个错误,应该是空的。批处理模式适用于无人看管的无人值守运行。错误由程序的退出值检测,并可在文件中查看
.log
。使用 3.14159265-2.6-1.40.16(MiKTeX 2.9)进行测试。
TeX 直播:
[-no]-file-line-error disable/enable file:line:error style messages
.log
在批处理模式下,文件中显示的不是感叹号,而是文件名和行号:./test.tex:3: example error. l.3 \errmessage{example error} This error message was generated by an \errmessage command, so I can't give any explicit help. Pretend that you're Hercule Poirot: Examine all clues, and deduce the truth by order and method.
控制台在批处理模式下不显示错误。