断言包包含命令

断言包包含命令

我想做这样的事情:

\usepackage{mypackage} \assertpackagecontains{mypackage}{mycommand}

这里,如果mypackage包中不包含该\mycommand命令,那么就会产生错误。

通过为每个使用的深奥命令添加这样的一行,我们可以强制执行一些规则,以确定出于什么目的加载哪些包。

是否可以?

答案1

这也许不是所要求的!

\documentclass{article}


\makeatletter
\newcommand{\assertpackageprovidescommand}[2]{%
  \@ifpackageloaded{#2}{}{%
    \usepackage{#2}%
  }
  \@ifundefined{#1}{%
    \GenericError{Error!}{Package #2 does not provide \string#1}{See blabla}{}
  }
}
\@onlypreamble\assertpackageprovidescommand
\makeatother

\assertpackageprovidescommand{includegraphics}{graphicx}
\assertpackageprovidescommand{rotatebox}{graphicx}
\assertpackageprovidescommand{foofoo}{graphicx} % Must fail

\begin{document}

\end{document}

相关内容