由於疫情在家中上課,做業提交都必須使用PDF。反正時間充裕,不如趁機回顧一下LaTeX的使用。python
以前一直用的是Vimtex,可是感受仍是不太方便,因而改用了Texpad。Texpad的強大之處在於它支持光速的實時預覽。可是在配置Texpad支持中文的時候卻踩了一萬個坑,並且到如今尚未真正實現中文實時預覽,明天再試試吧。字體
下面進入正題,怎樣在LaTeX中使用中文,或者說怎樣讓LaTeX支持中文?編碼
我發現了三個方法:url
第一種方法:spa
%! 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,支持中文不在話下。.net
第二種方法: code
%! Tex program = xelatex \documentclass[UTF8]{ctexart} \begin{document} 這是一個CTEX的utf-8編碼例子,{\kaishu 這裏是楷體顯示},{\songti 這裏是宋體顯示},{\heiti 這裏是黑體顯示},{\fangsong 這裏是仿宋顯示}。 \end{document}
這段代碼過一樣是調用了ctex包,在設置documentclass的時候,咱們其實已經使用了ctex包。下面的{\songti ooxx}...等等,不難理解是 ctex包中,ctexart文檔類型的特性!這樣字體是否是也變化萬千了。blog
第三種方法:utf-8
%! 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,中文排版將會如虎添翼!