我有一个自定义类,我从中取出了一些“重”组件,并将其放入自己的包中(即加载和配置 minted、chemfig)。目前,如果我开始做数学题、写化学题、包括代码块等,我需要记住添加类选项或加载我的一个子包。
我真正想做的是在运行所有\import
/\input
命令之后,在文档中搜索相关命令,然后根据需要加载相关的子包,这样我就可以获得全套功能,而不必考虑我需要哪些子包,或者遭受启用它们全部造成的性能损失。
TLDR;
我想根据要在文档上运行的搜索字符串动态确定是否需要一个包(例如\begin{minted}
),然后根据需要加载它们。
有人知道这是否可能吗?
答案1
TeX 从不将文档保存在内存中,它只是逐行处理输入,因此它无法提前扫描以查看包中命令的使用情况。
您可以使用 grep 或 perl 等工具进行外部搜索,查看文档并猜测所需的包,尽管这种方法不太可能可靠。像 minted 这样的东西很可能通过简单的搜索就可以看到,因为逐字参数必然位于顶层,因此\begin{minted}
很可能在文档中明确显示,但如果您发现,如果没有庞大且难以维护的查找表,详细列出数千个命令和定义它们的可能包,\Question
您将无法轻松知道要加载stix2
包(或stix
包,或从 pdflatex 切换到 lualatex 或 xelatex 并使用unicode-math
)。