根据某些参数定义输出两种不同的文本

根据某些参数定义输出两种不同的文本

我正在使用天文学和天体物理学课程aa.cls。我将其与以下两个选项之一一起使用:structabstractreferee

第一个产生两列文本,第二个产生一列文本。

当我切换选项时,一些图形的外观会发生变化。

我想知道是否有可能做这样的事情:

如果(可选参数等于 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。选项oldversiontraditabstract更改此开关。我没有检查开关的默认值。

答案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}

相关内容