部署Mac OS X上的Sublime Text + LaTex中文环境

MAC上的LaTex部署,一般是两条思路,一个是直接安装MacTex,自带编写环境什么的;另一个是Sublime Text(或者Textmate等其他编辑器)+LaTexTools插件。方式二其实也是需要依赖MacTex的,但相对来说体量小、不需要经常切换编辑器,所以果断的介绍方式二。

首先需要安装Sublime Text 2/3和Package Control

MacTex现在是一个超过2G+的大型软件包,但是里面很多东西我们不需要,所以本着节约精神,我们安装MacTex_Basic包就行了,现在的版本大概是100M以内。这个安装也是很简单的,推荐使用brew安装。

在Sublime Text里Command + Shift + P调出命令窗口,输入Install,之后选择LaTexTools,网络OK的话,很快就完成了插件安装。
LaTexTools插件会在编译你的Tex文件后,调用Skim这个PDF阅读器打开编译出的PDF文件,因此你还需要安装Skim.

运行一下Skim,进入偏好设置——同步,在PDF-Tex同步支持那里选择自定义,输入/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl,第二行不用动。这样,当你在Sublime Text里修改tex文件时,Skim预览也会相应变更。

完成上面所有步骤,其实就已经搭建完成基本环境。创建一个test.tex文档,保存一下以后,Sublime Text会自动套用LaTex语法显示和编译。贴上我后面附的测试代码,一般来说Command+B应该可能会报fontspec错误;如果能正常编译,则会调用Skim显示一个PDF文档了。只是中间的中文不见了。
让我们最后来修改编译和中文环境:
打开终端,运行:

sudo tlmgr update --self
sudo tlmgr install latexmk

在ST里打开LaTeXTools.sublime-settings(也就是LaTeXTools的用户设置,如果你是从旧版本升级上来或者担心这个配置文件出现问题,可以依次点击Preferences——Package Settings——LaTeXTools——Reconfigure LaTeXTools and migrate settings重建配置文件),在builder-settings下面新增两项配置:

"program" : "xelatex",
"command" : ["latexmk", "-cd", "-e", "$pdflatex = 'xelatex -interaction=nonstopmode -synctex=1 %S %O'", "-f", "-pdf"],

另外注意之前应该有"builder": "default"(或直接设置为空或”traditional”)。

( 更新后废除此方法 :原来是通过下面方式修改:
打开编辑~/Library/Application\ Support/Sublime\ Text/Packages/Users/LaTeX.sublime-settings,将其中”builder”条目改为:
"builder": "simple"
接着打开编辑~/Library/Application\ Support/Sublime\ Text/Packages/LaTeXTools/builders/simpleBuilder.py
找到其中大概第41行

pdflatex = ["pdflatex", "-interaction=nonstopmode", "-synctex=1"]

修改为

pdflatex = ["xelatex", "-interaction=nonstopmode", "-synctex=1"]

以上步骤是修改了源代码,既然现在可以通过用户设置的方式来自定义,那显然新方式适应性更好,不会一次更新就得从头修改)

保存配置文件后关闭,重新编译一下,中文正常啦!

LaTeXTools默认调用Skim来打开生成的PDF文件,如果你更喜欢使用OS X自带的“预览”,现在可以直接在用户设置中增加:
"viewer": "preview",
目前还不支持其他PDF工具。

(更新后废除此方法 :最后再给一个个性化设置。上面写了,LaTeXTools默认调用Skim,这一方面是因为LaTeXTools是跨平台的插件,Skim也同样跨平台开源,另一方面Skim确实对LaTeX的PDF支持很好。但是用OS X的网友们其实还有个选择,就是调用系统默认的PDF程序来打开编译后的成果,特别是“预览”还是很好用的。目前LaTeXTools的开发者还没有给出设置方法,所以,仍然要靠改代码:
修改~/Library/Application\ Support/Sublime\ Text/Packages/LaTeXTools/jumpToPDF.py, 将其中if plat == 'darwin':之后开始的两段直接注释掉,替换为:
subprocess.Popen(['open'] + [pdffile])
同样保存后就生效啦。目前用起来,系统自带的预览还是能满足我的需求滴。)

测试代码

\documentclass{article}
\usepackage{fontspec, xunicode, xltxtra}  
\setmainfont{Hiragino Sans GB}  

\title{Title}
\author{}

\begin{document}

\maketitle{}

\section{Introduction}

This is where you will write your content. 在这里写上内容。

\end{document}

LaTex的其他选择,如果觉得修改设置看起来很复杂,可以在每篇文档前增加%!TEX program = xelatex,这会强制使用xelatex,也是解决中文的一个方法。

文章目录