如下也能夠看做是本文的心路歷程:windows
動機:使用 TeX 編排文檔雖不能像 Word 等所見即所得,但它能夠知足你幾乎任何版式要求,讓你有更多時間專一於內容而不是格式。編輯器
手段:經過任何純文本編輯器或者 TeX 編輯器,將你的內容按規定格式寫入 .tex
文件。再根據排版引擎編譯 .tex
文件,最終獲得目標文檔。字體
阻礙:直接使用 Xelatex 或其餘引擎編譯帶中文的文件時,會出現亂碼,這是由於 latex 默認的字體不支持中文,這時能夠 一、把默認字體更改爲支持中文的字體; 二、使用 CTex 文檔類、ctex 宏包或 xeCJK 宏包使得 latex 支持中文輸出。而設置中文字體可經過如下實現: (英文默認字體爲:Computer Modern Roman [CMR],由Donald Knuth建立,可是不支持中文,須要設置成支持中文的字體 - {來自:Egg's Blog}。既然要應用於中文環境,排版格式等要求也應符合中文習慣,僅僅改變字體是不夠的。)spa
此部份內容來自CTeX宏集手冊code
%在導言區使用如下代碼,得到中文支持 \documentclass[utf8,a4paper,12pt] {ctexart} %或者 \usepackage {ctex}
設置完成後,中文默認字體爲 宋體,如需改變,可使用表格中的命令對中文字體進行設置,windowsnew 的字庫中包括如下字體:blog
字體 | 命令1 | 命令2 |
---|---|---|
宋體 | \songti | \CJKfamily{zhsong} |
黑體 | \heiti | \CJKfamily{zhhei} |
仿宋 | \fangsong | \CJKfamily{zhfs} |
楷書 | \kaishu | \CJKfamily{zhkai} |
隸書 | \lishu | \CJKfamily{zhli} |
圓體 | \youyuan | \CJKfamily{zhyou} |
微軟雅黑 | \yahei | \CJKfamily{zhyahei} |
注: \CJKfamily{family}
:切換CJK字體族爲 〈family〉 文檔
\documentclass[12pt,a4paper,utf8]{ctexart} \begin{document} \noindent 中文字體(默認宋體)\\ \fangsong 中文字體(仿宋) \songti 中文字體(宋體) \lishu 中文字體(隸書) \heiti 中文字體(黑體)\\ \CJKfamily{zhkai} 中文字體(楷書) \CJKfamily{zhyou} 中文字體(幼圓) \CJKfamily{zhyahei} 中文字體(微軟雅黑)\\ \end{document}
-------------- 人爲分界線 ----------------get
不建議使用 \textrm{},\textsf{},\texttt{} 來改變中文的字體,**中文字體的選擇與西文字體是分離的**。 如下內容只是我無聊的實驗而已,目前還解釋不清: \textrm{} 至關於默認字體,即中文宋體,英文羅馬 \textit{} 默認中文楷書,若前面定義過下文中文字體,則爲定義字體,英文斜體 \textsf{} 中文微軟雅黑,英文無襯線體 \texttt{} 中文仿宋,英文等寬字體 注意 textsf 會改變中文標點符號 但常規的字體加粗如 \textbf{} 能夠互用
在始終的博客裏,一份其實很短的 LaTeX 入門文檔中提到,大多數狀況下不推薦使用xeCJK宏包 知乎有相關討論 處理中文時應該用ctex宏包仍是應該用xeCJK宏包?博客
打個比方說的話,ctex包如果一輛車,xeCJK就是個輪子。輪子是車子的重要零件,但我仍是建議你開車,把裝輪胎的事交給工程師。 ----- 來自知乎用戶
xeCJK是一個Xelatex宏包,前面使用CTeX文檔類或者ctex宏包時,若經過Xelatex編譯則會自動配置xeCJK宏包來排版字體,這一步驟已經封裝好,且夠用。(-車子輪胎- 的大意,若想實現某些騷操做,則可查閱xeCJK的使用)it
xeCJK只提供了字體和標點控制等基本CJK語言支持。在這裏,對xeCJK宏包的字體設置進行簡單說明,引入xeCJK宏包只要在導言區使用:
\usepackage {xeCJK} \setCJKmainfont {font name} % 設置正文羅馬族的CJK字體,影響\rmfamily和\textrm 的字體 \setCJKsansfont {font name} % 設置正文無襯線族的CJK字體,影響\sffamily和\textsf 的字體 \setCJKmonofont {font name} % 設置正文等寬族的CJK字體,影響\ttfamily 和 \texttt 的字體
windows下預裝的中文字體有:
只要將font name改成上述字體名稱(英)便可
最後更新於 2019年12月25日 --- 最初發表於 2019年12月20日 本文采用 BY-NC-SA協議,轉載請註明出處。