对于下面的 mwe,我期望:
错误:程序包 foo 错误:文本栏更多文本 baz
反而:
错误:程序包 foo 错误:文本栏
为什么会有这种差异?
\documentclass{report}
\usepackage{xparse}
\ExplSyntaxOn
\msg_new:nnnn{foo}{msg}{text~#1}{more~text~#2}
\NewDocumentCommand{\Test}
{}
{
\msg_error:nnnn{foo}{msg}{bar}{baz}
}
\ExplSyntaxOff
\begin{document}
\Test
\end{document}
答案1
“更多文本”参数是用户在H
发出初始消息后按下时显示的内容。因此,第一个文本往往是以下形式
LaTeX 由于 XXXX 遇到错误。
“更多文本”的形式为
这可能是由YYYY引起的,您可以尝试ZZZZ。
或者
LaTeX 被要求执行 YYYY,但是这里不可能,因为 ZZZZ。
答案2
你需要在终端上进行编译没有任何选项,例如-interaction=nonstopmode
或-interaction=batchmode
。如果我使用以下命令在终端上编译您的文档pdflatex docu.tex
:
! Package foo Error: text bar
For immediate help type H <return>.
...
l.18 \Test
? h
more text baz
?
(./docu.aux) )
No pages of output.
Transcript written on docu.log.
第一个?
提示符后,我按下了h
Enter。这带来了more text baz
。第二个?
提示符后,我按下了 Enter。这告诉 TeX 继续。