我正在尝试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}
保留默认值12pt
和twocolumn
值,但成功应用了该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