覆盖自定义类的默认字体大小

覆盖自定义类的默认字体大小

我正在编写一个文档类(我们称之为 base.cls),它是我正在编写的其他几个类的基类。基类本身基于该类article。默认情况下,字体大小设置为 12pt,即我\LoadClass[12pt]{article}在 base.cls 中调用。现在,从 base.cls 派生的类之一(我们称之为 derived.cls)应该使用 11pt 而不是 12pt。因此,我向 base.cls 添加了默认选项处理程序,以将所有选项传递给在 derived.cls 中调用的articlewhen 。\LoadClass[11pt]{base}

事情就是从这里开始的。似乎一旦处理了 12pt 选项,就会忽略 11pt,字体大小仍为 12pt。我尝试交换字体大小,即在 base.cls 中将 11pt 设置为默认值,并在加载时指定 12pt base.clsderived.cls在这种情况下,结果符合预期:字体大小为 12pt;如果我在加载时不指定 12pt base.cls,则字体大小为 11pt。这是一个最小的工作示例。

基础类.cls:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{base}[2015/09/11 v0.1]

\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}

\ProcessOptions\relax

\LoadClass[a4paper,12pt]{article}

\endinput

派生类.cls:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{derived}[2015/09/11 v0.1]

\LoadClass[11pt]{base}

\endinput

示例.tex:

\documentclass{derived}

\usepackage{lipsum}

\begin{document}
\lipsum
\end{document}

有任何想法吗?

答案1

这是一个解决方案base.cls:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{base}[2015/09/11 v0.1]

\providecommand\mtfntsize{12pt}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}

\ProcessOptions\relax

\LoadClass[a4paper,\mtfntsize]{article}

\endinput

派生类.cls:

\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{derived}[2015/09/11 v0.1]

\def\mtfntsize{11pt}

\LoadClass[\mtfntsize]{base}

\endinput

示例.tex:

\documentclass{derived}

\usepackage{lipsum}

\begin{document}
\lipsum
\end{document}

相关内容