\makeatletter\ExplSyntaxOn
\clist_new:N \g__my_packages_clist
\int_new:N \g__my_level_int
\AddToHook{package/before}{\int_gincr:N \g__my_level_int}
\AddToHook{package/after}{
\int_gdecr:N \g__my_level_int
\int_compare:nNnT \g__my_level_int = { 0 }
{ \clist_gput_right:Nx \g__my_packages_clist { \@currname } }
}
\AddToHook{enddocument/info}{ \tl_show:e { Packages:~ \g__my_packages_clist } }
\ExplSyntaxOff\makeatother
\documentclass{} % <- 改成你的文档类
\begin{document}
\end{document}
然后在终端中正常编译。这样可以列出使用的文档类中直接加载的宏包(不包括它们依赖的宏包,如果需要,把代码中的 level=0
改成其它值,或直接删去即可),也会包含这个文档在导言区加载的宏包(这里没有)。
如果不是用 xelatex 编译的,最后一个加载的宏包可能是 epstopdf-base
,这是 LaTeX 自动加载的,直接忽略即可。
问 如何一次性查看/导出所用到的所有宏包的名称?