KOMA 课程和 \LoadClass

KOMA 课程和 \LoadClass

我想创建一个基于 KOMA-Script 类的文档类。如果myclass.cls包含以下内容

\ProvidesClass{myclass}[2011/08/31]
\LoadClass[paper=a5]{scrartcl}

然后编译一个文档,其第一行\documentclass{myclass}生成警告

LaTeX Warning: Unused global option(s):
    [paper=a5].

scrbook和 也出现同样的问题scrreprt。我做错了什么?

答案1

该选项paper实际上不是类选项,而是typearea包的一个选项,所有 KOMA-Script 类都隐式使用它。因此,您需要的是以下内容:

\ProvidesClass{myclass}[2011/08/31]
\PassOptionsToPackage{paper=a5}{typearea}
\LoadClass{scrartcl}

paperKOMA-Script 类不会自动将该选项传递给typearea包。另一方面,这旧式 等选项的情况a4papera5paper因此,您的问题的另一种解决方案是:

\ProvidesClass{myclass}[2011/08/31]
\LoadClass[a5paper]{scrartcl}

不过,我不推荐后一种解决方案,因为旧式选项越来越被 KOMA-Script 类弃用。

答案2

你的课程应该是这样的:

\ProvidesClass{myclass}[2011/08/31]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrartcl}}
\ProcessOptions\relax
\LoadClass[paper=a5]{scrartcl}
\RequirePackage{...}
...

相关内容