查看: 7564|回复: 1
收起左侧

[技巧] 部署Mac平台Sublime Text+LaTeX编译环境[转帖]+ 个人心得

[复制链接]
Luer
发表于 2016-8-5 12:50:06 | 显示全部楼层 |阅读模式
本帖最后由 Luer 于 2016-8-5 12:53 编辑

本文是在由yaoyp发布在http://www.readern.com/sublime-text-latex-chinese-under-mac.html的文章的基础上进行修改之后发布。

这样的技术贴是不是违反版规我不太记得了,如果违反了请版主见谅。

1楼是SublimeText搭建LaTex环境
2楼暂定作为Snippet的一点介绍

LaTex就不多做介绍了,其实一般人用到的机会也不多(不过掌握一些LaTeX命令还是有一点用处,尤其是在Windows MS Word编辑公式时你会发现MS贴心的把支持大量LaTeX描述公式方式。不过Mac上我用的是LibreOffice所以不太清楚巨硬有没有阉割这一细节)。原作者是在Coursera上学课程的时候,偶尔需要,所以从零开始摸索了一下,也顺便进一步发现了Sublime Text的强大。而我最早发现ST,是因为自己以前用的UltraStudio(大概是这么写的吧)失效想找一款替代品,后来发现了ST。

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版下测试通过。
(本人使用的环境为MacTex2016、OS X 10.11.6、ST 3 3114、LatexTools最新版打开ST后是可以自动更新的,这个就不介绍了。

对原作者历次编辑更新内容感兴趣的可以去他的blog原文查看)

安装步骤


  • 首先需要安装Sublime Text 2/3和Package Control,这个有大把的帖子。
  • MacTex现在是一个2G+的大包子,其实里面很多东西我们不需要,所以本着节约精神,我们MacTex_Basic包安装就行了,现在的版本大概是100M以内。这个安装也是傻瓜的。
    (尽管如此,我还是推荐下载完整包,而且最好下载最新的Tex16包,不然下文提及的中文环境搭建脚本无法正常运行。另外,因为完整包里存在较多的模版可以借鉴使用,这在自制sublime的Snippet代码片段文件时也极其有用)
  • 在Sublime Text里Command+Shift+P调出命令窗口,输入Install,之后选择LaTexTools,网络OK的话,很快就完成了插件安装。
  • LaTexTools插件会在编译你的Tex文件后,调用Skim这个PDF阅读器打开编译出的PDF文件,因此你还需要安装Skim.
    (bing或者Google直接搜索“skim”就可以)
  • 运行一下Skim,进入偏好设置——同步,在PDF-Tex同步支持那里选择自定义,输入[mw_shl_code=xml,true]/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl[/mw_shl_code],第二行不用动。这样,当你在Sublime Text里修改tex文件时,Skim预览也会相应变更。
    (所谓相应变更并未实现自动skim自动刷新内容,而是再次command+B对tex文件编译后才可直接更新。)
  • 完成上面所有步骤,其实就已经搭建完成基本环境。创建一个test.tex文档,保存一下以后,Sublime Text会自动套用LaTex语法显示和编译。贴上我后面附的测试代码,一般来说Command+B应该可能会报fontspec错误;如果能正常编译,则会调用Skim显示一个PDF文档了。只是中间的中文不见了。
  • 让我们最后来修改编译和中文环境:

    • 打开终端,运行:

      [mw_shl_code=python,false]sudo tlmgr update --self
      sudo tlmgr install latexmk[/mw_shl_code]
    • 在ST里打开LaTeXTools.sublime-settings(也就是LaTeXTools的用户设置,如果你是从旧版本升级上来或者担心这个配置文件出现问题,可以依次点击Preferences——Package Settings——LaTeXTools——Reset user settings to default重建配置文件),在builder-settings下面新增两项配置:

      [mw_shl_code=xml,false]"program" : "xelatex",
      "command" : ["latexmk", "-cd", "-e", "$pdflatex = 'xelatex -interaction=nonstopmode -synctex=1 %S %O'", "-f", "-pdf"],[/mw_shl_code]
      另外注意之前应该有"builder": "default"(或直接设置为空或”traditional”)。

    原作者自己介绍还有一种不太推荐的设置方式:
    • 打开并编辑文件[mw_shl_code=shell,false]~/Library/Application\ Support/Sublime\ Text/Packages/Users/LaTeX.sublime-settings[/mw_shl_code],将其中"builder"条目改为:
      "builder": "simple"
    • 接着打开编辑[mw_shl_code=shell,false]~/Library/Application\ Support/Sublime\ Text/Packages/LaTeXTools/builders/simpleBuilder.py[/mw_shl_code]
    • 找到其中大概第41行
      [mw_shl_code=shell,false]pdflatex = ["pdflatex", "-interaction=nonstopmode", "-synctex=1"][/mw_shl_code]
      修改为
      [mw_shl_code=shell,false]pdflatex = ["xelatex", "-interaction=nonstopmode", "-synctex=1"][/mw_shl_code]
    • 以上步骤是修改了源代码,既然可以通过用户设置的方式来自定义,那显然新方式适应性更好,不会一次更新就得从头修改




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

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


测试代码
[mw_shl_code=xml,false]\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}[/mw_shl_code]
(我现在用的一个定义是这样的:
[mw_shl_code=xml,true]\documentclass{ctexart}
\title{英语作文范文2011-2016}
\date{}       
\begin{document}
\maketitle{}
\section*{小作文}
\paragraph{  Hence, it is vital for us to derive positive implications from the above pictures. For one thing, we should frequently use it to enlighten young parents. For another, we should cultivate the awareness of parents that personal examples are very vital to kid’s growth. Only by doing so can children grow sound in body and mind.}
\end{document}[/mw_shl_code]
反正设置为ctexart就可以正常显示中文。
LaTex的其他选择
如果觉得修改设置看起来很复杂,可以在每篇文档前增加[mw_shl_code=xml,true]%!TEX program = xelatex[/mw_shl_code],这会强制使用xelatex,也是解决中文的一个方法。
(原作者是这说的,但是我的环境下加了反而会报错)
Luer
 楼主| 发表于 2016-8-5 12:51:17 | 显示全部楼层
ST的Snippet功能介绍:
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-4-25 23:21 , Processed in 0.120657 second(s), 16 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表