입력 .tex 파일 내의 모든 매크로 호출을 추적합니다(luatex를 통해?)

입력 .tex 파일 내의 모든 매크로 호출을 추적합니다(luatex를 통해?)

입력 .tex 파일이 있는 경우 그 파일에서 모든 매크로 호출을 찾는 방법은 무엇입니까?

\documentclass{article}
\newcommand{\samplemacro}{This is a sample macro.}

\begin{document}
\samplemacro

\begin{itemize}
    \item \samplemacro
\end{itemize}
\section[\samplemacro]{\samplemacro}
\tableofcontents
\end{document}

어떤 종류의 위치라도 괜찮습니다(예: 명령 시작/끝에 대한 바이트 오프셋). 시작은 명령이 처리되기 시작하는 시간이고 끝은 모든 인수가 사용된 직후입니다.

위의 예에서는 다음과 같이 얻는 것이 좋습니다.

[
  '\documentclass{article}',
  '\newcommand{\samplemacro}{This is a sample macro.}',

  '\begin{document}',
  '\samplemacro',

  '\begin{itemize}',
  '\item'
  '\samplemacro',
  '\end{itemize}',
  ['\section[\samplemacro]{\samplemacro}', '\samplemacro', '\samplemacro'],
  '\tableofcontents',
  '\end{document}'
]

정확한 구조는 실제로 중요하지 않으므로 내부 호출을 추적하지 않고 \samplemacro를 \section의 일부로 간주하거나 환경 콘텐츠를 \begin의 일부로 간주하는 것이 좋습니다. 말 그대로 어떤 루틴에 의해 어떤 토큰이 소비되는지에 관한 것입니다.

사용자 정의 구문 분석을 구현하는 것과 같은 매크로는 \section하드코딩 구문 분석보다 luatex 후크를 사용하는 것이 훨씬 쉬워 보입니다.TexSoup하려고 노력하고 있습니다.

관련 정보