1. 程式人生 > >【圖文】Latex 中文字型的使用

【圖文】Latex 中文字型的使用

      使用CTex自帶編輯器WinEdt,在該環境下如何使用中文字型呢?作為一個菜鳥,折騰了好幾天,最終基本解決了這個問題。現在整理下,分享給後來者。

       對於使用中文字型,網上的很多教程是CCT、CJK和TY,不過,CCT已經不建議使用,而CJK、TY這些都已經過時了。而且這些方案中使用的中文字型就那麼幾種,想使用更多的字型,要單獨去安裝字型,無法直接呼叫系統安裝的字型,這樣無疑會很麻煩。最終網上找到的成熟方案是:XeLaTeX。

一、首先,從頭講起,基於LaTeX2對於字型的呼叫方式

       {\字型名稱 正文內容}
       使用CTex巨集包呼叫的例項:

1.新建檔案,鍵入下面程式碼


\documentclass{article}
\usepackage{ctex}

\begin{document}

中文巨集包測試               \par % "\par"表示回車換號
{\songti   這是宋體的樣式} \par
{\heiti    這是黑體的樣式} \par
{\fangsong 這是仿宋的樣式} \par
{\kaishu   這是楷書的樣式} \par
%{\lishu   這是隸書的樣式} \par %CTeX的手冊中是支援隸書和幼圓的,
%{\youyuan 這是幼圓的樣式} \par %但是不知是何原因編譯有問題

\end{document}
2.點選儲存,這裡這裡儲存型別建議以後一直選擇“UTF-8”

注意;儲存型別建議以後一直選擇“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巨集包說明》