我們知道Latex一般用CJK和CTEX宏包支持中文編輯,CJK和CTEX的默認編碼是GBK,而windows下的默然編碼就是GBK,因此CJK和CTEX不需要特殊配置就可以直接支持中文Latex編譯,只需要用GBK編碼保存文件即可。但是如果把文件的字符編碼換成現在更加普遍的utf-8的話,應該怎么操作呢?在這里有3種方式可以使用。
1、CJKutf8
CJK有兩個基本宏包:CJK和CJKutf8,其中后者面向utf-8編碼,其一般使用方法如下:
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{<font>}
...
\end{CJK}
\end{document}
font為簡體中文字體,CJK自帶的utf-8簡體字體有gbsn(宋體)和gkai(楷體)。以下代碼是一個簡單的例子(一定要將tex文件保存成utf-8格式):
%test.tex
\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{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} \begin{document} ... \end{document}
或者,直接使用ctexart
\documentclass[UTF8]{ctexart} \begin{document} ... \end{document}
以下代碼是一個簡單的例子(同樣把tex文件保存成utf-8格式):
% ctex_test.tex
\documentclass[UTF8]{article}
\usepackage{CTEX}
\begin{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}
\begin{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,即可得到如下輸出結果,