自定义类中的选项

自定义类中的选项

考虑以下类:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{sampleclass}

\LoadClass[
paper=a5,
chapterprefix=true
]{scrbook}

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}
\ProcessOptions\relax

以及以下文件:

\documentclass[
]{sampleclass}

\begin{document}
    \chapter{Test}
\end{document}

我观察到选项chapterprefix=true对文档有影响,而选项paper=a5没有影响。

如果我在文档中包含纸质选项,如下所示:

\documentclass[
paper=a5
]{sampleclass}

\begin{document}
    \chapter{Test}
\end{document}

然后它就起作用了。发生了什么事?

编辑:聊天中有人建议该问题可能与 KOMA 类有关,所以我只是在这里添加标签来吸引 KOMA 专家。

答案1

paper=a5是 KOMA-Script 类的一部分包的一个选项typearea。它由每个 KOMA-Script 类自动加载。因此,您必须将选项传递给包typearea

\begin{filecontents}{sampleclass.cls}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{sampleclass}

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}
\ProcessOptions\relax

\PassOptionsToPackage{paper=a5}{typearea}
\LoadClass[
chapterprefix=true
]{scrbook}

\end{filecontents}

\documentclass[
]{sampleclass}
\begin{document}
\chapter{Test}
\end{document}

相关内容