设置 CTeX 的字体
本文对中文字体设置给出了一些建议。
注意
本文存在一定的问题,需要大幅修改;且并未根据不同编译器讨论。
前言
撰写中文 (.tex
) 文档,通常需要考虑普通文本环境下的各类默认字体。
CTeX 自动检测并使用 Windows 下的中易系列字体。
考虑到中易系列字体对标点符号的处理欠佳,字重与英文不搭配;且该系列字体不可商用,应避免使用它们。
对于 LaTeX 文本中五种常用的字形:
配置标识 | 命令\text__ | 类型 | 示例 | 中文 |
---|---|---|---|---|
main | 衬线 | 宋体类 | ||
main Bold | bf | 加粗衬线 | 粗宋类 | |
main Italics | it | 手写字体 | 楷体类 | |
sans | sf | 无衬线 | 黑体类 | |
mono | 等宽字体 | Courier New | 仿宋类 |
我们将分别使用
方正书宋_GBK
方正小标宋_GBK
方正楷体_GBK
方正黑体_GBK
方正仿宋_GBK
探究
阅读 texlive\2021\texmf-dist\doc\latex\ctex\ctex.pdf
中 4.3 中文字库 的说明:
CTeX 宏集能自动检测用户使用的编译方式和操作系统,选择合适的底层支持和字库……但是 CTeX 仍然提供了一系列选项,供在 CTeX 的自动选择机制因为意外情况失效,或者在用户有特殊需求的情况下使用。
fontset = ⟨adobe|fandol|founder|mac|macnew|macold|ubuntu|windows|none|...⟩
指定 CTeX 宏集加载的字库。如果没有指定
fontset
的值,CTeX 宏集将自动检测用户使用的操作系统,配置相应的字体⟨name⟩
为自定义的名字。CTeX 宏集将载入名为ctex-fontset-⟨name⟩.def
的文件作为字体配置文件。因此,请先保证文件的存在。可以在当前工作目录或者本地 TDS 目录树下合适位置建立一个名为ctex-fontset-⟨name⟩.def
的文件,在这个文件里面自定义中文字体。然后通过使用fontset=⟨name⟩
选项来调用它。字体配置文件的具体写法可以参考 CTeX 宏集fontset
目录下的字体配置文件。
另有
10.4 自定义字体集
4.3 节介绍的用于fontset
选项的自定义字库文件,类似于 CTeX 宏集的配置文件,也应该与其他本地配置文件一起保存在本地 TDS 目录树下,并可以配合ctexopts.cfg
等配置文件使用。
这为我们指明了通过修改 CTeX 配置文件的方式,一劳永逸地调整好中文字体。但为了避免可迁移性等问题,我们暂不采用。
解决
在 .tex
文档头部增加
\usepackage{ctex}
\setCJKmainfont{方正书宋_GBK.TTF}[BoldFont={方正小标宋_GBK.TTF},ItalicFont={方正楷体_GBK.TTF}]
\setCJKsansfont{方正黑体_GBK.TTF}
\setCJKmonofont{方正仿宋_GBK.TTF}
理论上我们可以引用字体的 Full Name,但会存在报错 Font shape undefined
的问题。我们直接引用字体文件名。
务必注意,所引用的 .ttf
文件名,必须与存在于 C:\Windows\Fonts
中的字体文件一致。