imagettftext字体不能用_Win10环境下LaTeX中文字体的设置

中文字体的设置

在这里给出 Windows10 环境下,设置中文字体的一个相对比较完整的流程,以思源宋体的安装和使用为例。

字体的下载

字体文件的常见格式主要有 TrueType (TTF)和 OpenType (OTF)等格式的,在各大网站下载的都是可以用的,不管是 GitHub 下载的开源字体,某些官方网站的商业字体,还是在一些聚合站点上下载的字体。比如说我们进入思源宋体的 GitHub 下载主页,在下面这里点击下载链接,

a03b2505d744aff705423484a3c2c3ac.png

就会自动下载含有字体文件的压缩包(我点击的是 ExtraLight + Light + Regular + Medium),

22727f2da15a4506ec31b2d594a7f99c.png

解压后可以看到一些 OTF 文件,这就是我们要用的文件,如果你手头上有这样的文件,可以直接拿来用。

6d8d3ff8dea5492f42c2da84ac431061.png

安装字体的方式很简单,右键安装即可;但是需要注意的是,一定要点击“为所有用户安装”

e5b024416896715619262d39d5ed3ad9.png

如果只点击了“安装”,在 Word 等软件中可以正常使用这个字体,但是用 LaTeX 编译的时候会出现无法调用而报错的问题。


Windows 10 的设置中可以查看自己安装的字体,这个面板可以在设置中进行搜索进入

2f35fb30e11c9c3433feb457b65f4401.png

安装成功之后,在“字体设置”页面中搜索应该可以看到这个字体。

53f6d019e2079484cf71af7aa6664e7a.png
注意,如果通过将字体文件拖放到“字体设置”页面的“添加字体”那个虚线方框中进行字体的安装,并不是为所有用户安装的,不能成功被 LaTeX 调用。

对于思源宋体这种字体,它是含有多种粗细型号的,都可以在这个面板进行预览和查看。

79fc189f33e20b311be6007cedc4a332.png

查看安装的字体及其代号

上面的在 windows 设置面板中查看安装的字体,其作用是方便查看字体的预览。并不能给我们在 LaTeX 调用字体是要用的准确的“代号”。要查看这个代号,我们在命令行(需要用管理员身份运行)中输入

fc-list -f "%{family}n" :lang=zh >d:zhfont.txt

系统就会输出一个文件 zhfont.txt,放在 D 盘中(当然你可以自己修改路径,更多的信息可以搜索了解)。打开这个文件之后,你就会看到系统中安装的所有中文字体及其代号,都可以在 LaTeX 中随意调用,当然也包括我们刚刚安装的“思源宋体”,

fac3d007096025ac16c307658907da15.png
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{设置}进行介绍。

d0b21448addd74a5b91c873f0c38d258.png

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 宏包自带的字体:

acc26b48fe16555963770e7e4a082d70.png

比如说临时调用隶书这个字体,

{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}

b8af5d7a82ec5eccf6edd2826616592c.png
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值