Latex 環境下“中文字體”的使用
使用CTex自帶編輯器WinEdt,在該環境下如何使用中文字體呢?作為一個菜鳥,折騰了好幾天,最終基本解決了這個問題。現在整理下,分享給后來者。
對於使用中文字體,網上的很多教程是CCT、CJK和TY,不過,CCT已經不建議使用,而CJK、TY這些都已經過時了。而且這些方案中使用的中文字體就那么幾種,想使用更多的字體,要單獨去安裝字體,無法直接調用系統安裝的字體,這樣無疑會很麻煩。最終網上找到的成熟方案是:XeLaTeX。
一、首先,從頭講起,基於LaTeX2對於字體的調用方式:
- {\字體名稱 正文內容}
1.新建文件,鍵入下面代碼
- \documentclass{article}
- \usepackage{ctex}
- \begin{document}
- 中文宏包測試 \par % "\par"表示回車換號
- {\songti 這是宋體的樣式} \par
- {\heiti 這是黑體的樣式} \par
- {\fangsong 這是仿宋的樣式} \par
- {\kaishu 這是楷書的樣式} \par
- %{\lishu 這是隸書的樣式} \par %CTeX的手冊中是支持隸書和幼圓的,
- %{\youyuan 這是幼圓的樣式} \par %但是不知是何原因編譯有問題
- \end{document}
注意;保存類型建議以后一直選擇“UTF-8”,因為一方面xeCJK格式的漢字字體將無法顯示,另一方面, GBK 編碼是 ctex 宏包的缺省模式,使用 XeTEX 引擎的情況下總是內部使用 UTF-8 編碼,所以不必使用這個選項,但這並不妨礙編寫 GBK 編碼的文檔。
3.選擇XeLaTeX編譯方式,點擊查看
4.效果如下圖:
二、基於XeLaTeX的中文字體的使用
XeLaTeX可以直接調用系統中安裝的字體,但是字體的名稱並不是我們通常見到的那樣,比如:華文隸書 在系統中是“STLiti”。而如何找到這種對於關系呢?
開始->運行->輸入“CMD”,彈出命令窗口:輸入:"fc-list",回車,就可以看到系統中所有安裝字體的這種對於關系。當然,顯示的原因,可能看不全,所有不如把它保存下來,方法是命令窗口中輸入:“fc-list>>c:font.txt”(這里假設存入到D盤的font.txt文件下)。
注意:筆者按照網上的兩種方法:“fc-list:lang=zh-cn”(查看所有安裝的中文字體)或者“fc-list:lang=en”(查看所有安裝的英文字體),一直無法查看,在這點上折騰了很長時間。所以,如果你的電腦上可以按這兩種方法查看那樣最好,如果不能,不妨就用我的方法。當然,如果你搞清楚了其中的原因也歡迎留言。
現在有了這種對應關系,那么就可以繼續了。在導言區對全局的字體進行設置:
然后便是對於其它字體的設置和使用,需要注意的是指令的名稱是可以自己定義的,但是系統字體名稱卻一定要按照上面查出來了的字體名稱
下面是一個完整的例子:
- \documentclass{article}
- \usepackage{ctex}
- \setmainfont{Times New Roman}%設置Times New Roman為默認的英文字體
- \setCJKmainfont{SimSun} %設置宋體為默認的中文字體
- %設置要使用的英文字體
- %\newfontinstance{\courier} {Courier} %使用Courier字體
- \newfontinstance{\gramond} {Garamond} %使用Garamond字體
- %設置要使用的中文字體
- \setCJKfamilyfont{mhwxk}{STXingkai} %華文行楷
- \newcommand{\stxk}{\CJKfamily{mhwxk}}
- \setCJKfamilyfont{hwlsh}{STLiti} %華文隸書
- \newcommand{\sthwls}{\CJKfamily{hwlsh}}
- \begin{document}
- %{\courier This a Courier Style} \par
- {\gramond This a Garamond font style} \par
- {\stxk 這是華文行楷字體的式樣} \par
- {\sthwls 這是華文隸書字體的式樣} \par
- \end{document}
注意:
1.以上面的程序代碼為例,注釋掉的部分是使用Courier字體,如果去掉注釋,由於我的電腦上沒有這樣的字體,於是就出來了這樣的情況:編譯的時候沒有錯誤,卻無法生成PDF文件,進而也就無法查看,所以,出現編譯沒有錯誤,但是生成不了PDF文件時要考慮是不是本機沒有這種字體。這一點一定一定要引起足夠的重視!!!
2.對於系統中查到的字體名稱,可能考慮到轉義字符原因,有些是不能直接使用的,要把“\”去掉才能正確使用。
例如:系統中查到一種字體:“ FZXiaoBiaoSong\-B05S,方正小標宋簡體”如果這樣使用就是錯誤的:
- \setCJKfamilyfont{MyCJKfzxbs}{FZXiaoBiaoSong\-B05S} %方正小標宋簡體
- \newcommand{\fzxbs}{\CJKfamily{MyCJKfzxbs}}
- \setCJKfamilyfont{MyCJKfzxbs}{FZXiaoBiaoSong-B05S} %方正小標宋簡體
- \newcommand{\fzxbs}{\CJKfamily{MyCJKfzxbs}}
參考資料:
[1].在xeLaTeX和CTeX中使用本地系統字體的方法
[2].《CTeX宏包說明》