我想在派生类中处理传递给基类的选项。具体来说,我想article
使用geometry
包强制执行类的边距大小。
此外,我想禁止某些布局选项twosided
,例如限制纸张大小并指定默认值。后者我能够找到这里,但我缺少有关如何处理派生类中的选项的信息。
这是我的 MWE:
\begin{filecontents}{myarticle.cls}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mymarticle}[2022/12/10 My white paper class]
\DeclareOption{a5paper}{\OptionNotUsed}
\DeclareOption{b5paper}{\OptionNotUsed}
\DeclareOption{legalpaper}{\OptionNotUsed}
\DeclareOption{landscape}{\OptionNotUsed}
\DeclareOption{twosided}{\OptionNotUsed}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax
\LoadClass[oneside]{article}
\PassOptionsToPackage{left=10bp, right=10bp, top=10bp}{geometry}
\@ifclasswith{article}{a4paper}{
\PassOptionsToPackage{bottom=20bp}{geometry}
}
{
\PassOptionsToPackage{bottom=40bp}{geometry}
}
\RequirePackage{geometry}
\end{filecontents}
\documentclass{myarticle}
\usepackage{lipsum}
\begin{document}
\lipsum[1-20]
\end{document}
这满足了我的要求,但我认为这不是实现我想要的最佳方式。特别是,ifclasswith
如果我想支持 3 个选项或与 结合,则需要大量嵌套twocolumns
。