Latex支持中文


第一种方法(最新)

当是使用Latex或pdflatex(默认GBK)时,必须告诉Latex输入文件的编码格式。一般来说,UTF-8是最好的输入编码方式,可以使用下面的方式设置(如果是xeLatex, 默认是utf8编码)

\usepackage[utf8]{inputenc}

我们还要指定使用什么样的输出编码方式将字符映射为字体中的字形,对于大部分啦拉丁语系的语言,可使用T1输出编码。使用如下方式设置

\usepackage[T1]{fontenc}

但对于其他语言,必须指定特定的编码方式。xeCJK包提供了很好的中文支持,

\usepackage{xeCJK}

第一种方法就是xeCJK, 推荐使用

第二种方法(最新)

\documentclass[UTF8]{*}
\usepackage{CTEX}

第三种方法

\documentclass[UTF8]{ctex*}

第四种方法

模板

国际语言支持

国际化的语言支持
当前有两个可以提供国际化的语言支持,即Polyglossia和Babel。Polyglossia主要和XeTex一起使用,Babel和pdfTex、LuaTex一起使用。这两个包完成下列任务:

载入语言特定的连词符号模式和其他排版约定
设置当前字体的脚本(script)和语言标签(language tags)。
不同语言的字体间切换
根据语言的约定格式化日期
根据语言特定的数字系统,格式化数字
Polyglossia
当使用XeLatex 和 LuaLatex时,polyglossia提供了国际化支持。使用这个包,可以指定使用的语言和语言特定的选项。例如,文档中包含了美国英语和法语,可以使用下面的设定

\usepackage{polyglossia}
\setdefaultlanguage[variant=american]{english}
\setotherlanguage{french}

Babel
当使用latex或pdflatex时,babel包可提供国际化支持。这个包也可以用于LuaLatex和XeLaTex。可以在包参数中指定语言。

\usepackage[language]{babel}

这个包应该紧跟在\documentclass ,使后面载入的包能够知道你所所以用的语言。加载babel包时可以指定多种语言

\usepackage[languageA, languageB]{babel}

参数列表中的最后一种语言是当前激活的语言。可以使用命令改变当前激活语言

\selectlanguage{languageA}

当文档中包含多种语言时,可以使用babel提供的命令方便地在不同语言间切换。babel提供了定义语言名字的方式

\babeltags{de = german}

文档可以写为

text \textde{German text} text
\begin{de}
German text
\end{de}

使用xeCJK以及字体修改

xeCJK主要功能包括:

  • 分别设置CJK和英文字体
  • 自动忽略中文文字间的空格而保留其他空格,允许在非标点汉字和英文字母间断行
  • 调整中英文间的空白
    xeCJK包提供了许多选项,可以在调用宏包时直接设置,也可以使用\xeCJKsetup 设置这些选项。xeCJK内部使用fontspec宏包,在调用xeCJK宏包时,也可以使用fontspec宏包中的选项。

加载xeCJK包之后,只要设置CJK文字的字体,就可以使用中文了。例如,中文字体要使用SimSun(宋体)。这里,假设系统安装了需要的字体。

\usepackage{xeCJK}
\setCJKmainfont{SimSum}

使用字体
字体族(font families)有很多,如Times, Courier, Helvetica。它们一般可以分为三类:serif, sans serif 和 monospaced。在Latex中,分别用简写rm, sf, tt表示。

字体族通常包含不同的风格,如斜体(italic)或加粗(bold)。

\setmainfont{} 设置西文正文默认罗马类字体。在Word中,默认字体通常是”Times New Roman”。
setsansfont{} 设置西文默认无衬线字体。一般出现在大标题等显眼的位置。这一部分常见的字体是Helvetica/Arial。
\setmonofont{} 设置西文默认等宽字体,一般用于排版程序代码。常见的字体是Courier或者Courier New。
xeCJK中提供了相似的三个命令设置对应的中文字体:

\setCJKmainfont[BoldFont={}, ItalicFont={}]{} 设置中文正文罗马类字体。大部分中文文档使用宋体排版 ,实际上就是Simsun。Linux下可能用文鼎宋体代替。与西文不同的是,这里允许我们指定粗体和斜体使用何种字体代替。之所以有这个区别,是因为中文不使用粗体表示强调,也不使用斜体表示引文或书名号。可指定BoldFont 和 ItalicFont 为某种黑体,Windows 环境下用SimHei,Linux 下用文泉驿正黑避免版权问题。
\setCJKsansfont{} 设置中文正文无衬线的CJK字体,影响\sffamily和\textsf的字体。可以设为宋体。
setCKJmonofont{} 设置中文正文等宽族的CJK字体,影响\ttfamily和\texttt的字体。可以设为宋体。


Author: Song Pengfei
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Song Pengfei !
评论
  TOC