考虑以下简单示例:
% === this is simple.tex ===
\documentclass[paper=a5,pagesize]{scrbook}
\usepackage{lipsum}
\begin{document}
\lipsum{1-10}
\end{document}
使用 处理此源文件时pdflatex
,输出文件具有正确的 DIN A5 格式的页面大小。现在,出于某些原因,我想介绍我自己的文档类:
% === this is myclass.cls ===
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myclass}[2014/07/01 1.0 current]
\LoadClass[paper=a5,pagesize]{scrbook}
% === this is withclass.tex ===
\documentclass{myclass}
\usepackage{lipsum}
\begin{document}
\lipsum{1-10}
\end{document}
如您所见,我传递了完全相同的选项。在这种情况下,输出文件是使用系统默认页面大小创建的,在我的情况下是 DIN A4。我怀疑参数以某种方式没有以\LoadClass
相同的方式传播 - 这是正确的吗?我该怎么办?
答案1
我在其中一个相关文章中找到了一个解决方案:我需要将选项typearea
明确传递给包。
% === this is myclass.cls ===
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myclass}[2014/07/01 1.0 current]
\PassOptionsToPackage{paper=a5,pagesize}{typearea}
\LoadClass[paper=a5,pagesize]{scrbook}
答案2
我对这个主题的熟悉程度非常低,但出于某种原因,明确地将选项传递给班级scrbook
似乎也有效
% === this is myclass.cls ===
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{myclass}[2014/07/01 1.0 current]
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{scrbook}}
\ProcessOptions\relax
\LoadClass{scrbook}
% === this is withclass.tex ===
\documentclass[paper=a5,pagesize]{myclass}
\usepackage{lipsum}
\begin{document}
\lipsum{1-10}
\end{document}