跳转至

安装


1 TeX Live 下载安装

  1. 搜索 TeX Live 并下载 .iso 文件(选择比较快的镜像)
  2. 下载 .iso 文件之后双击打开,以管理员身份运行其中的 install-tl-windows.bat 文件进行安装(等待时间较长,当时装了将近一小时)

  3. 耐心等待安装完成以后,可以 win+r 运行 cmd,在其中输入 xelatex -v​,如果输出版本信息,代表安装成功

2 VS Code 配置

2.1 插件

LaTeX Workshop

2.2 在 settings.json 里设置

2.2.1 完整设置 json

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
{
  // 当设置为"never"时,禁用了保存LaTeX文档时自动编译的功能。
  "latex-workshop.latex.autoBuild.run": "never",

  // 启用VS Code编辑器中的LaTeX文件右键菜单。
  "latex-workshop.showContextMenu": true,

  // 启用LaTeX Workshop的智能感知功能,包括代码自动完成、参数信息等。
  "latex-workshop.intellisense.package.enabled": true,

  // 禁用错误信息在编辑器中的显示。
  "latex-workshop.message.error.show": false,

  // 禁用警告信息在编辑器中的显示。
  "latex-workshop.message.warning.show": false,

  // 定义了LaTeX编译工具的配置,包括工具名称、命令和参数。
  "latex-workshop.latex.tools": [
    {
      "name": "xelatex", // 工具名称:xelatex
      "command": "xelatex", // 执行的命令
      "args": [ // 命令参数
        "-synctex=1", // 启用同步TeX,方便在PDF和源文件之间跳转
        "-interaction=nonstopmode", // 设置为非停止模式,编译时不中断
        "-file-line-error", // 显示错误的文件名和行号
        "%DOCFILE%" // 代表当前文档的路径
      ]
    },
    {
      "name": "pdflatex", // 工具名称:pdflatex
      "command": "pdflatex",
      "args": [ // 命令参数,与xelatex类似
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOCFILE%"
      ]
    },
    {
      "name": "latexmk", // 工具名称:latexmk
      "command": "latexmk",
      "args": [ // 命令参数,latexmk特有的参数
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "-pdf", // 生成PDF输出
        "-outdir=%OUTDIR%", // 输出目录,%OUTDIR%为占位符
        "%DOCFILE%"
      ]
    },
    {
      "name": "bibtex", // 工具名称:bibtex
      "command": "bibtex",
      "args": [ // 命令参数
        "%DOCFILE%" // 代表当前文档的路径,用于处理参考文献
      ]
    }
  ],

  // 定义了LaTeX编译流程的名称和使用的编译工具序列。
  "latex-workshop.latex.recipes": [
    {
      "name": "XeLaTeX", // 编译流程名称:单独使用XeLaTeX
      "tools": ["xelatex"] // 使用的工具
    },
    {
      "name": "PDFLaTeX", // 编译流程名称:单独使用PDFLaTeX
      "tools": ["pdflatex"]
    },
    {
      "name": "BibTeX", // 编译流程名称:单独使用BibTeX
      "tools": ["bibtex"]
    },
    {
      "name": "LaTeXmk", // 编译流程名称:使用latexmk
      "tools": ["latexmk"]
    },
    {
      "name": "xelatex -> bibtex -> xelatex*2", // 编译流程名称:xelatex + bibtex + 两次xelatex
      "tools": ["xelatex", "bibtex", "xelatex", "xelatex"]
    },
    {
      "name": "pdflatex -> bibtex -> pdflatex*2", // 编译流程名称:pdflatex + bibtex + 两次pdflatex
      "tools": ["pdflatex", "bibtex", "pdflatex", "pdflatex"]
    }
  ],

  // 定义了编译过程中生成的临时文件类型,这些文件在清理时会被删除。
  "latex-workshop.latex.clean.fileTypes": [
    "*.aux", "*.bbl", "*.blg", "*.idx", "*.ind", "*.lof", "*.lot",
    "*.out", "*.toc", "*.acn", "*.acr", "*.alg", "*.glg", "*.gls",
    "*.glo", "*.ist", "*.fls", "*.log", "*.fdb_latexmk"
    // 这些文件类型包含了LaTeX编译过程中生成的各种辅助文件
  ],

  // 设置在编译失败时自动清理临时文件。
  "latex-workshop.latex.autoClean.run": "onFailed",

  // 设置默认使用上次使用的编译流程。
  "latex-workshop.latex.recipe.default": "lastUsed",

  // 设置PDF查看器中同步TeX的快捷键为双击。
  "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click"
}

2.2.2 设置 VS Code 编辑器格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
  // 当设置为"never"时,禁用了保存LaTeX文档时自动编译的功能。
  "latex-workshop.latex.autoBuild.run": "never",

  // 启用VS Code编辑器中的LaTeX文件右键菜单。
  "latex-workshop.showContextMenu": true,

  // 启用LaTeX Workshop的智能感知功能,包括代码自动完成、参数信息等。
  "latex-workshop.intellisense.package.enabled": true,

  // 禁用错误信息在编辑器中的显示。
  "latex-workshop.message.error.show": false,

  // 禁用警告信息在编辑器中的显示。
  "latex-workshop.message.warning.show": false,

2.2.3 定义 LaTeX 编译工具的配置

1
2
3
4
// 定义了LaTeX编译流程的名称和使用的编译工具序列。
  "latex-workshop.latex.recipes": [
    ...
],
2.2.3.1 xelatex

提供 Unicode 支持。

Unicode 为所有字符添加唯一的数字标识,适合处理复杂的文本和字体,中文文档

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
    {
      "name": "xelatex", // 工具名称:xelatex
      "command": "xelatex", // 执行的命令
      "args": [ // 命令参数
        "-synctex=1", // 启用同步TeX,方便在PDF和源文件之间跳转
        "-interaction=nonstopmode", // 设置为非停止模式,编译时不中断
        "-file-line-error", // 显示错误的文件名和行号
        "%DOCFILE%" // 代表当前文档的路径
      ]
    },
2.2.3.2 pdflatex

传统 LaTeX 宏包和文档类,适合处理大多数英文文档

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
    {
      "name": "pdflatex", // 工具名称:pdflatex
      "command": "pdflatex",
      "args": [ // 命令参数,与xelatex类似
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOCFILE%"
      ]
    },
2.2.3.3 latexmk

可以实现自动化编译 LaTeX 文档

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
    {
      "name": "latexmk", // 工具名称:latexmk
      "command": "latexmk",
      "args": [ // 命令参数,latexmk特有的参数
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "-pdf", // 生成PDF输出
        "-outdir=%OUTDIR%", // 输出目录,%OUTDIR%为占位符
        "%DOCFILE%"
      ]
    },
2.2.3.4 bibtex

处理 LaTeX 文档中的参考文献

1
2
3
4
5
6
7
    {
      "name": "bibtex", // 工具名称:bibtex
      "command": "bibtex",
      "args": [ // 命令参数
        "%DOCFILE%" // 代表当前文档的路径,用于处理参考文献
      ]
    }

2.2.4 设置编译链

如设计中英文以及参考文献,则需要进行多次不同命令的转换编译。

因此设置编译链可以实现一键编译,避免多次操作。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  // 定义了LaTeX编译流程的名称和使用的编译工具序列。
  "latex-workshop.latex.recipes": [
    {
      "name": "XeLaTeX", // 编译流程名称:单独使用XeLaTeX
      "tools": ["xelatex"] // 使用的工具
    },
    {
      "name": "PDFLaTeX", // 编译流程名称:单独使用PDFLaTeX
      "tools": ["pdflatex"]
    },
    {
      "name": "BibTeX", // 编译流程名称:单独使用BibTeX
      "tools": ["bibtex"]
    },
    {
      "name": "LaTeXmk", // 编译流程名称:使用latexmk
      "tools": ["latexmk"]
    },
    {
      "name": "xelatex -> bibtex -> xelatex*2", // 编译流程名称:xelatex + bibtex + 两次xelatex
      "tools": ["xelatex", "bibtex", "xelatex", "xelatex"]
    },
    {
      "name": "pdflatex -> bibtex -> pdflatex*2", // 编译流程名称:pdflatex + bibtex + 两次pdflatex
      "tools": ["pdflatex", "bibtex", "pdflatex", "pdflatex"]
    }
  ],