本文已過時,請到 www.loggerhead.me 查看最新版
說明
本文的目標是讓需要對中文論文進行排版的OS X用戶安裝配置好中文環境,編譯示例得到foo.pdf。
如果只需排版英文,那么中文配置部分可以跳過。
如果是Linux/Unix或Windows用戶,需將Skim換成相應的pdf閱讀器(LaTeXing默認設置中有提及),安裝相應的LaTeX發行版,并對MacTeX中文配置部分的內容做對應調整。
安裝
MacTeX是必備的。Skim和LaTeXing雖說不是必須的,但是強烈推薦安裝。后文會介紹它們的作用,先將它們安裝好:
- 下載MacTeX.pkg
- 使用Package Control安裝LaTeXing和LaTeX-cwl,并重啟Sublime
- 下載Skim。LaTeXing配合它使用效果更佳。
- 安裝中文字體
在下載MacTeX的這段時間,我們可以先了解一下LaTeXing。
LaTeXing
LaTeXing是Sublime的LaTeX插件,與之類似的還有LaTeXTools。兩者功能類似,只不過LaTeXing更容易配置和簡單易用,而且某些功能更加出色。它的特點包括:
-
LaTeX命令自動補全
-
豐富的snippet
-
填充引用、宏包、文檔類型等任何東西
-
快捷鍵跳轉到生成的pdf
-
可讀性更高的出錯提示
注意:
- 自動補全功能需要安裝LaTeXing的插件——LaTeX-cwl
-
跳轉pdf需要照下圖設置Skim
- 雙擊出錯信息可以跳轉到出錯行
中文配置
安裝中文字體
下載STXihei、STSong、STKaiti、STHeiti、STFangsong,雙擊它們,系統會調用字體冊(Font Book)打開它們,點擊安裝即可。
配置MacTeX
在終端輸入
sudo subl /usr/local/texlive/2014/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def
將ctex-xecjk-winfonts.def文件修改成:
% ctex-xecjk-winfonts.def: Windows 的 xeCJK 字體設置,默認為六種中易字體
\setCJKmainfont[BoldFont={STHeiti},ItalicFont=STKaiti]{STSong}
\setCJKsansfont{STHeiti}
\setCJKmonofont{STFangsong}
\setCJKfamilyfont{zhsong}{STSong}
\setCJKfamilyfont{zhhei}{STHeiti}
\setCJKfamilyfont{zhkai}{STKaiti}
\setCJKfamilyfont{zhfs}{STFangsong}
\setCJKfamilyfont{zhli}{LiSu}
\setCJKfamilyfont{zhyou}{YouYuan}
\newcommand*{\songti}{\CJKfamily{zhsong}} % 宋體
\newcommand*{\heiti}{\CJKfamily{zhhei}} % 黑體
\newcommand*{\kaishu}{\CJKfamily{zhkai}} % 楷書
\newcommand*{\fangsong}{\CJKfamily{zhfs}} % 仿宋
\newcommand*{\lishu}{\CJKfamily{zhli}} % 隸書
\newcommand*{\youyuan}{\CJKfamily{zhyou}} % 幼圓
\endinput
如果文件不存在,看看是不是命令中的2014要修改。
配置LaTeXing
點擊Sublime Text => Preferences => Package Settings => LaTeXing => Settings - User打開LaTeXing.sublime-settings,填入以下內容:
{
"debug": false,
"fallback_encoding": "utf_8",
// 打開.tex的同時打開.pdf文件
"open_pdf_on_load": false,
// 某些宏包需要這個參數,如:minted
"build_arguments": ["-shell-escape"],
// 使用xelatex而不是pdflatex進行編譯
"quick_build": [
{
"name": "Default Build: latexmk",
"primary": true,
"cmds": ["xelatex"]
},
{
"name": "Quick Build 1: xelatex + bibtex + xelatex (2x)",
"cmds": ["xelatex", "bibtex", "xelatex", "xelatex"]
},
{
"name": "Quick Build 2: xelatex + biber + xelatex (2x)",
"cmds": ["xelatex", "biber", "xelatex", "xelatex"]
}
],
}
測試
用Sublime創建foo.tex,輸入以下內容:
\documentclass{minimal}
\usepackage{xeCJK}
\setCJKmainfont[BoldFont=STHeiti,ItalicFont=STKaiti]{STSong}
\setCJKsansfont[BoldFont=STHeiti]{STXihei}
\setCJKmonofont{STFangsong}
\begin{document}
你好,世界
\end{document}
按Cmd+B
進行編譯(3083以上版本的sublime在彈出框中選擇LaTeX - Primary Quick Build
),如果配置成功,控制臺的輸出應該是這樣

按Cmd+L, Cmd+J
跳轉到生成的foo.pdf(紅點是修動位置)。

如果沒能成功編譯出foo.pdf,那么問題很可能是:
- 沒有安裝相應的中文字體
- foo.tex的文件編碼不是UTF-8。如果你不能確定文件編碼,點擊File => Save with Encoding => UTF-8
- LaTeXing使用pdflatex而不是xelatex進行編譯
為了確定問題的所在,我們在終端輸入命令xelatex foo.tex
。
- 如果能生成foo.pdf,那么是LaTeXing沒有配置正確。
- 如果xelatex輸出一堆錯誤信息,那么是中文字體沒有安裝或配置成功。
- 如果提示xelatex命令不存在,輸入sudo ln -s /Library/TeX/Distributions/Programs/texbin/xelatex /usr/xelatex,重啟終端,重新輸入
xelatex foo.tex
FAQ
TeX與LaTeX
TeX不僅是一個排版程序,而且是一種程序語言。LaTeX就是用這種語言寫成的一個"TeX宏包",它擴展了TeX的功能,使我們很方便的邏輯的進行創作而不是專心于字體,縮進這些煩人的東西。類似C++與MFC、Ruby與Ruby on Rails的關系。
LaTeX與LaTeX2e
LaTeX2$$$\varepsilon$$$是LaTeX目前的版本。以前的LaTeX叫做LaTeX 2.09。現在隨便下載一個TeX系統,里面帶的 LaTeX都是LaTeX2$$$\varepsilon$$$。
MacTeX與MikTeX
不同的TeX發行版本而已,比如OS X下有MacTeX,Windows下有MikTeX,Linux和UNIX下有teTeX。TeX與它們的關系就像Linux內核與Debian、Redhat、Arch的關系一樣。所以每個TeX發行版里都包含了TeX,LaTeX等等。
LaTeX與CJK、xeCJK
CJK、xeCJK都是LaTeX的宏包,MacTeX.pkg里面已經包含了它們,不必再自行安裝。