확장 가능한 매크로로 메시지 인쇄

확장 가능한 매크로로 메시지 인쇄

\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

관련 정보