我想创建一个基于 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}
paper
KOMA-Script 类不会自动将该选项传递给typearea
包。另一方面,这是旧式 等选项的情况a4paper
。a5paper
因此,您的问题的另一种解决方案是:
\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{...}
...