我使用 LuaLaTeX,因此欢迎基于 Lua 的答案。我想知道,对于任意命令序列,我是否可以创建一些函数/命令\wasused{csname}
来告诉我文档中是否使用了 cs?澄清一下,通过使用,它可能被定义,也可能没有定义。我更感兴趣的是 cs 是否在某个时候被调用。我想一种方法是将计数器挂接进去\def
,或者制作一些特殊版本来执行此操作。
答案1
您可以定义一个计数器,然后使用\pretocmd
etoolbox 包在每次使用命令时增加它。
这里我们统计了\emph
到目前为止该文档中使用了多少次:
\documentclass{article}
\usepackage{etoolbox}
\newcounter{emusage}
\setcounter{emusage}{0}
\pretocmd{\emph}{\stepcounter{emusage}}{}{} % increase emusage every time \emph is used
\begin{document}
one two \arabic{emusage} \emph{three} \arabic{emusage}
\end{document}
文档将排版为“一二零三1”