我知道有很多类似的问题,但到目前为止这些问题都没有帮助我 - 我确实在谷歌上搜索了很多。所以我的问题是:我有一个文档类(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}