一、前言

最近参加美赛需要写论文,听说了所谓的“论文排版神器”—— LaTeX(正确读音:[ˈlɑːtɛx; ˈleitɛx],音译:拉泰赫或雷泰赫),遂决定试试。然而 LaTeX 只是一个排版格式,还需要选择软件,深入研究发现可供选择的软件有很多,经过比对,最终选择了 TeX Live + VS Code + LaTeX Workshop + Sumatra PDF + Git 的方案。

二、软件安装和配置

依次安装如下软件并进行配置,其中步骤2.1~2.3是必须的,步骤2.4可以视情况选择安装。

本文中提到的所有文件均已上传至网盘,若官网下载缓慢,可在网盘里下载。另外,博主在 VMware 16 虚拟机中已经配置好 LaTeX 相关环境(基于 TeX Live 2020)并将虚拟机磁盘文件打包压缩后上传至网盘,有基础的朋友可以下载后直接使用,免去以下安装步骤。

2.1 TeX Live

TeX Live 是由国际 TeX 用户组织 TUG 开发的 TeX 系统,支持不同的操作系统平台,这也是本方案的核心,配置所有的编译环境和各种宏包,还附带了一个编辑器,不过不是很好用,所以编辑器选择 VS Code + LaTeX Workshop 的方案。

2.1.1 下载

TeX Live 的最新版本是 TeX Live 2020。

由于 TeX Live 常规安装需要一边下载一边安装,速度较慢,所以推荐直接下载 ISO 文件,可一次性获取完整的安装文件,使安装过程更为顺畅。

镜像站下载链接:http://mirror.ctan.org/systems/texlive/Images/

此链接会自动跳转到距离你最近的镜像服务器,若下载缓慢,可以通过以下的开源软件镜像站下载。

清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/

上海交大开源软件镜像站:https://mirrors.sjtug.sjtu.edu.cn/ctan/systems/texlive/Images/

中科大开源软件镜像站:http://mirrors.ustc.edu.cn/CTAN/systems/texlive/Images/

三个 ISO 文件选择其一下载即可,如图所示:

2.1.2 安装

1.将下载得到的 ISO 光盘镜像文件直接解压。

2.在解压出来的主目录中找到install-tl-windows.bat文件,以管理员身份运行。

特别注意:文件夹路径不能包含中文,否则会运行失败。

3.取消勾选安装 TeXworks 前端,其它均为默认配置,安装即可。

2.2 VS Code

VS Code 全称 Visual Studio Code,是由微软推出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、Git 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化,且软件跨平台支持 Win、Mac 以及 Linux。

官网链接:https://code.visualstudio.com/,下载完成后按默认配置安装即可。

2.2.1 Chinese (Simplified) Language Pack 插件

在 VS Code 的扩展管理中,搜索Chinese即可找到Chinese (Simplified) Language Pack插件,下载并安装此插件。此插件为 VS Code 提供简体中文语言支持。

2.2.2 LaTeX Workshop 插件

LaTeX Workshop 是 VS Code 的插件,这个插件为 VS Code 提供了 LaTeX 语言支持。

2.2.2.1 插件安装

在 VSCode 的扩展管理中,搜索LaTeX Workshop,安装即可。

2.2.2.2 基本配置

1.在 VS Code 里面按下快捷键Ctrl+Shift+P,输入set,选择打开设置(json)打开用户设置(JSON),如图所示,打开settings.json

2.一般情况下settings.json文件中只有{}

删除原有的{},添加下面的代码,或者点击此处下载压缩包,用解压后得到的settings.json覆盖C:\Users\[用户名]\AppData\Roaming\Code\User下的同名文件。

若曾对 VS Code 做过个性化修改等操作,settings.json中可能会有其它内容,这种情况下请勿改变原有代码,只需要将下面的代码去除首尾的{}后添加至原有代码的下面即可。

注意修改settings.json中相关文件的路径(尤其是用户名部分)!请仔细阅读注释!

{
  // ======================== LaTeX 设置 BEGIN  ========================
  // 参数的详细配置见:https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile

  // BibTeX 格式
  "latex-workshop.bibtex-format.tab": "tab",

  // 自动编译,全部关闭,当且仅当你认为有需要的时候才会去做编译
  "latex-workshop.latex.autoBuild.run": "never",
  "latex-workshop.latex.autoBuild.cleanAndRetry.enabled": false,

  // 设置 LaTeX-Workshop 的 PDF 预览程序,external 指的是外部程序
  // 注意核实 SumatraPDF.exe 的路径
  "latex-workshop.view.pdf.viewer": "external",
  "latex-workshop.view.pdf.ref.viewer": "external",
  "latex-workshop.view.pdf.external.viewer.command": "C:/Users/[用户名]/AppData/Local/SumatraPDF/SumatraPDF.exe",
  "latex-workshop.view.pdf.external.viewer.args": [
    "%PDF%"
  ],

  // 配置正向、反向搜索:.tex -> .pdf
  // 注意核实 SumatraPDF.exe 的路径
  "latex-workshop.view.pdf.external.synctex.command": "C:/Users/[用户名]/AppData/Local/SumatraPDF/SumatraPDF.exe",
  "latex-workshop.view.pdf.external.synctex.args": [
    // 正向搜索
    "-forward-search",
    "%TEX%",
    "%LINE%",
    "-reuse-instance",
    // 反向搜索
    // 注意核实 Code.exe 以及 cli.js 的路径
    "-inverse-search",
    "\"C:/Users/[用户名]/AppData/Local/Programs/Microsoft VS Code/Code.exe\" \"C:/Users/[用户名]/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js\" --ms-enable-electron-run-as-node -r -g %f:%l",
    "%PDF%"
  ],

  // 这是一些独立的编译选项,可以作为工具被编译方案调用
  "latex-workshop.latex.tools": [
    {
      // Windows 系统的 XeLaTeX 编译
      "name": "Windows XeLaTeX",
      "command": "xelatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "-pdf",
        "%DOCFILE%"
      ]
    },
    {
      // Windows 系统的 BibTeX 编译
      "name": "Windows BibTeX",
      "command": "bibtex",
      "args": [
        "%DOCFILE%"
      ]
    },
    {
      // 适用于 Linux 的 Windows 子系统(即 WSL)的 XeLaTeX 编译
      // 若使用 WSL 系统,注意核实 xelatex 的路径
      "name": "WSL XeLaTeX",
      "command": "wsl",
      "args": [
        "/usr/local/texlive/2020/bin/x86_64-linux/xelatex",
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "-pdf",
        //"-output-directory=%OUTDIR%",
        //"-aux-directory=%OUTDIR%",
        "%DOCFILE%"
      ]
    },
    {
      // 适用于 Linux 的 Windows 子系统(即 WSL)的 BibTeX 编译
      // 若使用 WSL 系统,注意核实 bibtex 的路径
      "name": "WSL BibTeX",
      "command": "wsl",
      "args": [
        "/usr/local/texlive/2020/bin/x86_64-linux/bibtex",
        "%DOCFILE%"
      ]
    },
    {
      // macOS 或者 Linux 系统的 XeLaTeX 编译
      // 两种操作系统的操作方式相同
      "name": "macOS / Linux XeLaTeX",
      "command": "xelatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "-pdf",
        "%DOCFILE%"
      ]
    },
    {
      // macOS 或者 Linux 系统的 BibTeX 编译
      // 两种操作系统的操作方式相同
      "name": "macOS / Linux BibTeX",
      "command": "bibtex",
      "args": [
        "%DOCFILE%"
      ]
    }
  ],

  // 这是一些编译方案,会出现在 GUI 菜单里
  "latex-workshop.latex.recipes": [
    {
      // 1.1 Windows 系统编译无交叉引用的文档
      //一般指简单的小文档
      //这个选项不太常用,因为绝大多数文章都需要有类似于“如图 x-x 所示”的交叉引用或者参考文献索引
      "name": "1.1 Windows 系统 XeLaTeX 简单编译",
      "tools": [
        "Windows XeLaTeX"
      ]
    },
    {
      // 1.2 Windows 系统编译带有带有交叉引用的文档,最多需要进行四次编译
      "name": "1.2 Windows 系统 Xe->Bib->Xe->Xe 复杂编译",
      "tools": [
        "Windows XeLaTeX",
        "Windows BibTeX",
        "Windows XeLaTeX",
        "Windows XeLaTeX"
      ]
    },
    {
      // 2.1  WSL 系统编译无交叉引用的文档
      "name": "2.1 WSL 系统 XeLaTeX 简单编译",
      "tools": [
        "WSL XeLaTeX"
      ]
    },
    {
      // 2.2 WSL 系统编译带有带有交叉引用的文档,最多需要进行四次编译
      "name": "2.2 WSL 系统 Xe->Bib->Xe->Xe 复杂编译",
      "tools": [
        "WSL XeLaTeX",
        "WSL BibTeX",
        "WSL XeLaTeX",
        "WSL XeLaTeX"
      ]
    },
    {
      // 3.1 macOS / Linux 平台编译无交叉引用的文档
      "name": "3.1 macOS / Linux 系统 XeLaTeX 简单编译",
      "tools": [
        "macOS / Linux XeLaTeX"
      ]
    },
    {
      // 3.2 macOS / Linux 平台编译带有带有交叉引用的文档,最多需要进行四次编译
      "name": "3.2 macOS / Linux 系统 Xe->Bib->Xe->Xe 复杂编译",
      "tools": [
        "macOS / Linux XeLaTeX",
        "macOS / Linux BibTeX",
        "macOS / Linux XeLaTeX",
        "macOS / Linux XeLaTeX"
      ]
    }
  ],

  // 清空中间文件
  "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",
    "*.bcf",
    "*.run.xml"
  ],
  "[latex]": {
    "editor.defaultFormatter": "James-Yu.latex-workshop"
  }
  // ======================== LaTeX 设置 END ========================
}

不出意外的话,你就应该安装、配置成功了。

以后直接在 LaTeX Workshop 面板里单击即可编译。

2.2.3 LaTeX Utilities 插件

插件功能:

  • Formatted Pastes
    • Unicode characters 🡒 LaTeX characters (e.g. “is this… a test” 🡒 ``is this\ldots a test'')
    • Paste table cells (from spreadsheet programs or similar) 🡒 tabular
    • Paste images, customisable template
    • Paste location of CSVs/images to have them included
  • Live Snippets (auto-activating, with regex) see here for documentation
  • Count Words in a LaTeX Document
  • TikZ Preview
  • Zotero citation management

在 VSCode 的扩展管理中,搜索LaTeX Utilities,安装即可。

2.3 Sumatra PDF

VSCode 内置的 PDF 查看器功能比较简单,而且不太方便,而 Adobe Reader 则相对体积大,打开速度慢。Sumatra PDF 小巧强大,启动速度快,作为本方案的 PDF 阅读器最合适不过,而且还可以和源码之间实现定位跳转,弥补 LaTeX「所见非所得」的劣势。

Sumatra PDF 是一款轻量级的 PDF 阅读器,有安装版和便携版两个版本。

2.3.1 下载安装

下载链接为:https://www.sumatrapdfreader.org/download-free-pdf-viewer.html

2.3.2 配置正向搜索(LaTeX -> PDF)

已在2.2.2中配置完成。使用时将光标定位至文本后按下 Ctrl+Alt+J 即可正向搜索。

2.3.3 配置反向搜索(PDF -> LaTeX)

打开 Sumatra PDF,进入设置 -> 选项对话框,在「设置反向搜索命令行」处填入如下内容:

"C:\Users\[用户名]\AppData\Local\Programs\Microsoft VS Code\code.exe" "C:\Users\[用户名]\AppData\Local\Programs\Microsoft VS Code\resources\app\out\cli.js" --ms-enable-electron-run-as-node -r -g "%f:%l"

配置完成后,双击 PDF 中的任意一处即可跳转到 VSCode 中所对应的内容的源代码处。

若选项对话框中没有「设置反向搜索命令行」,则需要进入设置 -> 高级选项,将EnableTeXEnhancements的参数改为True

2.4 Git

Git 是用于 Linux 内核开发的版本控制工具。经常写论文的人都知道,一篇论文需要修改很多遍才能满意,这个过程中就有许多论文版本,比如初稿,终稿,最终版,打死也不改最终版等等版本,版本一多,就需要管理了,不然太乱了。有的时候可能觉得最终版就是最后要交的版本了,可老师突然说上一个版本更好一点,可上一个版本你都删了,或者你也不知道上一个版本是哪一个了,这就很尴尬了。所以写论文时,一个好的版本控制工具就尤为重要了。

2.4.1 下载安装

官网链接:https://www.git-scm.com/download/win,下载完成后按默认配置安装即可。

2.4.2 基本教程

Git的教程很多,质量参差不齐,最适合新手入门的当属下面两份教程:

廖雪峰前辈的《Git教程》:

https://www.liaoxuefeng.com/wiki/896043488029600

黄盼前辈的《Git 学习笔记》:

http://www.huangpan.net/posts/ji-ke/2019-05-12-git-study-notes.html

2.4.3 VS Code 插件

VS Code 自带了终端,所以可以直接在终端里用命令进行 Git 操作。不过刚开始可能不习惯,需要一些图形按钮进行辅助,而且这些插件还加强了 Git 的操作,还是很有必要安装的。

  • GitLens
  • Git History

三、验证配置是否成功

点击此处下载压缩包,解压后打开gougu.tex,由于附带有后缀为.bib的参考文献,所以应使用1.2 Windows 平台 Xe->Bib->Xe->Xe 复杂编译进行编译(请了解 LaTeX 编译过程),编译成功即表明配置成功。

四、一些好用的 LaTeX 辅助工具

五、总结

至此,你就完成 TeX Live + VS Code + LaTeX Workshop + Sumatra PDF + Git 的安装啦,现在你可以试试用 VS Code 编辑 LaTeX 文档并编译出 PDF 文件,再告诉你一些小技巧快捷键吧嘿嘿嘿,祝你写得开心(emmm写论文真的很痛苦…加油!)。

Ctrl+Alt+V-> 打开 PDF 文件

Ctrl+Alt+J-> 正向搜索(即 LaTeX -> PDF)

在 PDF 文件中双击 -> 反向搜索(即 PDF -> LaTeX)

P.S. 安装好 LaTeX 后,来看一下入门教程吧~

P.P.S. 推荐一个简单易用的上海交通大学论文模板,包括学士、硕士、博士学位论文以及普通课程论文,链接:https://github.com/sjtug/SJTUThesis

特别提醒:这个模板需要用到隶书、幼圆等字体,然而 Windows 10 系统默认不含以上两种字体,建议在安装 Microsoft Office 后再使用该模板,因为 Microsoft Office 安装程序会自动安装上述所需字体。

P.P.P.S. 平时写课设报告或者小论文等不必大费周折地使用“上海交通大学论文模板”,使用下面这个模板就足够啦~

 

最后修改:2022 年 10 月 28 日
如果觉得我的文章对你有用,请随意赞赏