Latex中文utf-8编码的三种方式

我们知道Latex一般用CJK和CTEX宏包支持中文编辑,CJK和CTEX的默认编码是GBK,而windows下的默然编码就是GBK,因此CJK和CTEX不需要特殊配置就可以直接支持中文Latex编译,只需要用GBK编码保存文件即可。但是如果把文件的字符编码换成现在更加普遍的utf-8的话,应该怎么操作呢?在这里有3种方式可以使用。

 

1、CJKutf8

CJK有两个基本宏包:CJK和CJKutf8,其中后者面向utf-8编码,其一般使用方法如下:

usepackage{CJKutf8}
egin{document}
egin{CJK}{UTF8}{<font>}
 ...
end{CJK}
end{document}

font为简体中文字体,CJK自带的utf-8简体字体有gbsn(宋体)和gkai(楷体)。以下代码是一个简单的例子(一定要将tex文件保存成utf-8格式):

%test.tex
documentclass{article} usepackage{CJKutf8} egin{document} egin{CJK}{UTF8}{gbsn} 这是一个CJKutf8的例子,使用的字体是gbsn。 end{CJK} end{document}

用pdflatex编译tex文件,即可得到输出结果。

 

2、CTEX的UTF8选项

上面的CJKutf8只提供了两种字体,可选择的余地太小,我们可以直接用UTF8选项使CTEX支持utf-8编码,利用CTEX丰富的字体和中文设置可以更好地编辑Latex中文文本,其语法格式为:

documentclass[UTF8]{article}
usepackage{CTEX}
egin{document}
...
end{document}

或者,直接使用ctexart

documentclass[UTF8]{ctexart}
egin{document}
...
end{document}

以下代码是一个简单的例子(同样把tex文件保存成utf-8格式):

% ctex_test.tex
documentclass[UTF8]{article}
usepackage{CTEX}
egin{document}
这是一个CTEX的utf-8编码例子,{kaishu 这里是楷体显示},{songti 这里是宋体显示},{heiti 这里是黑体显示},{fangsong 这里是仿宋显示},{lishu 这里是隶书显示},{youyuan 这里是幼圆显示}。
end{document}

用pdflatex编译tex文件:pdflate ctex_test.tex,即可得到如下输出结果,

 

3、xelatex编译

XeTeX是一种使用Unicode的TeX排版引擎,它原生的支持Unicode,并默认其输入文件为utf-8编码。XeTeX可以在不进行额外配置的情况下直接使用操作系统中安装的字体。XeLaTeX是使用LaTeX的排版引擎,也有上述XeTeX的优点,命令下直接使用xelatex ***.tex就会产生对应的PDF文件。以下是一个简单的xelatex编译ctex的例子(同样把tex文件保存成utf-8格式):

% xelatex_test.tex
documentclass{article}
usepackage{CTEX}
egin{document}
这是一个CTEX的utf-8编码例子,{kaishu 这里是楷体显示},{songti 这里是宋体显示},{heiti 这里是黑体显示},{fangsong 这里是仿宋显示}。
end{document}

明眼的同学一下就发现了,这货跟上面第2条中ctex的代码相比,就少了一个UTF8选项啊!额,表面看是这样的,但是如果如果直接把xelatex_test.tex用pdflatex编译,系统就会报错。这是因为不加UTF8选项,pdflatex默然按照GBK编码处理tex文件,而这个文件我们是用utf-8编码的,这样就会造成解码失败。这里直接用xelatex编译,就会编译成功,因为xelatex的默认输入文件是utf-8编码。切换到tex文件所在目录,直接用xelatex编译tex文件:xelatex xelatex_test.tex,即可得到如下输出结果,

原文地址:https://www.cnblogs.com/dezheng/p/3874434.html