文章包装类,锁定一些选项,传递其他选项

文章包装类,锁定一些选项,传递其他选项

我正在编写一个包装文档类,它以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之外的所有可能的字体和纸张大小选项编写样板文件。(这甚至10ptletterpaper可能的来枚举该集合?)肯定有更好的方法吧?

答案1

扩展 Gonzalo 的答案,您可以遍历要终止的选项。 (由于基类不使用键值方法,因此遗憾的是,您不必只终止“键”部分。)

\@for\@tempa:=10pt,12pt,14pt,letterpaper,a4paper,onecolumn,twocolumn\do{%
  \DeclareOption{\@tempa}{\OptionNotUsed}%    
}

答案2

您可以使用\OptionNotUsed; 例如,

\DeclareOption{12pt}{\OptionNotUsed}

相关内容