
\message{…}
デバッグの目的で、拡張可能なマクロのようにメッセージを印刷することは可能ですか? を使用して拡張可能な関数を作成しようとしました\message{}
が、拡張された文字列を期待する siunit にそれらをプラグインすることはできません\num{…}
。
\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