LaTex使用系统字体的方法

我们在使用LaTex的时候,一般情况下只需要使用系统自带的字体,但是在很多场合我们仍然需要使用一些特殊字体,但是如果按照常规的方法使用字体似乎不可行。例如,我们查看系统字体,看到系统确实安装了汉仪雪君体简字体

LaTex使用系统字体的方法_第1张图片

我们再在LaTex编辑器中写入

\setCJKfamilyfont{hyxjj}{汉仪雪君体简.TTF}                   %汉仪雪君体简体
\newcommand{\hyxjj}{\CJKfamily{hyxjj}}      

然后再在正文部分使用刚才声明的字体

\hyxjj   循环卷积混叠的产生与消除

然后编译,发现报了如下的错误

fontspec error: "font-not-found" The font "汉仪雪君体简" cannot be found. For immediate help type H . ...family {hyxjj}循环卷积混叠的产生与消除}{1}{section.1.1}
fontspec error: "font-not-found" The font "汉仪雪君体简" cannot be found. For immediate help type H . ...family {hyxjj}循环卷积混叠的产生与消除}{1}{section.1.1}
fontspec error: "font-not-found" The font "汉仪雪君体简" cannot be found. For immediate help type H . ...family {hyxjj}循环卷积混叠的产生与消除}{1}{section.1.1}

显然,在进行编译时,系统找不到汉仪雪君体简的字体库,但是当我们使用其他宋体字体库时就可以,经过多次尝试,我们猜想应该是操作系统确实安装了该字体,但是LaTex在调用该字体时有些问题,这个问题在于字体名与字体库文件名不一致,或者说编码不一致,导致编译时没有正确匹配到字体文件,所以我们现在的方法有两种:

  1. 更改LaTex的字体文件匹配编码方式
  2. 更改字体文件的字体名,使字体名全部为ASCLL编码方式,或者UTF-8编码方式

显然,我们用方法2简单很多,于是我们开始寻找一种能改变字体名的工具,比较幸运的是,确实有像FontCreator这样的字体生成工具,这个当然可以更改字体名。于是我们使用FontCreator对字体文件进行更改

打开FontCreator,并找到需要更改的字体文件,打开它,然后在字体属性中对文件名进行更改,如下图

LaTex使用系统字体的方法_第2张图片LaTex使用系统字体的方法_第3张图片

我们将左图的原文件属性修改为右图的属性,这样就更改了文件的字体名,然后导出为TTF文件,我们再把这个文件粘贴到系统字体路径下,系统就会自动安装刚才的字体,这里注意字体名很有可能不是文件名,为了保险起见,我们将字体名和文件名都改为HYXueJunJ和HYXueJunJ.TTF。
       以上我们就完成了字体名的更改,接下来我们重新使用LaTex尝试编译

\setCJKfamilyfont{hyxjj}{HYXueJunJ.TTF}       %汉仪雪君体简体
\newcommand{\hyxjj}{\CJKfamily{hyxjj}}        %将调用命令重定义为\hyxjj

然后我们再使用这个命令来码字看看

LaTex使用系统字体的方法_第4张图片

和我们预想的一样,确实可以以汉仪雪君体简的形式编译  ,同理我们可以声明其他字体

\setCJKfamilyfont{qxybxsj}{QuanXinYingBiXingShuJ.TTF}    %全书硬笔行书简体
\newcommand{\qxybxsj}{\CJKfamily{qxybxsj}}               

调用重新定义的字体调用命令,然后编译

LaTex使用系统字体的方法_第5张图片

声明的字体不会影响字号的选择,这样理论上我们就可以安装任何我们想要使用的字体,当然板书的形式是次要的,内容才是核心。

声明:以上涉及使用的字体仅仅是用来学习使用的,严谨作为商业用途,若使用者乱用构成侵权的后果自负。

 

 

你可能感兴趣的:(LaTex)