LaTeX:如何找到命令所属的包?
由于缺乏声誉,我不能对史蒂夫的回答发表评论,这对我很有帮助,但我想把它再扩展一点。
首先,在他的第二种方法(摆弄usepackage)中,没有处理usepackage有可选参数的情况。其次,包通常是由其他包通过RequirePackage加载的,这使得很难找到命令定义的实际位置。因此,我对史蒂夫回答的精细化是:
代码语言:javascript复制\usepackage{xargs}
\let\oldusepackage\usepackage
\let\oldRequirePackage\RequirePackage
\renewcommandx{\usepackage}[3][1,3]{
\oldusepackage[#1]{#2}[#3]
\ifcsname includegraphics\endcsname
\message{^^Jincludegraphics is defined in #2^^J}
\let\usepackage\oldusepackage
\let\RequirePackage\oldRequirePackage
\fi}
\renewcommandx{\RequirePackage}[3][1,3]{
\oldRequirePackage[#1]{#2}[#3]
\ifcsname includegraphics\endcsname
\message{^^Jincludegraphics is defined in #2^^J}
\let\usepackage\oldusepackage
\let\RequirePackage\oldRequirePackage
\fi}这里使用xargs包来获得不寻常的usepackage选项(第一个和第三个参数是可选的)。
将其直接放在documentclass之后应该可以告诉在哪里定义了includegraphics。