使用xeCJK排版中文

LaTeX中文排版(使用XeTeX)

此页由Linux Wiki用户 Chenxing于2010年5月19日 (星期三) 05:58的最后更改。
提示:此文已超过 2 年(888 天)未更新,如发现内容过时或有误,欢迎改进:)

LaTeX是功能强大的排版工具,在XeTeX[1]、CTeX[2]等软件的努力下,在Linux中使用其排版中文其实很简单。(而XeLaTeX语法与LaTeX相同,还提供了些增强功能,多数LaTeX文档不经修改就能直接用XeLaTeX编译。)本文介绍使用XeTeX在Linux中排版中文的几种简便方法。

目录

[隐藏]
  • 1 准备工作
  • 2 中文排版例解
    • 2.1 使用CTeX排版中文
  • 3 使用xeCJK排版中文
    • 3.1 直接用XeLaTeX排版中文
  • 4 参考资料

准备工作

首先要装好XeTeX软件,比较方便的方法是安装Texlive 2009或以上版本。Ubuntu、Fedora、Archlinux等流行发行版都在软件仓库中包括了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开头的字体文件拷出来就好了。

接着更新字体缓存:

$ fc-cache

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

$ fc-list

如果能看到想要的中文字体,就可以了。至此,准备工作已经结束。

中文排版例解

下面的各个例子,可以通过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


你可能感兴趣的:(使用xeCJK排版中文)