我以前写过类文件。其中一个甚至在 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
。但是,这应该足以为您提供基本的想法,您可以根据决定使用的任何选项处理方法进行调整和简化。