0%

在Mac上通过Sublime和Skim编辑LaTeX

Sublime Text是一款非常优秀的编辑器:速度快,界面简洁,插件众多;并且能够跨平台使用,在Mac和Windows上都发挥完美。虽然是一款付费软件,但作者很厚道地给了无限期的试用期限。这一切正如其官网广告词说的那样:The text editor you'll fall in love with.
Skim是一款免费轻量的PDF阅读、标注工具,布局贴心友好,与OS X自带的Previewer相比,Skim能更好的注释PDF文件。
\LaTeX 是一款权威的科技论文排版系统,不仅可以写论文,也可以处理日常的各种文档工作,甚至是做幻灯片。相比于Microsoft Word, \LaTeX 最大的优势是对于复杂公式的编辑与排版非常漂亮,并且用简单的命令就可以生成脚注、索引、目录和参考文献等复杂的结构。这一切优点都使得世界上众多的科学家们不再需要身兼作者与排版工两职,从而将更多的精力集中于文章内容本身。
本文的目的是将上述三种软件综合部署在Mac上。完成之后,你将可以在Sublime Text里面进行 \LaTeX 代码编辑,用Skim预览生成的PDF文件。更重要的是,让你觉得,写论文也可以是一件很优美的事。

准备工作

  • Mac上至少4GiB的空余空间
  • 高速的互联网连接

安装MacTeX

  • 进入MacTeX官网下载MacTeX.pkg文件。文件大约3GB,需要一段时间才能完成下载,趁现在去喝杯咖啡吧。
  • 下载完成之后,双击MacTeX.pkg进行安装。
  • 安装完成之后,会看到许多与TeX有关的程序图标,暂时忽略它们。

安装Sublime Text

  • 进入Sublime Text官网下载最新版本的Sublime Text 3。
  • 下载完成之后,将文件拖入应用程序文件夹安装。

在Sublime Text中安装Package Control

我们需要在Sublime Text中下载插件以便能够很好地操作与 \LaTeX 有关的文件。而插件是通过Package Control下载的。

  • 进入Package Control官网,复制灰色区块的代码(或者直接复制下面的代码)。
    对于Sublime Text 3:
    1
    import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

对于Sublime Text 2:

1
import urllib2,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')
  • 打开Sublime Text。
  • 使用快捷键Ctrl+~打开控制台(Console)。你会在Sublime Text的底部看到弹出一个白色窗口。
  • 将刚才复制的代码粘贴到控制面板。
  • 按下Enter回车键,等待安装。
  • 安装完成后,退出并重启Sublime Text。

安装LaTeXBox

  • Sublime Text重启后,按下Command+Shift+P打开命令托盘(Command pallet),这一步也可以通过点击Tools下拉菜单完成。
  • 在命令托盘里输入Install Package,按下Enter回车建。
  • 完成之后,输入LaTeXBox,找到这一项并回车安装。
  • 退出并重启Sublime Text。

安装Skim

  • 进入Skim官网下载Skim并安装。
  • 打开Skim,在菜单栏中点击Skim > Preference(选项) > Sync(同步)
  • 在预设菜单中选择Sublime Text
  • 关闭上面这个窗口。

修改编译和中文环境

现在,我们已经做完了所有的步骤✌️,可以打开Sublime Text,Command+N新建文件并在里面编写 \LaTeX 代码了,完成编辑之后,Command+S保存文件,Command+B编译并运行,这时就可以在Skim里面看到PDF预览了。
如果你使用了ctex,使用默认的编译配置可能会出现中文不正常的问题,这时需要进行手动设置(将默认的引擎设置为xelatex)。如图所示打开:

然后输入以下内容:

1
2
3
4
5
6
7
{
"bring_forward_on_success": true,
"cmd": [
"latexmk", "-quiet", "-pdf", "-e",
"$pdflatex='xelatex -synctex=1 --shell-escape %O %S'"
],
}

如果使用LaTeXBox编译出现了其它问题,可以尝试在命令行中直接进行编译:在第一步完成后,打开终端,进入到tex所在到文件夹,使用xelatex *.tex,编译tex文件为pdf。如果成功,你可以将它添加到Sublime Text的Build System中,或者通过设置LaTeXBox的编译引擎,也可以实现一键编译。除此之外,还可以使用Pandoc等命令行工具将tex转为其他格式的文档。
在Windows上可以通过安装TexLive的方法配置TeX环境,过程是类似的。需要注意的是,tex文件应采用UTF-8编码。


参考文章:在Mac OS X下搭建Latex编辑环境

本文更新于2019年5月:
使用VSCode和 \LaTeX 插件,可以获得更加友好的写作体验,不妨试一试。

🍭支持一根棒棒糖!