LaTeX中文排版(使用XeTeX)

此頁由 Xuefeng LIU 於 2013年7月7日 (星期日) 08:15 的最後更改。 在lzh和Linux Wiki用戶Chenxing的工作基礎上。

出自Linux Wiki

提示:此文已超过 3 年(1251 天)未更新,如发现内容过时或有误,欢迎改进:)

LaTeX是功能強大的排版工具,在XeTeX[1]、CTeX[2]等軟件的努力下,在Linux中使用其排版中文其實很簡單。(而XeLaTeX語法與LaTeX相同,還提供了些增強功能,多數LaTeX文檔不經修改就能直接用XeLaTeX編譯。)本文介紹使用XeTeX在Linux中排版中文的幾種簡便方法。

目錄

準備工作

首先要安裝好XeTeX軟件,比較方便的方法是安裝Texlive 2009或以上版本。UbuntuFedoraArchlinux等流行發行版都在軟件倉庫中包括了Texlive,如在Ubuntu、Fedora中可安裝軟件包 texlive-xetex ,在Archlinux中建議安裝texlive-most。如果發行版未提供Texlive或提供的版本太舊,也可自行到Texlive網站上下載。[3](TeX Live在世界各地的鏡像很多,選擇合適的鏡像下載速度會很快的。)

接着要準備字體。這一步是可選的,但Linux中的中文字體多數不太適合用於排版文檔,建議複製Windows中的字體或Adobe的字體。注意XeTeX可以直接使用系統中的字體,只要把需要字體複製到指定位置就行,無需自己生成字體文件。比如複製Windows中的宋體、黑體等字體:

$ sudo mkdir /usr/share/fonts/win
$ sudo cp /media/Win系统盘挂载点/Windows/Fonts/{SIM,sim}* /usr/share/fonts/win/

第二行按Windows的版本不同可能有變化,總之只要把那些SIM及sim開頭的字體文件拷出來就可以了。

因為複製文件時是以root身份進行的, 複製到目標文件夾下的字體文件其讀取的權限設置可能有問題。建議如下設定:

$ sudo chmod 755 /usr/share/fonts/win/*

此外,有些免費的字體可以下載使用,比如楷體, 細明體。 如果是在ubuntu下,可以直接通過以下命令安裝微軟的公開免費字體:

$ sudo apt-get install xfonts-wqy ttf-wqy-microhei ttf-wqy-zenhei

接着,需要更新字體緩存:

$ fc-cache

為了使整個系統下的用戶的字體列緩存都更新,建議使用root權限執行:

$ sudo fc-cache -f -s -v

使用fc-list查看可用的字體:

$ fc-list

或者只查看中文的字體

$ fc-list :lang=zh

如果能看到想要的中文字體,就可以了。至此,準備工作已經結束。

中文排版例解

下面的各個例子,可以通過xelatex命令編譯成PDF文件,具體方法如下:

  1. 將代碼存成UTF-8編碼的文本文件,如test.tex
  2. 使用xelatex命令編譯存好的源碼,如xelatex test.tex
  3. 使用PDF查看工具看結果

使用CTeX排版中文

CTeX大大簡化了中文排版過程,只要複製了Windows里的字體,並使用TeX Live 2009及以後的版本,下面的代碼就可產生出中文PDF文檔。

\documentclass{ctexart}
\begin{document}
中文宏包测试
\end{document}

也可以使用article類和ctex宏包:

\documentclass{article}
\usepackage{ctex}
\begin{document}
中文宏包测试
\end{document}

該方法最為簡便,CTeX功能也很強大,提供了不少中文排版實用功能,具體可參閱CTeX的文檔。

使用xeCJK排版中文

CTeX在XeLaTeX環境下實際是用xeCJK處理中文的,如果不想用CTeX這麼複雜的包,也可以使用xeCJK處理中文。

\documentclass[11pt]{article}
\usepackage[BoldFont,SlantFont,CJKsetspaces,CJKchecksingle]{xeCJK}
\setCJKmainfont[BoldFont=SimHei]{SimSun}
\setCJKmonofont{SimSun}% 设置缺省中文字体
\parindent 2em   %段首缩进
 
\begin{document}
\section{举例}
\begin{verbatim}
标点。
\end{verbatim}
 
汉字Chinese数学$x=y$空格
\end{document}

使用xeCJK直接處理中文時,字體的選擇較自由些。

直接用XeLaTeX排版中文

由於XeLaTeX可以手動設置字體,故可以用這種方法排版中文。該方法設置字體最為靈活,但在處理中英文混排的文件時,必須手動逐處指定每段英文的字體,否則英文也用中文字體顯示,不大美觀。

如果希望使用該方法,可以參考 http://www.heboliang.cn/archive/xetex-intro.html

參考資料

  1. Homepage of XeTeX
  2. CTeX主頁
  3. TeX Live主頁

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
简体繁体转换