我正在编写一个包装文档类,它以article
一系列自定义项开始并添加这些自定义项(特定日记本样式所必需的)。其中一个要求是锁定某些选项:
\documentclass{thisjournal}
应该表现得和
\documentclass[10pt,twocolumn,letterpaper]{article}
% plus some more stuff
和
\documentclass[12pt]{thisjournal} % or 'onecolumn', or 'a4paper, etc
应该产生一个错误消息,但其他选项应该被传递,例如
\documentclass[draft]{thisjournal} % should turn on overfull rules
我已经
\ProvidesClass{thisjournal}
\DeclareOption{12pt}{\ClassError{testclass}{Ten point text is required.}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax
\LoadClass[10pt,twocolumn,letterpaper]{article}
但我并不热衷于为除和\DeclareOption
之外的所有可能的字体和纸张大小选项编写样板文件。(这甚至10pt
letterpaper
可能的来枚举该集合?)肯定有更好的方法吧?
答案1
扩展 Gonzalo 的答案,您可以遍历要终止的选项。 (由于基类不使用键值方法,因此遗憾的是,您不必只终止“键”部分。)
\@for\@tempa:=10pt,12pt,14pt,letterpaper,a4paper,onecolumn,twocolumn\do{%
\DeclareOption{\@tempa}{\OptionNotUsed}%
}
答案2
您可以使用\OptionNotUsed
; 例如,
\DeclareOption{12pt}{\OptionNotUsed}