加速LaTeX编译速度:使用VScode远程工具Remote-SSH在Linux系统上编译LaTeX

由于在Windows中编译LaTeX的速度要远低于在LInux中编译速度,但我们可能经常需要在Windows系统上办公,因此有没有一种方法可以在Windows中用LaTeX写文章同时享受Linux的编译速度呢?
答案是:

  • Windows系统:VScode(扩展:Remote-SSH+LaTeX Workshop)
  • 远程Linux系统:TeX Live 2021

在远程Linux系统中安装TeX Live 2021(以Ubuntu为例)

  • 下载TeX Live(国内镜像:http://mirrors.cqu.edu.cn/CTAN/systems/texlive/Images/),选择texlive2021.iso即可。
  • 安装(执行sudo ./install-tl后,选择第一个Install直接安装)
sudo mount -o loop texlive2021.iso /mnt/
cd /mnt/
sudo ./install-tl
  • 配置环境变量
    • vim ~/.bashrc
    • 在文本末尾追加以下命令,退出后执行source ~/.bashrc
    #tex live 2021
    export MANPATH=${MANPATH}:/usr/local/texlive/2021/texmf-dist/doc/man
    export INFOPATH=${INFOPATH}:/usr/local/texlive/2021/texmf-dist/doc/info
    export PATH=${PATH}:/usr/local/texlive/2021/bin/x86_64-linux
    
  • 验证是否安装成功:执行latex -version,若显示版本信息即为安装成功。

在本地Windows配置远程开发环境

  • 安装Vscode,官网直接下载即可。
  • 安装Remote-SSH插件
    • 安装后点击【远程控制】图标,再点击【设置】图标,选择【C:xxx/.ssh/config】进入配置界面。
    • 基本配置如下
    Host HMLab88                    #自定义主机的名字
        HostName 115.24.167.215     #主机的IP
        Port 22                   #若有端口号,在这里加
        User xxx              #主机用户的用户名
    
  • 安装LaTeX Workshop插件并在Vscode中配置LaTeX编译信息
  • 使用快捷键:Ctrl+Shift+P,输入json,打开配置文件。追加"latex-workshop.latex.recipes"和"latex-workshop.latex.tools"等即可,详细信息见附录。

在本地Windows中打开远程Linux中的LaTeX文件夹并进行编译

  • 在VsCode中选择【远程控制】图标,打开远程机器。选择【文件】->【打开文件夹】,找到想要打开的LaTeX文件夹。
  • 选择.tex文件,即可在左侧工具栏中看到【TEX】图标。
  • 执行Ctrl+S即可保存文件并进行编译

问题:
在刚配置完环境后第一次执行编译时可能会报错:
Recipe terminated with fatal error: spawn latexmk ENOENT.
这是因为环境变量没有在VsCode中生效导致的。可以尝试以下操作:

  • 执行F1,输入Remote-SSH: Kill VS Code Server on Host…,再尝试重新编译。
  • 重启远程服务器

附录:
LaTeX配置信息:

    // LaTeX配置
    //自动换行
    "[latex]": {
        "editor.wordWrap": "on"
    },
    //默认应用上次使用的方法来编译
    "latex-workshop.latex.recipe.default": "lastUsed",
    //补全提示时显示 Unimath 符号
    "latex-workshop.intellisense.unimathsymbols.enabled": true,
    //从已引用的包中补全
    "latex-workshop.intellisense.package.enabled": true,
    "latex-workshop.view.pdf.viewer": "tab",

    "latex-workshop.latex.recipes": [
        {
            "name": "pdfLaTeXmk",
            "tools": [
                "pdfLaTeXmk"
            ]
        },
        {
          "name": "XeLaTeXmk",
          "tools": [
              "XeLaTeXmk"
          ]
        },
        {
          "name": "pdflatex -> bibtex -> pdflatex*2",
          "tools": [
              "pdflatex",
              "bibtex",
              "pdflatex",
              "pdflatex"
          ]
        },
        {
          "name": "latexmk",
          "tools": [
              "latexmk"
          ]
        },
        {
          "name": "xelatex",
          "tools": [
              "xelatex"
          ]
        }, 
        ],

        "latex-workshop.latex.tools": [
        {
            "name": "XeLaTeXmk",
            "command": "latexmk",
            "args": [
                "-xelatex",
                "-synctex=1",
                "-shell-escape",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ]
        },
        {
            "name": "pdfLaTeXmk",
            "command": "latexmk",
            "args": [
                "-pdflatex",
                "-synctex=1",
                "-shell-escape",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOC%"
            ]
        },
        {
        "name": "latexmk",
        "command": "latexmk",
        "args": [
          "-synctex=1",
          "-interaction=nonstopmode",
          "-file-line-error",
          "%DOC%"
        ]
        }, {
        "name": "xelatex",
        "command": "xelatex",
        "args": [
          "-synctex=1",
          "-interaction=nonstopmode",
          "-file-line-error",
          "%DOC%"
        ]
        }, 
        {
        "name": "pdflatex",
        "command": "pdflatex",
        "args": [
          "-synctex=1",
          "-interaction=nonstopmode",
          "-file-line-error",
          "%DOC%"
        ]
        }, {
        "name": "bibtex",
        "command": "bibtex",
        "args": [
          "%DOCFILE%"
        ]
        }],
        "latex-workshop.view.pdf.viewer": "tab",
        "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"
        ],

你可能感兴趣的:(解决问题,vscode,ssh,linux)