中文字体的设置
在这里给出 Windows10
字体的下载
字体文件的常见格式主要有 TrueType (TTF)和 OpenType (OTF)等格式的,在各大网站下载的都是可以用的,不管是 GitHub 下载的开源字体,某些官方网站的商业字体,还是在一些聚合站点上下载的字体。比如说我们进入思源宋体的 GitHub 下载主页,在下面这里点击下载链接,
就会自动下载含有字体文件的压缩包(我点击的是 ExtraLight + Light + Regular + Medium),
解压后可以看到一些 OTF 文件,这就是我们要用的文件,如果你手头上有这样的文件,可以直接拿来用。
安装字体的方式很简单,右键安装即可;但是需要注意的是,一定要点击“为所有用户安装”
如果只点击了“安装”,在 Word 等软件中可以正常使用这个字体,但是用 LaTeX 编译的时候会出现无法调用而报错的问题。
Windows 10 的设置中可以查看自己安装的字体,这个面板可以在设置中进行搜索进入
安装成功之后,在“字体设置”页面中搜索应该可以看到这个字体。
注意,如果通过将字体文件拖放到“字体设置”页面的“添加字体”那个虚线方框中进行字体的安装,并不是为所有用户安装的,不能成功被 LaTeX 调用。
对于思源宋体这种字体,它是含有多种粗细型号的,都可以在这个面板进行预览和查看。
查看安装的字体及其代号
上面的在 windows 设置面板中查看安装的字体,其作用是方便查看字体的预览。并不能给我们在 LaTeX 调用字体是要用的准确的“代号”。要查看这个代号,我们在命令行(需要用管理员身份运行)中输入
fc-list -f "%{family}n" :lang=zh >d:zhfont.txt
系统就会输出一个文件 zhfont.txt
,放在 D 盘中(当然你可以自己修改路径,更多的信息可以搜索了解)。打开这个文件之后,你就会看到系统中安装的所有中文字体及其代号,都可以在 LaTeX 中随意调用,当然也包括我们刚刚安装的“思源宋体”,
zhfont.txt
所有用逗号 ,
隔开的短语,如 Source Han Serif SC
,思源宋体
,Source Han Serif SC Medium
,思源宋体 Medium
,都可以作为后面调用的代号,其中后两者代表“Medium”这个粗细,而前两者实际上代表的是这个字体的默认粗细,即“Regular”,想要调用非默认粗细的话需要注意代号。
安装新字体之后,为了给 TeX Live 调用,我们刷新一下 TeX Live 中的字体,在命令行中运行,一般 3 次就可以了
fc-cache -fsv
使用 xeCJK
宏包调用系统中已安装的字体
我们使用宏包 xeCJK
进行中文字体的设置:
usepackage{xeCJK}
下面介绍几个常用的命令,更多的玩法网上已经有很多教程。
1. 设置主要文字
首先是对整篇文档主要文字的设置,包括默认字体、加粗字体和斜体字体,
setCJKmainfont[ItalicFont=方正楷体简体,BoldFont=FZHei-B01S]{Source Han Serif SC}
字体 | 对应命令 | 示例字体 |
加粗字体 | textbf{xxx} | FZHei-B01S |
斜体字体 | textit{XXX} | 方正楷体简体 |
正如上面的示例,我们调用一个字体,既可以用英文代号,也可以用中文代号。下面是一个示例:
我们对LaTeX 中textbf{中文字体}的textit{设置}进行介绍。
2. 临时调用某个字体
另外一个常用的命令是临时调用某个字体 CJKfintspec
:
{CJKfontspec{方正楷体简体} 实验时间:2020年9月21日~星期一~下午}
注意如果是在一大段文字中临时调用字体,一定不能忘记最外面的大括号,否则从这一行起,后面所有的文字都会变成这个字体。
如果嫌上面的命令麻烦,可以使用 LaTeX 的 newcommand
自己给调用的字体命名,
renewcommand{songti}{CJKfontspec{Source Han Serif SC}}%用命令songti调用思源宋体
newcommand{fzkaiti}{CJKfontspec{方正楷体简体}}%用命令fzkaiti调用方正楷体简体
然后就可以用下面的命令临时调用文字(注意两种方式,最外面的大括号都不能省略),
使用{fzkaiti 方正楷体简体}进行书写
使用{fzkaiti{方正楷体简体}}进行书写
可能有的读者注意到,第一行用的是 renewcommand
而不是 newcommand
。这是因为,如果我们引用了 ctex
宏包或者文档类型用的是 ctexart
,我们可以直接用 ctex
宏包自带的字体:
比如说临时调用隶书这个字体,
{lishu{下面}}是ctex宏包中自带的字体,可以直接使用
相应的,我们在自定义字体的时候,就不能和这些字体的命令重名,否则会报错。实际上,我们想进行的操作是替换掉原来的 songti
命令,故需要用 renewcommand
。
最后给出一个样例代码
documentclass[UTF8]{ctexart}
usepackage{xeCJK}
setCJKmainfont[ItalicFont=方正楷体简体,BoldFont=FZHei-B01S]{Source Han Serif SC}
renewcommand{songti}{CJKfontspec{Source Han Serif SC}}%用命令songti调用思源宋体
newcommand{fzkaiti}{CJKfontspec{方正楷体简体}}%用命令fzkaiti调用方正楷体简体
begin{document}
我们对LaTeX 中textbf{中文字体}的textit{设置}进行介绍。
{lishu 下面}是ctex宏包中自带的字体,可以直接使用;相应得,我们在自定义字体的时候,{fzkaiti 不能}和这些字体的命令重名。
begin{tabular}{|lll|}
hline
songti 宋体 & SimSun &verb|songti 宋体|
kaishu 楷体 & KaiTi &verb|kaishu 楷体|
heiti 黑体 & SimHei &verb|heiti 黑体|
yahei 微软雅黑 & Microsoft YaHei &verb|yahei 微软雅黑|
fangsong 仿宋 & FangSong &verb|fangsong 仿宋|
youyuan 幼圆 & YouYuan &verb|youyuan 幼圆|
lishu 隶书 & LiSu &verb|lishu 隶书|
hline
end{tabular}
end{document}