lins05
mysnowls@163.com
August 6, 2011
摘要
Linux下用LaTeX很方便,但是要解決中文的問題就不怎么方便,因 為TeX的字體系統(tǒng)很難自己解決。
Windows下可以使用配置好的CTeX套裝1 , 現(xiàn)在本文中就簡(jiǎn)介如何在Linux下配置CTeX,以方便寫中文文檔。
1 老的方法
1.1 缺乏可用的字體
1.2 默認(rèn)的格式不符合中文排版要求
1.3 不能滿足中文的其他要求
2 CTeX和xeCJK
2.1 字體
2.2 中文版式
2.3 CTeX和xeCJK的關(guān)系
3 簡(jiǎn)單的例子
4 注意事項(xiàng)
4.1 如何安裝
4.2 推薦字體
4.3 其他設(shè)置
LATEX的CJK宏包,經(jīng)過實(shí)踐證明,確實(shí)是一個(gè)可行且實(shí)用的中文LATEX解決方 案。但是它有幾點(diǎn)不足:
LATEX下的中文字體很少,Linux下的字體更少。因?yàn)門EX的字體系統(tǒng)比較復(fù)雜,使 得用戶想自己生成字體非難困難,門檻很高,并且管理不方便。
CJK宏包僅僅解決了中文字體的問題,但是它默認(rèn)的格式是英文的排版方式(CJK的 作者是德國(guó)人)。
因此,一般用戶都需要自己設(shè)置種種版式:首先縮進(jìn),行距和段距。中英文混排 時(shí)的字距,等等。
比如生成目錄時(shí),中文文檔應(yīng)該叫“目錄”,而不是”CONTENTS”。類似的還有“ 附錄”、“表格索引”等等。
CTeX宏包和xeCJK宏包的組合相當(dāng)完美的解決了這些問題。
xeCJK宏包所使用的XeTeX引擎,是從MacOS移植到Linux和Windows上的。它最大 的特點(diǎn)是從底層就具備對(duì)unicode的支持,以及可以直接調(diào)用系統(tǒng)中已有的字 體。
這意味著將LaTeX用戶從和字體相關(guān)的一大推問題中解決出來了。只要系統(tǒng)中安裝 了中文字體,那么使用XeTeX就能使用這些字體。
xeCJK是必須使用XeTeX引擎的,這也是為什么標(biāo)題叫做CTeX + xeCJK + XeTeX的原因。
CTeX的開發(fā)者們是值得所有的LaTeX用戶感激的。使用CTeX的各個(gè)documentclass, 我們就無須再手動(dòng)地設(shè)置版式,因?yàn)镃TeX的默認(rèn)設(shè)置就是最適合中文文檔的:行首 縮進(jìn)兩個(gè)漢字;行距和段距的適當(dāng)調(diào)整,中英文的混排時(shí)的字距,都是適合中文版式 的。
此外,CTeX將其他應(yīng)該為中文文檔考慮的地方大都包括了進(jìn)去:”CONTENTS”改為 了“目錄”,”Index”改為了”索引“,等等。
二者都是宏包,但是,CTeX是一個(gè)上層的中文LaTeX宏包。它的下層是可選的,可 以支持xeCJK、CJK,甚至更老的CCT宏包。對(duì)于不同的下層宏包它進(jìn)行不同的設(shè) 置。xeCJK完全可以脫離CTeX使用,但是這樣你雖然不用擔(dān)心字體,同樣也不能享 受到CTeX的中文版式。
例子總是最直觀的。我們以一個(gè)最簡(jiǎn)單的例子來說明。
%---------------------------------------
\documentclass[a4paper]{article}
\usepackage[adobefonts]{ctex}
\setCJKmainfont{SimSun}
%---------------------------------------
\author{小明}
\title{記一次春游}
\date{\today}
%---------------------------------------
\begin{document}
\pagestyle{plain}
\maketitle
%---------------------------------------
昨天,老師帶我們?nèi)昙?jí)二班的小朋友們?nèi)w去郊外春游。我非常高興。
們?cè)诮纪饪吹搅薥textbf{老虎、獅子和熊貓}。
長(zhǎng)大了要\textsl{保護(hù)動(dòng)物}。
天,老師要教我們學(xué)習(xí)\LaTeX 了,大家都非常激動(dòng)。
\end{document}
Figure 1: 小明的日記
Linux下安裝這三者的最方便的方法是安裝texlive系列。texlive是一整套TEX工具和引 擎的集合,包括了LaTeX等種種工具和一些相關(guān)的程序、宏包,不同的發(fā)行版里會(huì)把 整個(gè)texlive分為不同的軟件包,諸如texlive-xetex、texlive-xecjk、texlive-ctex。用包 管理軟件進(jìn)行搜索,不難找到應(yīng)該安裝的軟件包。
當(dāng)然另一種方式是使用texlive的安裝DVD或者在線安裝 工具。筆者使用的slackware發(fā)行版里沒有提供texlive的軟件 包2 ,因此是從中科 大的CTAN鏡像3 下 載的texlive2011DVD進(jìn)行安裝的。具體的安裝過程可以讀光盤里的README文 件。
由于texlive是一個(gè)TeX軟件的大集合。因此它有一個(gè)專門的包管理程序:tlmgr。 這個(gè)程序類似debian下的apt-get,提供了搜索、查詢、安裝、卸載、升級(jí)各個(gè)tex軟件 包的功能。在DVD安裝版中有這個(gè)軟件,一般的發(fā)行版應(yīng)該不會(huì)提供這個(gè)程 序4 。
一般使用的字體有三套。
一是在Linux下常用的文泉驛字體,但它不適合寫正式的文檔。
二是在網(wǎng)上下載Adobe的四套字體,分別是宋體、仿宋、黑體和楷體。
三是可以拷貝Window下的字體。但是這涉及到版權(quán)問題。如果確實(shí)想用,可以在 百度上搜索“方正楷體”、“方正宋體”,等等。
使用字體的方法如下:
先拷貝字體到/usr/share/fonts/下的相應(yīng)的子目錄中,然后運(yùn)行"fc-cache"更 新系統(tǒng)的字體緩存。
在xeCJK中,設(shè)置主字體是使用\setCJKmainfont命令(因?yàn)槲覀兊腃TeX會(huì)調(diào) 用xeCJK,因此可以使用xeCJK中的命令)。
具體的字體名字可以用"fc-list :zh-cn"命令來查看。
1 如果你的系統(tǒng)中沒有CTeX要求的全套六種字 體5 , 那么,一定要在\usepackage{ctex}的選項(xiàng)中加上adobefonts這一條。
這樣一來CTeX會(huì)用相應(yīng)的Adobe字體去代替它要求的六套字體。不然有時(shí)會(huì)出現(xiàn) 找不到字體的現(xiàn)象,尤其是使用特殊字體的時(shí)候,比如在verbtim環(huán)境中。
2 一般情況下,中文文檔中是不使用斜體的。因此在CTeX調(diào)用xeCJK時(shí),默認(rèn)是 不使用斜體的,所以你就算在文檔中使用\textsl{},最終也不會(huì)產(chǎn)生任何斜體效 果。
如果你真的要用,就要修 改/ctex/engine/ctex-xecjk-engine.def6 中 的一行:
\RequirePackage[BoldFont,normalindentfirst]{xeCJK}
改為:
\RequirePackage[BoldFont,slantfont,normalindentfirst]{xeCJK}
3 使用CTeX的兩種方法
第一種是直接使用CTeX的文檔類。
\documentclass[adobefonts]{ctexart}
第二種是使用CTeX包。
\usepackage[adobefonts]{ctex}
二者的區(qū)別是:當(dāng)通過\usepackage來使用CTeX包時(shí),產(chǎn)生的仍然 是”CONTENTS”、”INDEX”,而不是“目錄”、“索引”。
當(dāng)然,如果要用其他類作為文檔類,就必須使用第二種方式了,最典型就是 用beamer類做幻燈片的時(shí)候了。
這時(shí),如果要使用中文的“目錄”、“摘要”等樣式,可以使用這兩條命 令:
\renewcommand*\contentsname{目錄}
\renewcommand*\abstractname{摘要}
還有一個(gè)更折騰的方法。修改一下ctex/ctex.sty文件,在其中添加一 句
\input{ctex-caption.def}
這樣就一直保持中文的名稱了。
聯(lián)系客服