检查命令是否至少被使用过一次?

检查命令是否至少被使用过一次?

我使用 LuaLaTeX,因此欢迎基于 Lua 的答案。我想知道,对于任意命令序列,我是否可以创建一些函数/命令\wasused{csname}来告诉我文档中是否使用了 cs?澄清一下,通过使用,它可能被定义,也可能没有定义。我更感兴趣的是 cs 是否在某个时候被调用。我想一种方法是将计数器挂接进去\def,或者制作一些特殊版本来执行此操作。

答案1

您可以定义一个计数器,然后使用\pretocmdetoolbox 包在每次使用命令时增加它。

这里我们统计了\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”

相关内容