如何确定特定时间某个命令来自哪个包?

如何确定特定时间某个命令来自哪个包?

我知道有一些关于这个的帖子,但我不明白。例如,我想知道哪个包包含\restatable

我试过了\show\restatable,但我不明白日志文件的相关部分是什么

> \restatable=\long macro:
->\thmt@thisistheonetrue \thmt@restatable .
l.482 \show\restatable
                  

方法

我发现了一些关于 latexdef 的帖子,但我不知道它在文档中如何发挥作用。

已加载的包:

\usepackage{adpwrapfig}
\usepackage{caption}
\usepackage{comment}
\usepackage{algorithmic}
\usepackage{color}
\usepackage{bbm}
\usepackage{mathbbol}
\usepackage{tabularx}
\usepackage{enumerate}
\newcommand{\mypara}[1]{\noindent{\bfseries #1.}}

\usepackage{thmtools}
\usepackage{xcolor}
\colorlet{agcolor}{blue!70!white}
\colorlet{jkcolor}{green!60!black}
\usepackage[textwidth=20mm]{todonotes}
\usepackage[utf8]{inputenc}
\usepackage[numbers,sort&compress]{natbib}
%\usepackage[bookmarks=true,colorlinks=true,citecolor=blue,linkcolor=red]{hyperref}    
    \renewcommand{\definitionautorefname}{Definition}
    \newcommand{\remarkautorefname}{Remark}
%}
\usepackage[caption=false]{subfig} 

其余的都在siamart190516.cls中

答案1

使用\show你得到的

->\thmt@thisistheonetrue \thmt@restatable .

看起来正在使用的软件包前缀是thmt。然后查看您的前言,我们发现thmtools- 前缀看起来很可能。阅读时thmtools.sty我们看到thmt@正在使用但没有\restatable。但是,查看 附带的所有文件thmtoolsthm-restate.sty其中有:

\newenvironment{restatable}{%
  \thmt@thisistheonetrue\thmt@restatable
}{%
  \endthmt@restatable
}

这将定义\restatable\endrestatable,因此我们找到了(可能的)来源。

答案2

要了解哪个包定义或重新定义了命令,一种方法是将\show-commands 植入到各个地方,然后查看有什么变化。例如这个

\documentclass{article}
\show\restatable
\usepackage{tabularx}
\show\restatable
\usepackage{thmtools}
\show\restatable

\begin{document}

\end{document}

给出(缩短)

> \restatable=undefined.
l.24 \show\restatable

?
(.../tabularx.sty)
> \restatable=undefined.
l.26 \show\restatable

?
(.../thmtools.sty  more files ) 
> \restatable=\long macro:
->\thmt@thisistheonetrue \thmt@restatable .
l.28 \show\restatable

因此这是一个很好的线索,表明 thmtools 参与其中。

相关内容