MAC上使用SUBLIME TEXT3编写LATEX

出于工作的需要,我们经常需要使用LaTex来写学术论文或者Slides,网上有很多推荐的LaTex专用软件,但是对于使用MAC+Sublime Text习惯了的人,想尝试如何在这样的环境下流畅使用LaTex,下面就是我尝试后的小小心得。

Preparation

  1. 检查操作系统:OS X EI Capitan Version 10.11.6;
  2. 检查电脑剩余空间;(因为如果你还没有安装MacTex的话,你需要至少4G的空间)

因为本人电脑为OS操作系统,所以针对Windows/Linux系统,本文并不是很实用。

步骤

是否安装了MacTex

  1. 如果你已经安装了MacTex,请到/usr/local/texlive/文件夹里(可以Finder中按Shift+option+G打开Go to the Folder,输入/usr/local/texlive/)检查MacTex的版本。我的MacTex版本是MacText2017
  2. 如果你想更新MacTex的版本,建议你按照此说明卸载旧版本的MacTex,然后按照下面的步骤按照新版本的MacTex。
  3. 如果你没有安装MacTex,可以去MaxTex官网按照官方说明进行安装。

是否安装了Sublime Text 3

  1. 如果你已经安装了Sublime Text 3(以下简称ST3),可以直接跳至下一步。
  2. 如果你没有安装ST3,请至ST3官网按照官方说明进行安装。
  3. 本文针对Sublime Text 2可能并不非常实用。

是否安装了Skim

  1. 检查是否已经安装软件Skim。你可以到Skim官网下载安装。
  2. 安装完成后:
  • 打开Skim
  • 选择Skim->Preference->Sync
  • PDF-Tex Sync support->Preset中选择Sublime Text

ST3中是否安装了Package Control

  1. 检查Sublime Text 3中是否已经安装了Package Control: 快捷键Shift+Command+P,看看是否会跳出面板;

  2. 如果你没有安装,可以按照官网说明进行安装。

安装ST3 Package: LatexTools

  1. 快捷键Shift+Command+P打开Packge Control面板;
  2. 输入pi,选择“Package Control:Install Package”;
  3. 输入“LatexTools”,选择,安装
  4. Control+~打开Console检查Package的安装情况。如果最后跳出Package Control Messages,Console中显示reloading settings Packages/User/Preferences.sublime-settings语句,则表示LatexTools安装成功。

支持中文

打开Terminal,输入

➜  ~ sudo tlmgr update --self
➜  ~ sudo tlmgr install latexmk

tlmgr是TeX Live的package manager,Latexmk是LaTeX自动编译工具。

如果你之前并没有修改过User Setting的话,在ST3的Sublime Text->Preference->Package Settings->LatexTools->Settings-User中,找到builder_settings代码块如下(Ctrl+F打开查找,输入“builder_settings”):

"builder_settings" : {
        // General settings:
        // See README or third-party documentation
        // (built-ins): true shows the log of each command in the output panel
        "display_log" : false,
        // Platform-specific settings:
        "osx" : {
            // See README or third-party documentation
        },
        "windows" : {
            // See README or third-party documentation
        },
        "linux" : {
            // See README or third-party documentation
        }
    },

// General settings:
// See README or third-party documentation

后加入

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

当然,你也可以通过在每次的.tex文件首列加入语句

%!TEX program = xelatex

进行解决。

有没有简单的 LaTeX 中文支持方案?

部署MAC上的Sublime Text+LaTex中文环境——201706更新

测试

粘贴复制以下内容,保存为.tex格式文件:

\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}

快捷键Command+B,进行编译,如果没有问题,Skim会自动跳出预览窗口。

PDF页面进行修改

  1. 在 Skim 窗口中,按下Cammand+Shift;
  2. 在需要的位置按下触摸板,即可跳转回ST3到对应的代码位置

安装中遇到的问题

Problem 1

Package Control: The dependency ‘python-jinja2’ is not currently installed; installing…

Error loading scope:source.tsx: Unable to find syntax file for scope source.tsx in Packages/MarkdownEditing/Markdown.tmLanguage

检查一下自己python的版本:

➜  ~ python --V
Python 2.7.10

检查一下自己安装的Python Package:

➜  ~ pip freeze
altgraph==0.10.2
bdist-mpkg==0.5.0
bonjour-py==0.3
cvxopt==1.1.8
Jinja2==2.9.6
macholib==1.5.1
MarkupSafe==1.0
matplotlib==1.3.1
modulegraph==0.10.4
numpy==1.8.0rc1
pandas==0.18.1
py2app==0.7.3
pyobjc-core==2.5.1
pyobjc-framework-Accounts==2.5.1
pyobjc-framework-AddressBook==2.5.1
pyobjc-framework-AppleScriptKit==2.5.1
pyobjc-framework-AppleScriptObjC==2.5.1
pyobjc-framework-Automator==2.5.1
pyobjc-framework-CFNetwork==2.5.1
pyobjc-framework-Cocoa==2.5.1
pyobjc-framework-Collaboration==2.5.1
pyobjc-framework-CoreData==2.5.1
pyobjc-framework-CoreLocation==2.5.1
pyobjc-framework-CoreText==2.5.1
pyobjc-framework-DictionaryServices==2.5.1
pyobjc-framework-EventKit==2.5.1
pyobjc-framework-ExceptionHandling==2.5.1
pyobjc-framework-FSEvents==2.5.1
pyobjc-framework-InputMethodKit==2.5.1
pyobjc-framework-InstallerPlugins==2.5.1
pyobjc-framework-InstantMessage==2.5.1
pyobjc-framework-LatentSemanticMapping==2.5.1
pyobjc-framework-LaunchServices==2.5.1
pyobjc-framework-Message==2.5.1
pyobjc-framework-OpenDirectory==2.5.1
pyobjc-framework-PreferencePanes==2.5.1
pyobjc-framework-PubSub==2.5.1
pyobjc-framework-QTKit==2.5.1
pyobjc-framework-Quartz==2.5.1
pyobjc-framework-ScreenSaver==2.5.1
pyobjc-framework-ScriptingBridge==2.5.1
pyobjc-framework-SearchKit==2.5.1
pyobjc-framework-ServiceManagement==2.5.1
pyobjc-framework-Social==2.5.1
pyobjc-framework-SyncServices==2.5.1
pyobjc-framework-SystemConfiguration==2.5.1
pyobjc-framework-WebKit==2.5.1
pyOpenSSL==0.13.1
pyparsing==2.0.1
python-dateutil==1.5
pytz==2013.7
requests==2.9.1
scikit-learn==0.17.1
scipy==0.13.0b1
six==1.4.1
sklearn==0.0
vboxapi==1.0
virtualenv==15.0.1
xattr==0.6.4
zope.interface==4.1.1
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

发现我没有jinjia2,安装Jinja2 2.7 documentation安装:

➜  ~ sudo easy_install Jinja2
Password:

Problem 2

在测试环节,ST3 Console一直会显示:

  File "/Users/huwei/Desktop/test.tex", line 1
%!TEX program = xelatex
^
SyntaxError: invalid syntax

或者

\documentclass{article}
                       ^
SyntaxError: unexpected character after line continuation character

在网上查了很久也没有和我类似的问题,最后终于在Weird compile error with Latex Tools plugin找到了答案。

原来因为我之前一直使用ST3编写Python,Tools->Build System已经被我设置成了Python,我们应该将其设置成Automatic才行。

References

  1. 在Mac上使用LaTeX,一份简单的指导
  2. 在Mac上通过Sublime、Skim编辑LaTeX
  3. 使用Sublime Text编写LaTeX
  4. LateXTools: A LaTeX Plugin for Sublime Text 2 and 3
-------------End of postThanks for your time-------------
BaoDuGe_飽蠹閣 wechat
Enjoy it? Subscribe to my blog by scanning my public wechat account