我想做这样的事情:
\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}