LaTeX字体属性及其在中文Beamer中的使用

认真研究下LaTeX字体的基本属性, 主要参考wiki。

首先, 字体有三大属性:family/shape/series, 外加基本属性:size. 下面我们逐一来看。

字体的Family属性

有成千上万种字体, 但是基本可以分为三个家族(family), 即

family TeX等价
有衬线字体(serif) \rmfamily
无衬线字体(sans-serif) \sffamily
等宽字体(monospaced) \ttfamily

所谓的衬线就是字体顶部或者底部的短横线。中文的话衬线字体就是宋体/明体(台)。而无衬线字体就是通常所谓的黑体。通常无衬线字体用于标题, 而衬线字体用于正文。英文字体请参考这里的字体分类网页

字体的Shape属性

每个字体都支持Shape属性和series属性(但是不是全支持, 例如xeCJK就是通过AutoFakeSlantAutoFakeBold来分别解决确实属性的)。Shape一般有三种

Shape TeX等价
正体(upright) \upshape
斜体(italic) \itshape
倾斜体(slanted) \slshape
小型大写(Small Capitals) \scshape

其中\scshape理论上对中文无效, 因为中文没有大小写一说啊!英文的话, 可以用\lowercase/\uppercase将其转化为小写/大写。

字体的Series属性

字体的Series属性其实是定义了字体的粗细程度, 它一般分为如下三种:

Series TeX等价
粗体(bold) \bfseries
正常(middle) \mdseries
细体(light) \lfseries

其中细体即使在英文也不是所有字体都支持。

最后, 所有上述命令都有等效的LaTeX命令(一般称上面列表中的命令(command)为开关(switch), 其用法和命令不同。{\bfseries ...}等价于\textbf{...}命令):即将\text复合上开关的头两个字母。

此外, 啥效果都没有的字体即为{\normalfont}, 他的等效命令是\textnormal{}.

字体的Size

每个字体都有大小属性。TeX里面设置字体大小的开关从小到大如下:
\tiny<\footnotesize<\small<\normalsize<\large<\Large<\LARGE<\huge<\Huge.
具体地大小还和你所使用的文档类有关, 一个详细的列表可以参考WiKi的Built-in sizes.

最后, Knuth在开发TeX时为其设计了一套称为Computer Modern的字体, 它的大小是固定的几种(5pt到17pt), 所以如果你想通过如下命令改变字体的大小:

表示我们需要一个5cm大的字体, 其所占宽度为5.5cm. 你可能会得到以下警告(latex/pdflatex引擎):

LaTeX Font Warning: Font shape `OT1/cmr/m/n’ in size <142.26378> not available
(Font) size <24.88> substituted on input line 103.

这可以通过使用xelatex引擎来编译, 因为它默认使用的是Latin Modern字体, 一种可以自由缩放的字体。

这也是为啥我做的模板都用xelatex作为默认引擎的原因之一。

一个练习

作为练习, 请观察下列命令的效果:

Beamer中字体的使用

使用如下命令可以很方便的设置Beamer的字体, 更多的设置请参考Beamer appearance cheat-sheetBeamer User Guide, 第18.3.3节.

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据