LaTeX中文排版(使用XeTeX)

此页由Xuefeng LIU于2013年7月7日 (星期日) 08:15的最后更改。 在lzh和Linux Wiki用户Chenxing的工作基础上。

出自Linux Wiki

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

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主页

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

反馈与讨论

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