LaTeX如何通过xeCJK使用本地字体?
LaTeX如何通过xeCJK使用本地字体?
我们在使用LaTex的时候,一般情况下只需要使用系统自带的字体,但是在很多场合我们仍然需要使用一些特殊字体,但是如果按照常规的方法使用字体似乎不可行。
例如,我们查看系统字体,看到系统确实安装了汉仪雪君体简字体
怎么办?
在编写的.tex文件的导言区导入宏包: \usepackage{xeCJK} % 中文字体扩展管理宏包,务必添加!!
我们再在LaTex编辑器中写入下面配对命令。注意:本地字体不可以直接在tex中使用,需要转化处理,步骤两步:
1. 首先,将tex系统不认识的这个本地字体加入到CJKfamily大家庭,使其被tex系统识别(理解即可~),操作方法如下:
\setCJKfamilyfont{重新命名的字体,如hyxjj} {系统内的某个字体名,如 汉仪雪君体简.TTF}
2. 然后,定义新的字体调用命令。
\newcommand{ \hyxjj } { \CJKfamily{hyxjj} } %创建新字体调用命令
之后,就可以在正文中通过调用上面创立的新命令{\hyxjj xxx}实现对文本xxx的修饰
举例:
\setCJKfamilyfont{hyxjj}{汉仪雪君体简.TTF} %汉仪雪君体简体 \newcommand{\hyxjj}{\CJKfamily{hyxjj}}
然后,在正文部分使用刚才声明的字体:
\hyxjj 循环卷积混叠的产生与消除
然后编译,发现报了如下的错误
fontspec error: "font-not-found" The font "汉仪雪君体简" cannot be found. For immediate help type H <return>. ...family {hyxjj}循环卷积混叠的产生与消除}{1}{section.1.1}
fontspec error: "font-not-found" The font "汉仪雪君体简" cannot be found. For immediate help type H <return>. ...family {hyxjj}循环卷积混叠的产生与消除}{1}{section.1.1}
fontspec error: "font-not-found" The font "汉仪雪君体简" cannot be found. For immediate help type H <return>. ...family {hyxjj}循环卷积混叠的产生与消除}{1}{section.1.1}
显然,在进行编译时,系统找不到汉仪雪君体简的字体库,但是当我们使用其他宋体字体库时就可以,经过多次尝试,我们猜想应该是操作系统确实安装了该字体,但是LaTex在调用该字体时有些问题,这个问题在于字体名与字体库文件名不一致,或者说编码不一致,导致编译时没有正确匹配到字体文件,所以我们现在的方法有两种:
- 更改LaTex的字体文件匹配编码方式
- 更改字体文件的字体名,使字体名全部为ASCLL编码方式,或者UTF-8编码方式
显然,我们用方法2简单很多,于是我们开始寻找一种能改变字体名的工具,比较幸运的是,确实有像FontCreator这样的字体生成工具,这个当然可以更改字体名。于是我们使用FontCreator对字体文件进行更改
打开FontCreator,并找到需要更改的字体文件,打开它,然后在字体属性中对文件名进行更改,如下图
我们将左图的原文件属性修改为右图的属性,这样就更改了文件的字体名,然后导出为TTF文件,我们再把这个文件粘贴到系统字体路径下,系统就会自动安装刚才的字体,这里注意字体名很有可能不是文件名,为了保险起见,我们将字体名和文件名都改为HYXueJunJ和HYXueJunJ.TTF。
以上我们就完成了字体名的更改,接下来我们重新使用LaTex尝试编译
\setCJKfamilyfont{hyxjj}{HYXueJunJ.TTF} %汉仪雪君体简体
\newcommand{\hyxjj}{\CJKfamily{hyxjj}} %将调用命令重定义为\hyxjj
然后我们再使用这个命令来码字看看
和我们预想的一样,确实可以以汉仪雪君体简的形式编译 ,同理我们可以声明其他字体
\setCJKfamilyfont{qxybxsj}{QuanXinYingBiXingShuJ.TTF} %全书硬笔行书简体
\newcommand{\qxybxsj}{\CJKfamily{qxybxsj}}
调用重新定义的字体调用命令,然后编译
声明的字体不会影响字号的选择,这样理论上我们就可以安装任何我们想要使用的字体,当然板书的形式是次要的,内容才是核心。
声明:以上涉及使用的字体仅仅是用来学习使用的,严谨作为商业用途,若使用者乱用构成侵权的后果自负。
参考:https://blog.csdn.net/C_ElecM/article/details/100802178
汉仪雪君体简.TTF