更改默认字体大小时是否应该添加预定义的长度?

更改默认字体大小时是否应该添加预定义的长度?

又是新的一年,又是新的幻灯片风格指南……

我必须更改我在 Beamer 文档中使用的某些字体大小。对于字体大小,Beamer 倾向于加载标准size11.clo。我需要更改其中定义的字体大小。这似乎相当简单,因为所有这些大小宏(例如\large\huge等)都只是其他宏的包装器。

例如,我应该可以\large通过执行以下操作来简单地更改字体大小:

\renewcommand\large{\@setfontsize\large{12pt}{34}}

我注意到(尤其是)大量size11.clo使用了宏\@xpt、、等。据我所知\@xipt\@xiipt这些只是宏,分别定义为10 pt11 pt12 pt。我还记得读到过这些罗马数字宏的目的是加快编译过程,因为\@xpt在 TeX 内部只有一个标记,而10 pt需要先解释的标记是五个。大小宏过度使用罗马数字宏这一事实告诉我,大小宏被称为非常经常因此而进行速度优化。

问题是,重新定义字体大小宏时,我是否应该首先创建足够的罗马数字宏,以确保编译过程顺利进行?

答案1

根本没有理由定义(或使用)这些宏。

与使用\z@\@ne不可扩展的标记不同,它们可以(稍微)更快地访问 0 和 1,这些是简单的宏:\@xpt只需扩展为10(不是10pt,尽管pt名称中带有),因此 TeX 需要将宏扩展为两位数标记,然后仍然需要扫描标记以寻找<number>,就像您10明确使用一样。

宏的原因主要与 20 世纪 80 年代早期机器可用的内存量有关。

\def\large{\@setfontsize\normalsize\@xpt\@xiipt}

是定义中的 4 个替换文本标记。

\def\large{\@setfontsize\normalsize{10pt}{12pt}}

是 14,因此当 TeX 保存定义时节省大约 10 字节左右的内存。

本世纪,为了节省 10 字节的内存而让代码稍微慢一些、更难阅读可能是不值得的。

相关内容