Nachricht im erweiterbaren Makro drucken

Nachricht im erweiterbaren Makro drucken

\message{…}Ist es möglich, eine Nachricht wie in einem erweiterbaren Makro zu Debugzwecken auszudrucken ? Ich habe versucht, erweiterbare Funktionen mit zu erstellen \message{}, aber ich kann sie nicht in eine Siunit einbinden \num{…}, die eine erweiterte Zeichenfolge erwartet.

\documentclass[]{article}

\usepackage{siunitx}

\begin{document}

\NewExpandableDocumentCommand{\foo}{}{
  \message{Foo}%
  42%
}

\num{\foo}

\end{document}

Antwort1

In Luatex können Sie aus Lua drucken, z. B.

\documentclass[]{article}

\usepackage{siunitx}

\begin{document}

\NewExpandableDocumentCommand{\foo}{}{%
  \directlua{print('Foo')}%
  42%
}

\num{\foo}

\end{document}

Oder nutzen Sie die texioModulfunktionen, wenn Sie sowohl in das Protokoll als auch in das Terminal schreiben möchten.

Andernfalls können Sie beispielsweise „gobble“ verwenden und dann das Tracing aktivieren):


\usepackage{siunitx}
\def\MESSAGE#1{}
\begin{document}

\NewExpandableDocumentCommand{\foo}{}{%
  \MESSAGE{Foo}%
  42%
}

\tracingmacros=1
\tracingonline=1
\num{\foo}
\tracingnone

\end{document}

laufen mit

pdflatex file | grep -A2 'MESSAGE #1'

erzeugt Terminalausgabe

\MESSAGE #1->
#1<-Foo

verwandte Informationen