LaTeX 入门学习4

简介: 实现中英文混排

实现中英文混排

关于 LaTeX 的中文支持,首先要说的是:在现在,一切教你使用 CJK 宏包的模板、人、网页、书,都是糟糕的、有害的、恼人的、邪恶的和应该摒弃的。

成功编译输出第一个文档之后,中国 TeX 用户面临的第二个普遍问题大概就是「实现中英文混排」了。众所周知,TeX 系统是高教授开发的。在 TeX 开发当初并没有考虑到亚洲文字的问题。因此早期的 TeX 系统并不能直接支持中文,必须要用其他工具先处理一下(或者是一些宏包之类的)。但是现在,XeTeX 原生支持 Unicode,并且可以方便地调用系统字体。可以说解决了困扰中国 TeX 使用者多年的大问题。至此,我们只需要使用几个简单的宏包,就能完成中文支持了。

所谓宏包,就是一系列控制序列的合集。这些控制序列太常用,以至于人们会觉得每次将他们写在导言区太过繁琐,于是将他们打包放在同一个文件中,成为所谓的宏包(台湾方面称之为「巨集套件」)。\usepackage{} 可以用来调用宏包。

除去中文支持,中文的版式处理和标点禁则也是不小的挑战。好在由吴凌云和江疆牵头,现在主要由刘海洋、李清和我维护的 CTeX 宏集一次性解决了这些问题。CTeX 宏集的优势在于,它能适配于多种编译方式;在内部处理好了中文和中文版式的支持,隐藏了这些细节;并且,提供了不少中文用户需要的功能接口。我们来看如何使用 CTeX 宏集来处理中英文混排的文档。

请注意,CTeX 宏集和 CTeX 套装是两个不同的东西。CTeX 宏集本质是 LaTeX 宏的集合,包含若干文档类(.cls 文件)和宏包(.sty 文件)。CTeX 套装是一个过时的 TeX 系统。

新版 CTeX 宏集的默认能够自动检测用户的操作系统,并为之配置合适的字库。对于 Windows 用户、Mac OS X 用户和 Linux 用户,都无需做任何配置,就能使用 CTeX 宏集来排版中文。[2015-05-20 更新]

在 TeXworks 编辑框中输入以下内容,以 UTF-8 编码保存,使用 XeLaTeX 编译

EC-mix.tex

1
2
3
4
\documentclass[UTF8]{ctexart}
\begin{document}
你好,world!
\end{document}

相较于之前的例子,这份代码只有细微的差异:

  1. 文档类从 article 变为 ctexart
  2. 增加了文档类选项 UTF8

你也可以直接使用 xeCJK 宏包来支持中英文混排。不过大多数情况是不推荐这样做的。因此,如果你能抑制住你小小的好奇心,可以暂时略过这一段,回头再看不迟。:)

在 TeXworks 编辑框中输入以下内容,保存,使用 XeLaTeX 编译:

xeCJK-demo.tex

1
2
3
4
5
6
\documentclass{article}
\usepackage{xeCJK}%调用 xeCJK 宏包
\setCJKmainfont{SimSun}%设置 CJK 主字体为 SimSun (宋体)
\begin{document}
你好,world!
\end{document}
相关文章
LaTeX 入门学习32
总结 遇到问题怎么办
LaTeX 入门学习31
LuaTeX CTeX - MiKTeX - TeX Live
LaTeX 入门学习20
插入图片和表格-图片