\message{…}
是否可以像在可扩展宏中一样打印消息以进行调试?我尝试使用 创建可扩展函数\message{}
,但无法将它们插入\num{…}
需要扩展字符串的 siunit。
\documentclass[]{article}
\usepackage{siunitx}
\begin{document}
\NewExpandableDocumentCommand{\foo}{}{
\message{Foo}%
42%
}
\num{\foo}
\end{document}
答案1
在 luatex 中你可以从 Lua 打印例如
\documentclass[]{article}
\usepackage{siunitx}
\begin{document}
\NewExpandableDocumentCommand{\foo}{}{%
\directlua{print('Foo')}%
42%
}
\num{\foo}
\end{document}
或者,texio
如果您想写入日志和终端,请使用模块功能。
否则,您可以使用(例如)gobble,然后打开跟踪):
\usepackage{siunitx}
\def\MESSAGE#1{}
\begin{document}
\NewExpandableDocumentCommand{\foo}{}{%
\MESSAGE{Foo}%
42%
}
\tracingmacros=1
\tracingonline=1
\num{\foo}
\tracingnone
\end{document}
运行
pdflatex file | grep -A2 'MESSAGE #1'
产生终端输出
\MESSAGE #1->
#1<-Foo