[转载]xelatex+xeCJK中文支持示例-孙文昌

原文链接

最近,有网友问起关于TeX系统中文支持。这里一并介绍下:

中文支持的常见的几个方案:

第一:CJK中文解决方案 。CJK包是德国人设计的,他不懂中国人的习惯,但是他设计的编码方式完全可以为我们提供任何可能处理中文的“理论基础”,我们只需要制定自己的“有中国特色的样式”。中国人的样式必需由中国人自己来制定。这就使我想起了另外两个德国人,还有一位中国老人…… :)
详细参看:http://www.magiclinux.org/node/249

第二、就是CCT方式,现在看来基本是过时了。这里不再阐述。

第三、基于 XeTeX 的方案(JJgod)这是我们推荐的中文方案,但是windows下 运行速度缓慢,具体原因不详,还望更多网友提供解析。

下面是我们推荐的方案,又可分为高层与低层两种,分别适用于不同需求的用户。
首先,安装所需的宏包(linux):

高层的方案是使用 ctex 宏包自带的文档类,例如原来用 article 文档类的就改用 ctexart 文档类,原来用 book文档类的就改用 ctexbook 文档类,这样绝大部分你会遇到的中文问题,比如字体设置、hyperref的调用、章节标题的设置等等,都自动为你解决了。详情可以看 ctex 宏包的文档 [4]。下面是一个小例子:

默认情况 (winfonts) 下,你需要宋体 (SimSun)、仿宋 (simfang)、黑体 (simhei)、楷体 (simkai)、隶书(LiSu)、幼圆 (YouYuan) 这六套 Windows 字体,如果你的字体不全,可以编辑ctex-xecjk-winfonts.def 文件 (用 kpsewhich 来找) 来修改设置,也可以选择 Adobe Reader等软件所带的 Adobe Song Std, Adobe Heiti Std, Adobe Kaiti Std, Adobe FangsongStd 四款字体,这时需要给 ctexart 加上 [adobefonts] 选项。又或者,你可以不用这些预置的字体,使用 [nofonts]选项,然后参考 ctex-xecjk-winfonts.def 文件,自己定义对应各个 CJK 字体族的字体。

低层的方案则是用原来你自己的宏包,结合 xeCJK 宏包来配置字体,下面是一个小例子:

当然,你得有 SimSun 这个字体。

不管选用高层的还是低层的,都可以直接用 xelatex 命令直接编译你的文档。

如何安装字体(linux):

在个人主目录先创建.fonts文件夹,把自己需要的字体复制进去就可以了。(我安装了,Adobe的4种字体,微软的6种,还有文泉驿的.)

查看已经安装的中文字体

到现在为止,中文的显示应该没有问题了。高层的方案比较好写,只是在很多场合中英文要求不同字体显示,我采用低层xeCJK宏包来解决的。
下面是一个采用xeCJK处理的例子,简明易懂:

运行xelatex编译吧.

发表评论