测试 documentclass 选项

测试 documentclass 选项

我知道有很多类似的问题,但到目前为止这些问题都没有帮助我 - 我确实在谷歌上搜索了很多。所以我的问题是:我有一个文档类(emulateapj),它接受一些选项。

在我的文档中,我想要一个条件测试,检查是否onecolumn设置了某些选项(例如),如果是,则执行一些操作,例如更改字体大小或行分隔。

就像是

\IfSubStr{@classoptionslist}{onecolumn}{true}{false}%

只是给我的总是错误。

答案1

内核提供\@ifclasswith

\documentclass[onecolumn]{emulateapj}

\makeatletter
\@ifclasswith{emulateapj}{onecolumn}{\typeout{ONECOLUMN}}{\typeout{NO ONECOLUMN}}
\@ifclasswith{emulateapj}{revtex4}{\typeout{REVTEX4}}{\typeout{NO REVTEX4}}

\makeatother

终端上的输出是

ONECOLUMN
NO REVTEX4

\@ifclasswith命令仅在之前可用\begin{document},因此如果您想设置自己的条件,则必须在序言中执行此操作:

\makeatletter
\newif\ifhbonecolumn
\@ifclasswith{emulateapj}{onecolumn}{\hbonecolumntrue}{\hbonecolumnfalse}
\makeatother

\newcommand{\foo}{\ifhbonecolumn fooone\else footwo\fi}

相关内容