我想在我的包中声明一个选项,如果提供该选项,则需要另一个包。但是,只需这样做
\DeclareOption{requiresomething}{
\RequirePackage{somepackage}
}
不起作用,因为您不能将软件包要求与选项部分混合使用。有什么简单的解决方案吗?我做错了什么吗?
答案1
您可以使用条件:
\ProvidesPackage{aachh}
\newif\ifaachh@array
\DeclareOption{array}{\aachh@arraytrue}
\ProcessOptions\relax
\ifaachh@array
\RequirePackage{array}
\fi
\endinput
或者定义一个宏
\ProvidesPackage{aachh}
\DeclareOption{array}{\let\aachh@array\@empty}
\ProcessOptions\relax
\@ifundefined{aachh@array}{}{%
\RequirePackage{array}%
}
\endinput
后一种方法占用的内存较少,但现在它并不那么重要。