如何设置我的自定义类以根据传递的类选项加载不同的类?

如何设置我的自定义类以根据传递的类选项加载不同的类?

我以前写过类文件。其中一个甚至在 CTAN 上。但那是很久以前的事了,现在我已经生疏了。

我正在尝试为我的大学推出一个新的类文件。我有点雄心勃勃,想将同一个类文件用于大学信件、表格、报告等(并使用类选项选择每种类型)。原因是这是一个抵制 LaTeX 的地方,能够提供一个文件将有助于向他们推销 LaTeX 的强大功能。此外,其中还涉及一个很酷的因素,我希望探索一下。

从逻辑上讲,每个文档都对应于从标准 LaTeX 类继承,然后添加本地定制。

新的类文件是否可以实现依赖于选项的继承 ( \LoadClass)?或者这根本就不可能?

答案1

我使用这样的东西:

\ProvidesClass{superclass}

\RequirePackage{xkeyval}% better option processing - there are many other possibilities as you probably know so just adapt as needed

\def\myclasstype{article}% make sure a default is defined

\DeclareOptionX{article}{%
    \gdef\myclasstype{article}}
\DeclareOptionX{report}{%
    \gdef\myclasstype{report}}
\DeclareOptionX{book}{%
    \gdef\myclasstype{book}}

%:pass unrecognised options off to \myclasstype
\DeclareOptionX*{%
    \PassOptionsToClass{\CurrentOption}{\myclasstype}}
%:process options
\ProcessOptionsX
%:load \myclasstype
\LoadClass{\myclasstype}% add options if desired

还有其他方法可以做到这一点,如果从头开始,我不一定会这样做,因为我认为我可以使用 的功能来整理事情xkeyval。但是,这应该足以为您提供基本的想法,您可以根据决定使用的任何选项处理方法进行调整和简化。

相关内容