原文链接:http://www.readern.com/sublime-text-latex-chinese-under-mac.html
LaTex就不多做介绍了,其实一般人用到的机会也不多(包括我)。只是这段时间在Coursera上学课程的时候,偶尔需要,所以从零开始摸索了一下,也顺便进一步发现了Sublime Text的强大。
MAC上的LaTex部署,一般是两条思路,一个是直接安装MacTex,自带编写环境什么的;另一个是Sublime Text(或者Textmate等其他编辑器)+LaTexTools插件。方式二其实也是需要依赖MacTex的,但相对来说体量小、不需要经常切换编辑器,所以果断的介绍方式二。
更新说明:
2016-4-20:更新:LaTexTools 4月更新后,增加对OS X上“预览”的支持,相应修改配置方法发生改变。本次更新,在MacTex2015Basic、OS X 10.11.4、ST 3 Build3111、LaTexTools20160420版下测试通过。
2015-10-22:重大更新:LaTexTools 10月更新后,配置发生改变,解决了MacTex2015在OS X 10.11后的调用问题;本文相应做全面更新,尽量采用修改配置而不是修改源文件的方法进行部署。本次更新,在MacTex2015Basic、OS X 10.11.1、ST 3 Build3095、LaTexTools20151004版下测试通过。
2015-10-06:更新:El Capitan(OS X 10.11)增加了SIP,也就是用户不能随意修改/usr
(除掉/usr/local
)的内容,因此会影响MacTex的使用。目前2015版的MacTex已经解决此问题,建议安装。
2015-07-01:更新:所有步骤在Sublime Text 3 beta(Build3092)、LaTeXTools 20150412、MacTex 2015 Basic(201506发布版)、OS X 10.10.4(含Xcode 6.4)下验证操作有效。本次修订将路径都改成ST3了,仍然在用ST2的网友注意对应修改下即可。由于是修改代码,所以如果升级LaTeXTools,需要重新改那两个.py文件的,其他都没有变动。评论中提到的MacTex版本,Basic就够了,不需要装2G多的包,Basic大概是装完300MB吧。
2014-12-06:重大更新:所有的步骤在Sublime Text 3 beta (Build3065)、LaTeXTools 20140312、MacTex 2014、OS X 10.10.1(含Xcode 6.1)下操作有效。如果你仍然在用ST 2,那么只需要注意下面的路径要对应修改即可。LaTeXTools 20140312对比之前版本较大,推荐使用这个最新版,并根据Readme迁移你的设置。
安装步骤
- 首先需要安装Sublime Text 2/3和Package Control,这个有大把的帖子。
- MacTex现在是一个2G+的大包子,其实里面很多东西我们不需要,所以本着节约精神,我们安装MacTex_Basic包就行了,现在的版本大概是100M以内。这个安装也是傻瓜的。
- 在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,也是解决中文的一个方法。
如果只是偶尔需要输入公式,这里介绍一个在线的LaTex公式编辑器http://private.codecogs.com/latex/eqneditor.php
有iPad的,你们有福了,还有个手写公式后自动识别、生成LaTex公式的App:MyScript MathPad。简单的使用已经足够了,如果需要经常使用,导出功能需要内购(4.99刀)。顺便说一句,这家公司的手写App都很强大,手写计算器、手写Notes都挺好用,而且不贵。
参考链接:
MacTex页面:http://tug.org/mactex/morepackages.html
Skim官网:http://skim-app.sourceforge.net
LaTexTools官网:https://github.com/SublimeText/LaTeXTools
前六步骤的具体介绍:http://economistry.com/2013/01/installing-and-using-latex-for-mac/ 不过需要注意,这里是用了完整的MacTex
发现xelatex是受了这里的启发:http://www.teeboneding.com/blog/2013/06/01/write-ntu-master-thesis-with-xelatex-template-on-mac/ 但需要注意,这里的编译代码测试无效。