如何更改文档类的默认选项?

如何更改文档类的默认选项?

我正在尝试rs-book.cls基于标准类定义自定义类book.cls,并希望更改一些默认选项。例如,默认情况下(没有给出选项),​​该命令\documentclass{book}会生成一个10pt, twoside,onecolumn文档。假设在我的情况下,使用命令\documentclass{rs-book},我希望默认生成一个12pt, oneside,twocolumn文档,并能够覆盖这些选项(就像\documentclass[10pt]{rs-book}生成10pt字体文档一样)。

问题是我无法重新创建这种行为,因为它变得非常令人困惑:在下面的示例中,命令\documentclass[10pt,twoside,onecolumn]{rs-book}保留默认值12pttwocolumn值,但成功应用了该twoside选项。

梅威瑟:

rs-book.cls

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{rs-book}

% Read all options to rs-book class and pass them to book class
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
% Execute the code for each option
\ProcessOptions\relax
% Load book class with fixed options
\LoadClass[12pt,oneside,twocolumn]{book}

main.tex

\documentclass[10pt,twoside,onecolumn]{rs-book}

\usepackage{lipsum}

\title{A modification of book.cls}
\author{author}
\date{\today}

\begin{document}
\maketitle

\lipsum
\end{document}

答案1

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{rs-book}

\def\rs@ptsize{12pt} % default value
\DeclareOption{10pt}{\def\rs@ptsize{10pt}}
\DeclareOption{11pt}{\def\rs@ptsize{11pt}}
\DeclareOption{12pt}{\def\rs@ptsize{12pt}}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{book}}
\ProcessOptions
\LoadClass[\rs@ptsize,oneside,twocolumn]{book}

\endinput

相关内容