从 LaTeX3 开始,我想记录此警告
Package foo Warning: blablabla on line XXX
我怀疑\msg_line_context
会有帮助,但如何使用它?在下一个 MWE 中,它不会扩展
\documentclass{article}
\RequirePackage{expl3}
\ExplSyntaxOn
\msg_new:nnnn {foo} {warning-message} {blablabla #1} {}
\msg_warning:nnnnnn {foo} {warning-message} {\msg_line_context} {} {} {}
\ExplSyntaxOff
\begin{document}
TEST
\end{document}
答案1
你可以做
\documentclass{article}
%\RequirePackage{expl3}
\ExplSyntaxOn
\msg_new:nnn {foo} {warning-message} {blablabla #1}
\msg_warning:nnx {foo} {warning-message} {~\msg_line_context:}
\ExplSyntaxOff
\begin{document}
TEST
\end{document}
通过此设置您可以获得
Package foo Warning: blablabla on line 6
请注意,\msg_warning:<signature>
有多种签名可用:
nnnnnn
(四个可变参数)nnxxxx
(四个扩展的变量参数)nnnnn
(三个可变参数)nnxxx
(三个扩展变量参数)nnnn
(两个变量参数)nnxx
(两个扩展的变量参数)nnn
(一个变量参数)nnx
(一个扩展变量参数)nn
(无争论)
在第三个参数中,\msg_new:nnn
您可以使用#1
最多来#4
引用\msg_warning:<signature>
您将使用的特定风格的参数。
例如,如果你调用
\msg_warning:nn {foo} {warning-message}
你只会得到
Package foo Warning: blablabla
另一方面,如果你打算在警告中始终显示行号,那么这样做是有意义的
\msg_new:nnn {foo} {warning-message} {blablabla~\msg_line_context:}
\msg_warning:nn {foo} {warning-message}