又是新的一年,又是新的幻灯片风格指南……
我必须更改我在 Beamer 文档中使用的某些字体大小。对于字体大小,Beamer 倾向于加载标准size11.clo
。我需要更改其中定义的字体大小。这似乎相当简单,因为所有这些大小宏(例如\large
、\huge
等)都只是其他宏的包装器。
例如,我应该可以\large
通过执行以下操作来简单地更改字体大小:
\renewcommand\large{\@setfontsize\large{12pt}{34}}
我注意到(尤其是)大量size11.clo
使用了宏\@xpt
、、等。据我所知\@xipt
,\@xiipt
这些只是宏,分别定义为10 pt
、11 pt
和12 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 字节的内存而让代码稍微慢一些、更难阅读可能是不值得的。