標籤:

如何配置 MacTeX 的中文支持?

我使用的是 MacTeX 2014,編輯器是 TeXshop。


目前來說,結合 xeCJK 宏包使用 XeLaTeX 編譯,應該是最方便的方式了。

XeLaTeX 要求 .tex 文檔保存為 UTF-8 編碼。所以要做的事情只有兩件:

  • 配置一個 UTF-8 的編輯環境;
  • 用 xeCJK 的語法選擇合適的字體。

1

印象中,TeXshop 的默認編碼不是 UTF-8(具體是什麼我不記得了),需要調整一下。

打開 TeXshop,按下 cmd + , 打開偏好設置。在「源代碼」標籤下找到編碼設置,調整為 UTF-8。

2

XeTeX 在 Mac OS X 下的行為和 Windows / Linux 下不大一樣。Mac 底下,XeTeX 並不使用 fontconfig 庫來搜索字體,所以我們沒法在終端里通過 fc-list 命令來查看可用的字體列表。不過 Mac 里提供了名為「字體冊」的程序,來列出系統中所有可用的字體信息。

(其實這樣的設計挺討厭的,TeX Live 自帶了許多開源字體,因此沒有辦法很好地使用。必須用字體名而不是字族名來調用這些字體,實在是不太方便。)

打開字體冊程序,找到需要的字體信息:

這裡的 PostScript 名稱就是我們需要的信息,我們記下華文宋體的名字:「STSong」。你還可以按需找到其他字體的名字,比如華文中宋、華文楷體、華文黑體等字體的名字。

3

使用下列代碼,配置中文字體。

usepackage{xeCJK}
setCJKmainfont[BoldFont=STZhongsong, ItalicFont=STKaiti]{STSong}
setCJKsansfont[BoldFont=STHeiti]{STXihei}
setCJKmonofont{STFangsong}

這裡,

  • 文檔中文主字體是華文宋體,對應的 bfseries 字體是華文中宋,對應的 itshape 字體是華文楷體;
  • 文檔的「無襯線」中文字體是華文新黑,對應的 bfseries 是華文黑體;
  • 文檔的「等寬」中文字體是華文仿宋。

完整代碼的編譯效果截圖如下:

4

xeCJK 之解決了中文支持問題,以及一些關於標點的處理,並沒有提供和中文版式相關的解決方案。ctex 宏包和文檔類封裝了 xeCJK,同時提供了中文版式的相關支持。新版的 ctex 宏包和文檔類能夠自動檢測用戶使用的操作系統,自動選擇合適的字體配置,十分方便。

documentclass[UTF8]{ctexart}
egin{document}
中文
end{document}

測試截圖如下:

如果希望 ctex 只提供中文支持的功能不對版式做任何修改,也可以這樣使用:

documentclass{article}
usepackage[UTF8, heading = false, scheme = plain]{ctex}
egin{document}
中文
end{document}

已存檔至「為 MacTeX 配置中文支持」。


%!TEX program = xelatex
%!TEX TS-program = xelatex
%!TEX encoding = UTF-8 Unicode

documentclass[12pt]{article} %這個我就不多說了,頭文件
usepackage{url} %這個我也不多說了
usepackage{fontspec,xltxtra,xunicode} %最新的mactex都有

defaultfontfeatures{Mapping=tex-text}
setromanfont{Heiti SC} %設置中文字體
XeTeXlinebreaklocale 「zh」
XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt %文章內中文自動換行,可以自行調節

ewfontfamily{H}{Songti SC} %設定新的字體快捷命令

ewfontfamily{E}{Weibei SC} %設定新的字體快捷命令
egin{document}
hispagestyle{empty}
small{給一個比較簡單的方法,在mac上折騰CJK有點麻煩,其實XeTeX就可以解決中文的問題。編碼的改動其實不需要在mactex的設置裡面改,寫在前面然後注釋掉就好了。\
繁體字什麼的也是可以實現的。\
當你需要打不同字體的時候,就需要用到這個url{
ewfontfamily},這樣你可以在一行中顯示多種字體。比如說:\}
Huge{{H 宋體} {E 魏碑} 黑體}
end{document}


按照這個是親測成功顯示了中文且只有幾個中文字,但是因為沒有嘗試大量中文,不過可以嘗試下。TeX開始之旅 (Mac用戶)


同在sudo texhash沒有命令,求指教!


不知何故我在mac的終端上sudo texhash沒有反應,其他都步驟成功了。


推薦閱讀:

為什麼 CTeX 好久沒有更新?
請問如何部署 OS X 上 Sublime Text 3 + LaTeX 的中文環境?
TeXShop 裡面的引擎(如 plain TeX, LaTeX,BibTeX)各適用於什麼情況?
LaTeX的編輯器TeXStudio能夠識別中文嗎?為何添加字體庫中沒有中文的?
LaTeX 中字體調用機制是怎樣的?

TAG:Mac | LaTeX |