LaTeX in VSCode

论文写作 / 2022-11-17

VScode 论文写作

环境需求

  • 首先确保系统具有 latex 编译环境
    • brew install --cask mactex-no-gui
  • 安装 VSCode,并从插件商店中下载 LaTeX Workshop
  • 如果需要使用正向搜索与逆向搜索,需要使用 skim 作为 PDF 阅读器
    • brew cask install skim
    • 将 skim 的 PDF-TeX 同步支持选择 VSCode

VScode 配置

  • 修改 VSCode 的 settings.json 配置 LaTeX 编译过程
{

    // 此处省略其他配置

    // LaTeX
    // 不在保存的时候自动编译
    "latex-workshop.latex.autoBuild.run": "never",
    // 编译工具
    "latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "%DOCFILE%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ]
        }
    ],
    // 编译命令模板
    "latex-workshop.latex.recipes": [
        {
            "name": "xelatex",
            "tools": [
                "xelatex"
            ],
        },
        {
            "name": "xelatex*2",
            "tools": [
                "xelatex",
                "xelatex"
            ],
        },
        {
            "name": "pdflatex",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "xe->bib->xe->xe",
            "tools": [
                "xelatex",
                "bibtex",
                "xelatex",
                "xelatex"
            ]
        },
        {
            "name": "pdf->bib->pdf->pdf",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        }
    ],
    // 设置 latex-workshop.build 指令的默认命令,此处使用带有 bibtex 的编译过程
    "latex-workshop.latex.recipe.default": "pdf->bib->pdf->pdf",
    // 使能从 VSCode跳转到 Skim 里相应位置
    // external pdf viewer
    "latex-workshop.view.pdf.viewer": "external",
    "latex-workshop.view.pdf.external.synctex.command": "/usr/local/bin/displayline",
    "latex-workshop.view.pdf.external.synctex.args": [
        "-r",
        "%LINE%",
        "%PDF%",
        "%TEX%"
    ],

    // 使能从 VSCode 中直接打开 Skim
    "latex-workshop.view.pdf.external.viewer.command": "/usr/local/bin/displayline",
    "latex-workshop.view.pdf.external.viewer.args": [
        "0",
        "%PDF%"
    ],
}
  • 修改 VSCode 的 keybindings.json 配置快捷键
// 将键绑定放在此文件中以覆盖默认值
[
    {
        // 前向搜索
        "key": "cmd+shift+s",
        "command": "latex-workshop.synctex",
        "when": "editorTextFocus"
    },
    {
        // 使用默认 recipe 编译
        "key": "cmd+shift+b",
        "command": "latex-workshop.build",
        "when": "editorTextFocus"
    },
    {
        // 终止编译
        "key": "cmd+shift+t",
        "command": "latex-workshop.kill",
        "when": "editorTextFocus"
    },
    {
        // 选择其他 recipe 编译
        "key": "cmd+shift+e",
        "command": "latex-workshop.recipes"
    },
]

BibTeX

  • 需要在论文的 .tex 文件中用 \bibliography{ref} 指定,ref 是 ref.bib 的文件名
  • 如果要用 Terminal 手动编译带 BibTeX 的 LaTeX,则执行
pdflatex %DOCFILE%
bibtex %DOCFILE%
pdflatex %DOCFILE%
一只学术咸鱼 _(:ᗤ」ㄥ)_