介绍
字体是由一些正交的属性决定的,通常讨论的属性为字体族(font family)、字体形状(font shape)以及字体系列(font series)。关于字号这个属性我们一般单独作为一个字体属性进行设置。本文不对具体的字体属性进行说明,仅通过实例来说明如何在我们的文档中分别设置中、西文字体。
本文主要参考了刘海洋的《LaTeX入门》,更多关于字体的介绍可以参考本书、官方文档或其他资料。
字体
预定义的字体族有3种:默认的罗马字体族(roman family)、无衬线字体族(sans serif family)和打印机字体族(typewriter family)。其命令为:
预定义的字体形状:默认的直立(upright shape,也称roman shape)、意大利(italic shape)、倾斜(slanted shape)、小型大写(small capitals shape)。我们通常所说的“倾斜”往往是指意大利形状,因此我们在设置倾斜字体的时候往往都是指定意大利形状字体。
字体形状这些概念源于英文,对于中文来说字体并没有这么复杂。中文中并没有倾斜字体,我们在 word 中看到的倾斜字体实际是通过对字符进行水平错切得到的伪斜体(对应的还有伪粗体是对字符多次略微错位输出得到的)。一般情况下我们使用楷体来对应英文中的倾斜字体,用黑体来替代英文中的加粗字体。这一点后面的示例会进行说明。如果我们想使用伪斜体请查阅相关文档。
预定义的字体系列:默认的中等(medium)和加宽加粗(bold extended)两类:
在我们编写自己的包或者类文件时,一般我们都需要设置三个字体族使用什么样字体。对于其他两个字体形状和字体系列,我们往往只关心罗马字体族的“倾斜”(实际为意大利)和加粗两个属性。下面是一个常用的设置示例:
\RequirePackage{fontspec}
\setmainfont{Times New Roman}
\setsansfont{Myriad Pro}
\setmonofont{Courier Std}
\setCJKmainfont[BoldFont={方正小标宋_GBK}, ItalicFont={方正楷体_GBK}, BoldItalicFont={方正仿宋_GBK}]{方正书宋_GBK}
\setCJKsansfont{方正黑体_GBK}
\setCJKmonofont{方正中等线_GBK}
这里假设我们使用的文档模板为 ctexart,这样我们可以直接使用下面三个 CJK
相关的命令。第一个命令是用来加载包的,如果在我们的文档中使用的话对应的命令为 \usepackage{fontspec}
。
接下来的三行是设置英文状态下三种字体族使用的字体。分别设置了正文罗马字体族、无衬线字体族和打印机字体族。英文字体一般都是成套的,当我们设置好这三种字体后,fontspec 宏包会自动的寻找对应的变体,无需我们关心。
最后的三行是设置中文状态下的三种字体族使用的字体。中文各个字体之间一般都是独立的(只有少数字体由不同重量的成套字体),因此这里我们给主要字体指定了其在加粗、倾斜以及加粗倾斜时使用的字体。由于正文字体及其加粗、倾斜变体一般足以覆盖我们90%以上的文档,所以这里不再给另外两个字体族设置变体字体了。
更多字体
在 word 中选择字体时,我们可以看到所有我们电脑上安装的字体并进行设置。接下来介绍如何在 LaTeX 中引入更多的系统字体。
加载更多英文字体使用的命令为 fontspec 宏包的 \newfontfamily<命令>[(可选项)]{<字体名>}
。xeCJK 宏包(ctex宏包或文档类[包括我们这里的 ctexart 文档]会自动调用)中对应的命令为 \setCJKfamilyfont{<中文字体族>}[<可选项>]{字体名}
。下面是一个使用示例:
\setCJKfamilyfont{hwhp}{华文琥珀}
\newcommand{\hwhp}{\CJKfamily{hwhp}}
\newfontfamily\tempus{Tempus Sans ITC}
这里使用 \newcommand
命令将中文字体选择的命令重定义成一个更简单的形式。下面是一个使用示例:
{\hwhp 这是一段华文琥珀文字, english not work}
{\tempus this is Technic font, 中文不起作用}
显示结果如下:
对于字体不起作用的字符,会自动使用前面设置的正文罗马字体。
在 Windows 中可以在
设置
->字体
中查看电脑中安装的字体名称及其预览。
字号
默认的字号大小可以在我们加载标准文档时,通过指定参数来进行设置。如:\documentclass[12pt]{report}
。正文默认字体的选项有10pt(默认),11pt,12pt三种。如果使用的为 ctexart,ctexrep,ctexbook 则还额外提供了 c5size 和 cs4size 两个选项。其中 c5size 为默认值,表示五号字(10.5pt),cs4size 表示小四号字(12pt)。
如果我们想要局部的修改某些字体的大小可以使用如下命令:
\Huge
\huge
\LARGE
\Large
\large
\normalsize (default)
\small
\footnotesize
\scriptsize
\tiny
这些命令对应字体的大小和默认字体有关,具体对应关系如下:
当然 LaTeX 中还允许更加灵活的设置字号,如果你觉得上面字号不够用的话。可以查阅相关资料了解更多的字号设置。这里 是一篇不错的文档。