如何在错误消息中添加“更多文本”?

如何在错误消息中添加“更多文本”?

对于下面的 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.

第一个?提示符后,我按下了hEnter。这带来了more text baz。第二个?提示符后,我按下了 Enter。这告诉 TeX 继续。

相关内容