美文网首页RefTools文献管理
配置VSCode为LaTeX集成开发环境(IDE) - 初级版

配置VSCode为LaTeX集成开发环境(IDE) - 初级版

作者: Specter119 | 来源:发表于2017-08-12 04:18 被阅读2219次

LaTeX的集成开发环境(Integrated Development Environment, 简称IDE)的配置方案非常多,专用软件(WinEdt, TexMakerX, TeXnicCenter),或者是通用编辑器(vim, emacs, sublime text)均有。那么VSCode的优势到底在哪?

Visual Studio Code
简称VSCode,由微软开发的全平台集成开发软件。

  1. 已经有专用编辑器了,为什么要用通用编辑器?
    因为不只写LaTeX。
  2. 相比传统『神级』编辑器(vim, emacs等),新一代编辑器(VSCode, Atom)有何优势?
    • 效率:传统编辑器高
    • 难度:新编辑器上手简单
    • 颜值:新编辑器高
  3. Atom和VSCode孰优孰劣?
    • 支持:Atom插件多且好,包括且不局限于LaTeX范围。
    • 性能:VSCode好,启动快,大文件读写不卡(貌似和LaTeX没关系?)。
    • 难度:VSCode上手难度比Atom略高。

    Atom,装插件即用,默认设置很少修改,几乎都不知道中间发生了什么。但VSCode,所有的配置都在settings.json中,使用者会更加明白发生了什么,包括默认设置做了什么。孰优孰劣,看各人喜好。

综上所述,VSCode的适合人群:同时具有编程和LaTeX需求,且对编辑器性能要求较高,有一定动手能力的人们。

VSCode安装之前的工作

安装TeX Live套装

多看书texdoc, 多查https://tex.stackexchange.com/,善于提问

CTeX/LaTeX 交流群,QQ群号: 31752345,中文开发者云集的群。
温馨提示,群里被群主虐过的才算萌新,否则只是渣渣。
进群先看群公告 × 3。

VSCode的安装配置

安装 LaTeX Workshop

点选左侧扩展按钮,在展开的扩展栏顶端搜索LaTeX Workshop,搜到后点击安装。

该扩展是当前编译 LaTeX 的全部依赖,微软官方的LaTeX Language Support已经停止开发。

使用方法可以通过 Ctrl/Cmd + Shift + p 命令快捷方式中,搜索 latex workshop 获得。

现在的LaTeX Workshop配置,有些拗口,需要修改如下设置:

LaTeX Workshop升级到5.x版本后,右下角弹窗可将toolchain自动转换为recipes的,参考 from toolchain to recipe 了解更多。

latex-workshop.latex.recipes: 编译的方案
latex-workshop.latex.tools: 编译的命令及参数
latex-workshop.latex.magic.args: 魔法注释命令的参数

编译方案 (Latex recipes) 就是不同tools的组合,把 latex-workshop.latex.tools串起来。
魔法注释 (Magic comments),用来定义编译引擎(pdflatex, xelatex 等)以及根文件 (Root file)。

下面举例实现 xelatex > bibtex > xelatex > xelatex 的配置。

使用 Ctrl/Cmd + , 打开设置窗口,左侧为默认配置,右侧为用户的全局配置,在右侧加入(注意缩进):

    "latex-workshop.latex.recipes": [
        {
            "name": "xelatex -> bibtex -> xelatex*2",
            "tools": [
                "xelatex",
                "bibtex",
                "xelatex",
                "xelatex"
            ]
        }
    ],
    "latex-workshop.latex.tools": [
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
              "%DOCFILE%"
            ]
        },
        {
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-shell-escape",
                "%DOC%"
            ],
        }
    ],

latex-workshop.latex.recipes暂时只能使用第一个。

将来应该会有支持选择recipe的编译命令,否则开发者没必要支持多recipe

如果不设置latex-workshop.latex.recipes,默认将使用latexmk编译,可以参考 Configuration Files 了解更多。

非根tex文件,建议第一行前插入:

% !TEX root = 主文件相对路径

当前版本,不建议使用魔法注释定义引擎
以前魔法注释定义的引擎相当于现在的tools,而现在定义的是只包含一步的recipes且优先级更高。所以,现在的魔法引擎使用情景非常有限,等待作者转换下思路。

个人觉得,现在的魔法注释,要么写latexmk这种集成编译命令,或者编译不含文献的文档时候可以随便换pdflatex或者xelatex。但是针对含文献的情况,反而不如之前的版本灵活。
如果诸位觉得现在的定义更好,可以留下你的方案给予建议。

结语

至此,一个简单可用的LaTeX环境就搭建好了:

  • 灵活更换引擎(现在的魔法注释并不好用)
  • 保存即编译
  • 软件内实现预览及同步

缺点:

  • 不支持自定软件预览pdf
  • 不支持双击同步,不直观
  • 不支持语法检查

缺点的前两条会抽时间反馈给作者,剩下的两条通过继续配置可以实现,因此下一篇的内容可能是代码格式化以及语法检查。

相关文章

网友评论

  • JiangqiLou:同样出现Latex toolchain terminated with error问题,使用的是Windows + TexLive ,也在行首加入了%!TEX program = xelatex
    Specter119:@JiangqiLou 我windows和mac都用,一样的配置,是都没啥问题的。latexmk的环境变量在windows上应该也是一个文件,在哪查下就好。另外,编译的引擎你看看log里都会有的,我自己latex水平一般,建议进我提到的qq群或者去插件的github里面提下issue。
    JiangqiLou:@Specter119 文中确实使用到了\bibliography跟\cite命令,"latex-workshop.latex.toolchain"部分是复制您的设置,command处也是留空的,并在main.tex首行加入了% !TEX program = xelatex。但是依旧出现错误提示:Running the contributed command:'latex-workshop.build' failed.不过您文中提到注意点“如果你的latexmk的环境变量已经改掉了编译引擎”,我想知道windows平台下这个latexmk环境变量是怎么更改的?我一直都是将texlive加入系统环境,以为调用latexmk的时候都是默认pdflatex除非文件首行声明了引擎
    Specter119:注意下左下角编译了几次?这个是按照有文献(bib)编译4次来着。如果没有文献(bib),报错在第二次,那是正常的,pdf可以打开。
  • Laughsest:按照这个设置进行编译,提示Latex toolchain terminated with error,这是我设置有误么?
    Laughsest:@Specter119 嗯,是这样的,后来改了一下,没文献不会报错了,谢谢
    Specter119:注意下左下角编译了几次?这个是按照有文献(bib)编译4次来着。如果没有文献(bib),报错在第二次,那是正常的,pdf可以打开。
  • MecZhang:谢谢,找了几个教程,只有这篇配置成功了。
    谢谢!
    Specter119:客气,可能是因为别的写的比较早,这篇差不多就是插件官网的一部分内容。
  • bcc14a7089b9:按照作者的设置输入代码,提示存在“end of file expected”错误:fearful: @Specter119
    bcc14a7089b9::+1:了解了,多谢!
    Specter119:不是覆盖,是插入,外面还有一层大括号。

本文标题:配置VSCode为LaTeX集成开发环境(IDE) - 初级版

本文链接:https://www.haomeiwen.com/subject/cejdrxtx.html