在LaTex中调用公文字体GB2312
(2025-04-10 17:37:46)分类: LaTex |
Windows系统中不自带方正小标宋、仿宋GB2312以及楷体GB2312等字体,但公文中会经常使用。
通常来说,下载字体包,单击右键,选择“为所有用户安装”,字体包会自动出现在“C:\Windows\Fonts”文件夹,在Word或WPS等文字编辑软件中即可直接使用了。然而在XeLaTex中调用这三个字体,系统似乎并不能正确找到。
在终端使用“fc-list”命令可以查看系统所有安装字体,进一步通过“fc-list
:lang=zh”可以查看系统所有中文字体。上面两条命令的结果中都没有“GB2312”相关信息,说明通过常规途径安装的GB2312字体包无法被系统真正识别到。
问题:如何在LaTex中使用公文字体GB2312?换句话说,如何让“C:\Windows\Fonts”文件夹中的GB2312字体被LaTex检索到?
解决方案:用字体编辑软件(以FontCreator为例),打开下载的GB2312字体,直接导出,再安装即可。
注意,此时安装的只是常规(Regular)字体,如果要在LaTex里面通过“\textbf{}”或者“\textit{}”改变字形,还需要额外添加粗体(Bold)和斜体(Italic)两个字体包。这两个字体包可以通过使用字体编辑软件制作,例如在FontCreator中,“Tools”下面的“Glyph
Transformer”可以实现该目标。在LaTex中,只需使用
“
\usepackage{fontspec}
\setmainfont{FangSong_GB2312}
”
进行调用即可。导出时字体的属性,例如名称,可以更改,调用时只需和设定的保持一致即可。
未解决问题:楷体GB2312按照上面的操作完美适配,但是仿宋GB2312一经导出,在字体预览阶段就会出现乱码,原本应该显示的12号字“中国智造,慧及全球”变成了“窒郭制噪+悔集泉邱”。在WPS中打开某些含有仿宋GB2312文字的文档,当文字为特定字号的时候,也会出现乱码,该问题目前尚未发现解决方案。奇怪的是通过FontCreator打开原字体文件直接导出,并未做任何修改就会导致乱码,尝试下载了不同来源的仿宋GB2312字体文件做测试,情况都一样。目前折中的一个方案是导出时修改字体名称为“FangSong_GB2312_Tex”,专门为LaTex制作一套仿宋GB2312字体。
参考:
https://blog.csdn.net/qq_46396470/article/details/139972277
https://www.3d66.com/answers/question_518976.html
https://newssrc.onlinedown.net/tutorial/301135.html