
Я создаю класс документа на основе memoir
. Для этого я разрешаю передавать несколько опций класса в мой код. Опции, которые не распознаются, будут просто передаваться в memoir
.
Теперь мой вопрос: как я могу заставить, a4paper
даже если пользователь моего класса передает letterpaper
как опцию? Другими словами: есть ли возможность отключить другие опции размера документа ( letterpaper
, a5paper
, ebook
, и т. д.), сохраняя при этом возможность передавать такие опции, как ms
или fleqn
?
решение1
Я предлагаю следующее:
% 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}