在Win7系统上面利用Texlive2015的XeLaTeX编译含有中文文档的时候,有一些问题需要注意。这就是:
想让最终编译的结果正确显示中文,你就必须采用UTF-8编码的.tex源文件;而如果你采用ANSI编码格式的.tex文件时,编译结果中英文字体能正确显示而中文字体不显示,编译log信息不提示任何错误信息。
上面结果是经过我的实践总结出来,没有任何人告诉我或参考任何资料。再次强调,我的电脑OS为Windows 7,在其中安装的是Texlive 2015。如果在Ubuntu系统上面就不会遇到这样的问题。
1 代码例子证明
给出结论而没有实际的代码示例是不好的。下面给出我利用的代码。三种不同的编码格式.tex都采用如下代码:
\documentclass{article}
\usepackage{zhfontcfg}
\begin{document}
你好
{\songti 你好}
{\heiti 你好}
Hello
\end{document}
三个源文件分别命名为test.tex、test2.tex和test3.tex,他们的编码格式分别为:
亦即它们:
文件 | 编码 |
---|---|
test.tex | UNIX UTF-8 |
test2.tex | Dos\Windows ANSI |
test3.tex | Dos\Windows UTF-8 |
利用命令xelatex testX.tex
对这三个文件编译后,得到的pdf文件输出为:
可见,只要你采用ANSI编码,编译结果就不能正确显示中文。
注意
明白了本文的结论,对于使用CTex套件的用户来说,当你卸载掉CTex而改用Texlive的时候,你的原来的latex代码,尤其是包含中文的代码,就会得到不正确的运行结果。对于如何得到正确的结果,看了本文后,解决方法不言而喻。