默认情况下,我的系统会生成 A4 文档。如果我想将纸张大小设置为 US Letter,我可以将选项传递letterpaper
给 scrartcl:
\documentclass[letterpaper]{scrartcl}
\begin{document}
Hello, World!
\end{document}
但是如果我创建自己的扩展 scrartcl 的类,我就无法letterpaper
在类文件中传递该选项。例如,这不起作用(生成的文档具有 A4 纸张尺寸):
麦克韦
\documentclass{mcve}
\begin{document}
Hello, World!
\end{document}
麦克韦
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mcve}
\LoadClass[letterpaper]{scrartcl}
这做如果我将其替换scrartcl
为,则可行article
(尽管我还必须在两种情况下加载几何包以使 PDF 纸张大小匹配)。更有趣的是,这也可以工作:
麦克韦
\documentclass[letterpaper]{mcve}
\begin{document}
Hello, World!
\end{document}
麦克韦
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mcve}
\LoadClassWithOptions{scrartcl}
如何letterpaper
在我的课程文件中设置该选项?
答案1
正如@Schweinebacke所说,letterpaper
是的选项typearea
,而不是的选项scrartcl
。传递给的选项\documentclass
成为全局选项,这些选项会传播到\documentclass
声明后加载的所有类和包,而传递给的选项\LoadClass
成为本地选项,这些选项仅传递给正在加载的类文件,而不是它加载的包和类。
为了解决这个问题,我需要在我的类文件中明确设置包letterpaper
的选项:typearea
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{mcve}
\PassOptionsToPackage{letterpaper}{typearea}
\LoadClass{scrartcl}
更多信息请参见适用于课程和软件包编写者的 LaTeX2e以及这个答案。