本文已过时,请到 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里面已经包含了它们,不必再自行安装。