
Ich erstelle eine Dokumentklasse basierend auf memoir
. Dazu erlaube ich die Übergabe mehrerer Klassenoptionen an meinen Code. Optionen, die nicht erkannt werden, werden einfach an übergeben memoir
.
Meine Frage ist nun: Wie kann ich erzwingen, a4paper
dass auch der Benutzer meiner Klasse letterpaper
als Option übergibt? Anders ausgedrückt: Gibt es eine Möglichkeit, die anderen Dokumentgrößenoptionen ( letterpaper
, a5paper
, ebook
, usw.) zu deaktivieren und gleichzeitig die Weitergabe von Optionen wie ms
oder weiterhin möglich zu halten fleqn
?
Antwort1
Ich schlage Folgendes vor:
% declare options that should be passed to your code
% ...
% now specify which memoir options should not be used, using the following helper macro
\newcommand\warningoptionnotused@myclass
{%
\OptionNotUsed%
\ClassWarning{myclass}%
{%
Option '\CurrentOption'\space is incompatible with class
`myclass' and will be ignored.
}
}
\DeclareOption{letterpaper}{\warningoptionnotused@myclass}
\DeclareOption{a5paper}{\warningoptionnotused@myclass}
\DeclareOption{ebook}{\warningoptionnotused@myclass}
% do the same for all options that should be discarded...
% pass all other options to memoir
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{memoir}}
% process options
\ProcessOptions\relax
% then load memoir with the desired options
\LoadClass[a4paper]{memoir}