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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM