利用VSCode构建简单的>$\LaTeX$<编辑器

杂谈,技术向 2018-11-13

起因

起因是因为要开始论文初稿的撰写, 然后需要使用>$\LaTeX$<. 虽然老板想让我在OverLeaf上写, 但是作为一个Vim党, 可能习惯了Vim的操作习惯以后就再也回不到纯文本的编辑上去了吧[笑]. 抛弃掉TexLive自带的TexWorks也是同理, VSCode的Vim插件总的来说还是挺好用的(虽然由于VSCode本身机制的问题会和一些插件不兼容, 比如acejump.

经过

现在是8102年了, 所以你需要的安装的是TexLive而不是CTex. 事实上, 对于中文现在TexLive也可以正常处理, 只要配置好字体就可以了1, 而且CTex也已经很久都没有更新过. 至于其他的发行版, 我只要求能用而且足够好用就可以了所以懒得圣战.

所以你需要的工具有:

安装方法非常简单:

  1. 安装VScode
  2. 安装TexLive2
  3. 安装Perl
  4. 打开终端运行tex看是否找到命令
  5. 安装VSCode的LaTeX Workshop插件
  6. 输入下列测试代码1保存:

    \documentclass[UTF8]{ctexart}
    \begin{document}
    你好,world!
    \end{document}
  7. 尝试运行左侧边栏的Build LaTeX Project - Recipe: latexmk/Recipe: pdflatex -> bibtex -> pdflatex*2应该都能够输出pdf
  8. 尝试运行左侧边栏的View LaTeX PDF - View in VSCode Tab/View in web browser就可以分别在VSCode的新标签页和浏览器打开了, 而且是会根据你编辑的内容实时刷新哟

其他的一些可能设置:

  • 输出到指定目录(比如./output)而不是根目录

    • 修改latex-workshop.latex.tools

          {
              "name": "latexmk",
              "command": "latexmk",
              "args": [
                  "-synctex=1",
                  "-interaction=nonstopmode",
                  "-file-line-error",
                  "-pdf",
                  "--outdir=output",
                  "%DOC%"
              ]
          },
    • 修改latex-workshop.latex.outputDir./output即可
  • 编译后清理掉中间文件

    • 修改latex-workshop.latex.tools

          {
              "name": "latexmk_build",
              "command": "latexmk",
              "args": [
                  "-synctex=1",
                  "-interaction=nonstopmode",
                  "-file-line-error",
                  "-pdf",
                  "--outdir=output",
                  "%DOC%"
              ]
          },
          {
              "name": "latexmk_clean",
              "command": "latexmk",
              "args": [
                  "-c",
                  "--outdir=output",
                  "%DOC%"
              ]
          },
    • 修改latex-workshop.latex.recipes

          {
              "name": "latexmk",
              "tools": [
                  "latexmk_build",
                  "latexmk_clean"
              ]
          },
  • 比如想要使用xelatex来排版

    • 打开VSCode的配置文件
    • latex-workshop.latex.recipes中加入如下内容:

      {
          "name": "xelatex",
          "tools": [
              "xelatex"
          ]
      },
    • latex-workshop.latex.tools中加入如下内容:

      {
          "name": "xelatex -> bibtex -> xelatex*2",
          "tools": [
              "xelatex",
              "bibtex",
              "xelatex",
              "xelatex"
          ]
      },
      {
          "name": "xelatex",
          "tools": [
              "xelatex",
          ]
      },
    • 重启VScode, 你就可以在Build LaTeX Project下看到新添加的Recipe了~

      xelatex -> bibtex -> xelatex*2用于处理需要bbl的情况, xelatex则用于纯>$\LaTeX$<环境下使用.
  • 在工作区排除掉LaTeX编译中间文件的显示

    • 加入如下配置到配置文件即可:

      "files.exclude": {
          "**/*.aux": true,
          "**/*.fdb_latexmk": true,
          "**/*.fls": true,
          "**/*.log": true,
          "**/*.synctex.gz": true,
          "**/*.bbl": true,
          "**/*.blg": true
      },
  • 补充一下自动clean的文件

    • latex-workshop.latex.clean.fileTypes中加入如下内容:

      "latex-workshop.latex.clean.fileTypes": [
          "*.aux",
          "*.bbl",
          "*.blg",
          "*.idx",
          "*.ind",
          "*.lof",
          "*.lot",
          "*.out",
          "*.toc",
          "*.acn",
          "*.acr",
          "*.alg",
          "*.glg",
          "*.glo",
          "*.gls",
          "*.ist",
          "*.fls",
          "*.log",
          "*.fdb_latexmk",
          "*.synctex.gz"
      ],
  • 其他的一些额外的有用的提示

    • 在VSCode的输出面板有LaTex WorkshopLaTeX Compiler两个输出选项, LaTex Workshop是LaTeX输出插件的日志, LaTeX Compiler是LaTeX编译器的输出日志
    • 如果没有pdf文件输出请检查编译器的日志, 查看VSCode是否找到了编译器是否正确编译
    • 如果有pdf文件, 但是pdf文件没有被打开请检查插件日志, 默认是打开主tex文件下同名pdf文件, 如果配置了输出目录需要修改配置latex-workshop.latex.outputDir

总结

VSCode不愧是一个全能型轻量级IDE, 通过各种插件的组合能够实现IDE的基本功能, 当然缺点主要是打开反应慢(和Sublime相比), 而且有些操作逻辑很迷(比如拖出标签页是保存文件???).

不过通过这一系列配置之后基本能实现实时预览和编写, 而且支持VScode完善的现代编辑器操作, 还是非常好评的w


本文由 SLKun 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论