如何检查宏是否来自用于文档中吗?

如何检查宏是否来自用于文档中吗?

我对某种方法感兴趣,用于检查某个包中的宏是否被用在 .tex 文件中。

因此,例如我想指定一个包(比如说fontawesome),然后指向一个 .tex 文件并询问是否可以在该 .tex 文件中找到给定包中的任何宏。

是否可以?

答案1

(1)注释掉加载你想要测试的包的行:

\documentclass{article}
%\usepackage{fontawesome}
\begin{document}
The  \faBook  
And  
the \faCloud
\end{document}

(2)从命令行yourfile编译nonstopmode

lualatex -interaction=nonstopmode yourfile

通过上述 MWE,您将在输出中看到现在第 4 行和第 6 行有未定义的宏:

! Undefined control sequence.
l.4 The \faBook

! Undefined control sequence.
l.6 the  \faCloud

启用包没有错误,因此这些命令是在该包中定义的(或者通过该包,正如 egreg 的评论所指出的那样)。

请注意,这些错误消息也存储在 中,yourfile.log以便以后进行取证分析。您最喜欢的 LaTeX 编辑器可能可以直接编译并显示输出/日志错误(仅显示第一个不带 的错误nonstopmode),因此您不必处理命令行。

相关内容