在可擴展巨集中​​列印訊息

在可擴展巨集中​​列印訊息

\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

相關內容