将一个类建立在另一个类的基础上

将一个类建立在另一个类的基础上

可能重复:
为一组文档类定义包装器类

当编写一个新类(例如journal)时,如何以现有类(例如scrbook)为基础?

答案1

LaTeX 伴侣确实对此进行了更详细的解释,但这基本上是你必须做的事情journal.cls

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{journal}[2012/09/13]

\LoadClass{scrbook}

...

处理类选项时需要小心。我在使用kvoptionskey-value 包时讨论了这个问题https://tex.stackexchange.com/a/68475/15616. 但也有原生的 La​​TeX 命令\DeclareOption\DeclareOption*\ProcessOptions*

答案2

除了命令之外,\LoadClass还有一个\PassOptionsToClass{<options-list>}{<class-name>}可以在之前使用的命令\LoadClass{<class-name>}。这是课程的简单开头:

\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{myclass}[2012/09/13 v0.1 My Class]

\PassOptionsToPackage{patch}{kvoptions}
\RequirePackage{kvoptions}

\DeclareBoolOption{draft}
\ProcessKeyvalOptions*

\ifmyclass@draft
  \LoadClass[draft]{article}
\else
  \LoadClass{article}
\fi

如果您希望将用户提供的所有选项myclass都传递给article,则可以使用\LoadClassWithOptions{article}。但是,这可能会有一些缺点,我不确定这是否总是一个好主意。

相关内容