Contents ...
udn網路城邦
ctex測試
2014/10/18 14:42
瀏覽3,181
迴響0
推薦2
引用0

因為玩LaTeX是個人的興趣,所以我經常會看LaTeX的討論區。中國大陸的LaTeX的用者,多數是使用ctex套件,來寫中文文件。由於MacTeX己經包含了ctex,我就試著使用看看,結果出忽意料之外的容易。

拜xeLaTeX之賜,中文的輸入問題有了很大的改進。ctex也支援了xeLaTeX之後,使得中文字體設定變得十分容易。xeLaTeX一定是要用unicode編碼,所以它先天上就能支援繁體中文。

ctex最大的優點,是提供了專門為中文習慣而設定的板面設定檔(class)所以寫中文文件十分的方便。它主要預設了六種字體,使中文編寫時的版面多出許多變化,可以得到賞心悅目的文件。就算不同平台的字體不同,但文件交流時不會造成阻礙。

表面上的六種字體,為黑體(heiti)、宋體(songti)、楷書(kaishu)、仿宋(fangsong)、隸書(lishu)、幼圓(youyuan)六種。原本都是windows的中文簡體字體,MacTeX因為版權問題,是不帶有字體的,所以字體部分,需要自己設定。 六種字體是用來對照latex的字型命令,如粗體\textbf{}等等,對中文文件做出變化。

設定非常容易,建立二個純文字檔,放置在~/library/texmf或是~/library/texlive/2014/texmf-var/等處即可。檔名為

1.ctexopts.cfg, 內容:

% ctexopts.cfg.template: set default options

% vim:ft=tex

\ExecuteOptions{UTF8}

\ExecuteOptions{nofonts}

\ExecuteOptions{fntef}

\endinput

2.ctex.cfg, 內容:

\setCJKmainfont[BoldFont={黑體},ItalicFont={楷體}]

  {宋體}

\setCJKsansfont{黑體}

\setCJKmonofont{仿宋}

\setCJKfamilyfont{zhsong}{宋體}

\setCJKfamilyfont{zhhei}{黑體}

\setCJKfamilyfont{zhkai}{楷體}

\setCJKfamilyfont{zhfs}{仿宋}

 \setCJKfamilyfont{zhli}{隸書}

 \setCJKfamilyfont{zhyou}{幼圓}

 \setCJKfamilyfont{whatever}{ARPLMingU20-Light}

\newcommand*{\songti}{\CJKfamily{zhsong}} % 宋体

\newcommand*{\heiti}{\CJKfamily{zhhei}}   % 黑体

\newcommand*{\kaishu}{\CJKfamily{zhkai}}  % 楷书

\newcommand*{\fangsong}{\CJKfamily{zhfs}} % 仿宋

\newcommand*{\lishu}{\CJKfamily{zhli}}    % 隶书 

\newcommand*{\youyuan}{\CJKfamily{zhyou}} % 幼圆

\newcommand*{\whatever}{\CJKfamily{whatever}}

\endinput

這二個檔案建立好後,ctex就可正常運作。其中的六種字體設定,可以隨便指定給系統內的任何中文字體。這六種必需要做好設定,cTeX套件才能正常運作。而whatever是我要自己額外添加的字體,其例子就是文鼎PL明體U20-L。要用這個字時,就是在內文用\whatever{內文}的模式來使用。

如在台灣多用繁體中文,自然這六種字體,可以用這些字體的繁體版本,例如Mac內附的蘋果儷細宋,名稱是LiSungLight(可以用工具程式字體簿來查看其名稱),把它設定成ctex預設的宋體:

\setCJKmainfont[BoldFont={要做粗體的字}, ItalicFont={要做斜體的字}]{LiSungLight}

\setCJKfamilyfont{zhsong}{LiSungLight}

取用:

\newcommand*{\songti}{\CJKfamily{zhsong}}

這樣,就是一個繁體中文的LeTeX了。這樣就可以用不同的中文字型,支援latex的字型指令。
這是一個實例:
\documentclass{ctexart}
\begin{document}
中文測試
\end{document}
記得用xeLaTeX編譯,就可做出漂亮的文件。用latex是會有錯誤的,文件會編譯失敗。

有誰推薦more

限會員,要發表迴響,請先登入