因為疫情在家中上課,作業提交都必須使用PDF。反正時間充裕,不如趁機回顧一下LaTeX的使用。
之前一直用的是Vimtex,但是感覺還是不太方便,於是改用了Texpad。Texpad的強大之處在於它支持光速的實時預覽。但是在配置Texpad支持中文的時候卻踩了一萬個坑,而且到現在還沒有真正實現中文實時預覽,明天再試試吧。
下面進入正題,怎樣在LaTeX中使用中文,或者說怎樣讓LaTeX支持中文?
我發現了三個方法:
第一種方法:
%! Tex program = xelatex \documentclass{article} \usepackage[UTF8, scheme = plain]{ctex} \begin{document} 支持 XeLaTeX 編譯,可以插入中文,不影響版式。 \end{document}
這段代碼的原理十分清楚,編譯程序選擇對中文支持較好的xelatex,具體文檔可以看這里https://www.overleaf.com/learn/latex/XeLaTeX,簡單的理解下,XeLaTeX是這家公司:overleaf旗下的一款用UTF-8碼編碼的tex引擎,而且支持更多更多的字體。這也是為什么他對中文支持更好而對比之下pdfLaTeX卻經常因為字體報錯的原因。接下來呢?我們使用一個包,這個包叫做ctex,包中有各種的排版樣式,中文字體設置等等等等。ctex具體的使用方法還是參見文檔。那么,有了合適的引擎-xelatex,合適的排版規范-ctex,支持中文不在話下。
第二種方法:
%! Tex program = xelatex \documentclass[UTF8]{ctexart} \begin{document} 這是一個CTEX的utf-8編碼例子,{\kaishu 這里是楷體顯示},{\songti 這里是宋體顯示},{\heiti 這里是黑體顯示},{\fangsong 這里是仿宋顯示}。 \end{document}
這段代碼過同樣是調用了ctex包,在設置documentclass的時候,我們其實已經使用了ctex包。下面的{\songti ooxx}...等等,不難理解是 ctex包中,ctexart文檔類型的特性!這樣字體是不是也變化萬千了。
第三種方法:
%! Tex program = xelatex \documentclass{article} \usepackage{xeCJK} \setCJKmainfont{SimSun} \begin{document} 中文 \LaTeX 示例。 \end{document}
這段代碼是XeCJK的文檔中的。這里要解釋一下CJK:即Chinese,Japanese,Korean。那么我們可以想見,XeCJK是和ctex屬於一個檔次的!那么我們為什么要使用XeCJK包,而不再使用ctex包呢?學校的readme科普了我一下:CTeX 套裝最早是由中科院 Leo Wu(吳凌雲)研究員開發、維護和發布的 TeX 發行版,它是應當時中文配置困難的背景(CCT、CJK 等)而誕生的,而現在的中文支持技術(xeCJK等)配置已非常簡單;CTeX 套裝自 2012 年 3 月 22 日發行 2.9.2.164 版本后,至今未更新,已不能適應當前 TeX 中文技術的發展,引用 CTeX 套裝的開發之一劉海洋的話:CTeX 已經完成了它的歷史使命。歐克,那么我們也應該識趣一點,以后不要再使用CTeX這個包了,擁抱XeCJK這個包。
XeCJK的文檔:https://www.ctan.org/pkg/xecjk 我看的時候,這個包更新於4天前,那么我們為什么不用這個活躍的包嘞~
三種方法:個人推薦第三種,也是最新的一種。前兩種使用方式因為調用長久未更新的ctex包而勢必被淘汰(事實上有一種調用CJK包的中文排版方案,它早就被淘汰了)。相反,掌握了XeCJK,中文排版將會如虎添翼!