LaTeX字体属性及其在中文Beamer中的使用
认真研究下LaTeX字体的基本属性, 主要参考wiki。
首先, 字体有三大属性:family/shape/series, 外加基本属性:size. 下面我们逐一来看。
字体的Family属性
有成千上万种字体, 但是基本可以分为三个家族(family), 即
family | TeX等价 |
---|---|
有衬线字体(serif) | \rmfamily |
无衬线字体(sans-serif) | \sffamily |
等宽字体(monospaced) | \ttfamily |
所谓的衬线就是字体顶部或者底部的短横线。中文的话衬线字体就是宋体/明体(台)。而无衬线字体就是通常所谓的黑体。通常无衬线字体用于标题, 而衬线字体用于正文。英文字体请参考这里的字体分类网页。
字体的Shape属性
每个字体都支持Shape属性和series属性(但是不是全支持, 例如xeCJK就是通过AutoFakeSlant
与AutoFakeBold
来分别解决确实属性的)。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
<<
\small
<\normalsize
<\large
<\Large
<\LARGE
<\huge
<\Huge
.
具体地大小还和你所使用的文档类有关, 一个详细的列表可以参考WiKi的Built-in sizes.
最后, Knuth在开发TeX时为其设计了一套称为Computer Modern的字体, 它的大小是固定的几种(5pt到17pt), 所以如果你想通过如下命令改变字体的大小:
1 2 |
\fontsize{5cm}{5.5cm}\selectfont |
表示我们需要一个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
作为默认引擎的原因之一。
一个练习
作为练习, 请观察下列命令的效果:
1 2 3 4 5 6 7 8 9 10 11 12 |
\documentclass{article} \usepackage{xeCJK} \setCJKmainfont[AutoFakeBold,AutoFakeSlant]{STSong} \setCJKsansfont[AutoFakeBold,AutoFakeSlant]{KaiTi} \setCJKmonofont[AutoFakeBold,AutoFakeSlant]{STFangsong} \begin{document} {\Huge 大} {\fontsize{5cm}{5.5cm}\selectfont 字}体 {\bfseries 粗体}{\slshape Hello}{\ttfamily Typewriter} \end{document} |
Beamer中字体的使用
使用如下命令可以很方便的设置Beamer的字体, 更多的设置请参考Beamer appearance cheat-sheet与Beamer User Guide, 第18.3.3节.
1 2 3 4 5 |
\setbeamerfont*{title}{family=\sffamily, shape=\scshape, series=\bfseries, size=\LARGE} \setbeamerfont{frametitle}{family=\sffamily, shape=\upshape, series=\bfseries} \setbeamerfont{normal text}{family=\rmfamily, shape=\upshape, series=\mdseries} \AtBeginDocument{\usebeamerfont{normal text}} |
发表回复