中文字体的设置

在这里给出 Windows10

字体的下载

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




python的tkinter做的GUI界面字体样式 tkinter text字体_imagettftext字体不能用


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


python的tkinter做的GUI界面字体样式 tkinter text字体_latex 大括号_02


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


python的tkinter做的GUI界面字体样式 tkinter text字体_latex textbf没有用_03


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


python的tkinter做的GUI界面字体样式 tkinter text字体_latex textbf没有用_04


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


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


python的tkinter做的GUI界面字体样式 tkinter text字体_latex 大括号_05


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


python的tkinter做的GUI界面字体样式 tkinter text字体_latex 大括号_06


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

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


python的tkinter做的GUI界面字体样式 tkinter text字体_latex 加粗_07


查看安装的字体及其代号

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


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


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


python的tkinter做的GUI界面字体样式 tkinter text字体_imagettftext字体不能用_08

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


python的tkinter做的GUI界面字体样式 tkinter text字体_latex 中文_09


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


python的tkinter做的GUI界面字体样式 tkinter text字体_latex 中文_10


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


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


python的tkinter做的GUI界面字体样式 tkinter text字体_latex 中文_11