我正在使用天文学和天体物理学课程aa.cls
。我将其与以下两个选项之一一起使用:structabstract
或referee
。
第一个产生两列文本,第二个产生一列文本。
当我切换选项时,一些图形的外观会发生变化。
我想知道是否有可能做这样的事情:
如果(可选参数等于 structabstract)则 {...命令使图形具有特定尺寸} ELSE(如果可选参数等于) {...命令使图形具有另一种尺寸} 万一
请问你能帮帮我吗?
答案1
您的课程中的选项referee
设置为
\DeclareOption{referee}{\let\if@referee\iftrue}
因此你可以使用
\makeatletter
\if@referee TRUE CODE \else FALSE CODE \fi
\makeatother
structabstract
设置为
\DeclareOption{structabstract}{\@oldversionfalse}
因此您可以使用\if@oldversion ...\else ...\fi
。选项oldversion
并traditabstract
更改此开关。我没有检查开关的默认值。
答案2
我更喜欢我一直在使用的另一种方法,它改编自这是在 documentclass 之后设置类选项的答案,它具有以下几个优点:
- 不依赖于类的内部结构,因此可以与任何文档类一起使用
- 允许你通过命令行更改选项
latex '\def\MyClassOptions{referee}\input{doc}'
代码:
\expandafter\ifx\csname MyClassOptions\endcsname\relax
\def\MyClassOptions{draft,twosided}
\fi
\documentclass[MyClassOptions]{article}
\usepackage{xstring}
\begin{document}
\IfSubStr{\MyClassOptions}{draft}{%
DRAFT option was used.%
}{%
DRAFT option was not used.%
}%
\end{document}