在安静模式下查看 LaTeX 错误

在安静模式下查看 LaTeX 错误

在安静模式(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.
    

    控制台在批处理模式下不显示错误。

相关内容