latex 對中文字體設置的一些解決

如下也能夠看做是本文的心路歷程windows

動機:使用 TeX 編排文檔雖不能像 Word 等所見即所得,但它能夠知足你幾乎任何版式要求,讓你有更多時間專一於內容而不是格式。編輯器

手段:經過任何純文本編輯器或者 TeX 編輯器,將你的內容按規定格式寫入 .tex 文件。再根據排版引擎編譯 .tex 文件,最終獲得目標文檔。字體

阻礙:直接使用 Xelatex其餘引擎編譯帶中文的文件時,會出現亂碼,這是由於 latex 默認的字體不支持中文,這時能夠 一、把默認字體更改爲支持中文的字體; 二、使用 CTex 文檔類ctex 宏包xeCJK 宏包使得 latex 支持中文輸出。而設置中文字體可經過如下實現:   (英文默認字體爲:Computer Modern Roman [CMR],由Donald Knuth建立,可是不支持中文,須要設置成支持中文的字體 - {來自:Egg's Blog}。既然要應用於中文環境,排版格式等要求也應符合中文習慣,僅僅改變字體是不夠的。spa


 

<center>使用CTeX文檔類\ctex宏包</center>

 

此部份內容來自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{} 能夠互用

 

<center>使用xeCJK宏包</center>

 

始終的博客裏,一份其實很短的 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下預裝的中文字體有:

  • Arial Unicode MS
  • FangSong,仿宋
  • KaiTi,楷體
  • Microsoft YaHei,微軟雅黑
  • MingLiU,細明體
  • NSimSun,新宋體
  • PMingLiU,新細明體
  • SimHei,黑體
  • SimSun,宋體

只要將font name改成上述字體名稱(英)便可


 

最後更新於 2019年12月25日 --- 最初發表於 2019年12月20日 本文采用 BY-NC-SA協議,轉載請註明出處。

相關文章
相關標籤/搜索