1+1=10

记记笔记,放松一下...

LaTeX在VSCode下使用小记

LaTeX应该无需多少介绍。

  • LaTeX 是一种基于 TeX 的排版系统,由 Leslie Lamport 在 1980 年代开发的,广泛用于学术和技术文档的撰写,尤其是在需要复杂公式排版和精密排版的领域,如数学、物理、计算机科学等。
  • TeX 是一种用于高质量排版的计算机语言,由美国计算机科学家 Donald Knuth 于 1978 年开发。它的设计初衷是为了提供一种能够生成精美排版的工具。
  • 有不同的发行版可用,Tex Live、MiKTex、MacTex、proTeXt以及TinyTex等。

简单的Tex文档

这个东西不能去类比Word等软件,可以类比C++等语言。

创建一个简单的文本文档,比如 debao.tex:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
\documentclass{article}
\usepackage{amsmath}

\title{Hello LaTex and VSCode}
\author{1+1=10}
\date{\today}

\begin{document}

\maketitle

\section{Introduction}
Here is an equation:

\[
e^{i\pi} + 1 =0
\]

\end{document}

要将.tex转成pdf文件,需要执行一条编译指令,比如:

1
pdflatex debao.tex

早期的做法是(20年前刚接触latex时)先转成.dvi,而后再转.pdf或.ps格式:

1
2
latex debao.tex
dvipdf debao.dvi

除了pdflatex,还有xelatex、lualatex等工具。如果我们要使用中文的话,最简单就是使用xelatex

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
\documentclass{ctexart}
\usepackage{amsmath}

\title{你好LaTex与VSCode}
\author{1+1=10}
\date{\today}

\begin{document}

\maketitle

\section{简介}
一个简单的方程:

\[
e^{i\pi} + 1 =0
\]

\end{document}

注意文档类使用ctexart、ctexrep、ctexbook取代article、report、book。

编译:

1
xelatex debao_cn.tex

当有目录或交叉引用时,命令需要执行两次或以上。可以用脚本(比如latexmk)、预置菜谱(recipe)或其他方式进行自动化。

相关Tex工具:

  • pdflatex: 将 .tex 文件直接编译为 PDF 文件。最常用的编译器,适合国外大多数场景【因没有Unicode,对中国用户不太友好】。
  • xelatex: 支持 Unicode 编码和 OpenType 字体,适合编写多语言文档或需要使用系统字体的场景。【中文简单】
  • lualatex: 与 xelatex 类似,支持更复杂的字体和图形处理,基于 LuaTeX 引擎。
  • latex + dvipdf: 先将 .tex 文件编译为 DVI(Device Independent File Format)文件,再将 DVI 转换为 PDF 或 PS 格式。【老旧的工作流】
  • bibtex: 一个用于管理文献引用的工具。它通过一个 .bib 文件来存储文献信息,并且可以在 LaTeX 文档中自动生成参考文献列表。
  • latexmk:一个perl脚本,会自动运行多次 LaTeX 编译,直到所有引用、索引和参考文献等问题都得到解决。

在线公式编辑器

有很多在线公式编辑器:

还有一个平台:

LaTeX Workshop 扩展

LaTeX Workshop 是 VS Code 中最流行的 LaTeX 插件,它可以帮助编写、编译 LaTeX 文档,并提供实时预览、语法高亮、自动补全等功能。

只要保证Latex在系统环境变量PATH内,在VS Code中安装LaTex Workshop,就直接可以用了。

  • 文件:新建.tex,并编写内容。确保在编译之前 .tex 文件已保存 (Ctrl+S 或 Cmd+S)。
  • 编译:按下 Ctrl+Alt+B(Windows/Linux)或 Cmd+Alt+B(macOS),触发 LaTeX Workshop 的编译命令。默认情况下,它会使用 pdflatex 进行编译,并生成一个 PDF 文件。
  • 预览 PDF:编译完成后,LaTeX Workshop 会自动在 VS Code 中显示生成的 PDF 文件。如果没有自动显示,可以点击右上角的 LaTeX Workshop 面板图标 来手动打开 PDF 预览窗口。

自定义配置

用于熟悉vscode,记录一下

LaTeX Workshop 支持多种编译器,如 pdflatex、xelatex、lualatex 等。通过修改 VS Code 的设置文件 (settings.json),我们可以根据需要自定义编译命令:

  • 在 VS Code 中,打开命令面板(Ctrl+Shift+P 或 Cmd+Shift+P),在搜索框中输入 Preferences: Open Settings (JSON) 来选择它。
  • 在打开的 settings.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
  // 定义工具链(编译器)
  "latex-workshop.latex.tools": [
    {
      "name": "pdflatex",
      "command": "pdflatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
    },
    {
      "name": "xelatex",
      "command": "xelatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
    },
    {
      "name": "lualatex",
      "command": "lualatex",
      "args": [
        "-synctex=1",
        "-interaction=nonstopmode",
        "-file-line-error",
        "%DOC%"
      ]
    },
    {
      "name": "bibtex",
      "command": "bibtex",
      "args": [
        "%DOCFILE%"
      ],
      "env": {}
    }
  ],
  // 定义编译配方(recipes)
  "latex-workshop.latex.recipes": [
    {
      "name": "pdflatex",
      "tools": [
        "pdflatex"
      ]
    },
    {
      "name": "xelatex",
      "tools": [
        "xelatex"
      ]
    },
    {
      "name": "lualatex",
      "tools": [
        "lualatex"
      ]
    },
    {
      "name": "pdflatex ➞ bibtex ➞ pdflatex`×2",
      "tools": [
        "pdflatex",
        "bibtex",
        "pdflatex",
        "pdflatex"
      ]
    },
  ]

latex-workshop.latex.tools:这个配置项定义了可用的工具(即编译器),例如 pdflatex、xelatex、lualatex。每个工具都有一个名称(name)和对应的命令(command),以及传递给命令的参数(args)。

latex-workshop.latex.recipes:这个配置项定义了编译的 "食谱"(recipes),即在编译时要调用哪些工具。每个 recipe 都会指定一个或多个工具

要使用自定义工具:

  • 按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)打开命令面板。
  • 输入并选择 LaTeX Workshop: Build with recipe。
  • 弹出的菜单,会列出前面在 latex-workshop.latex.recipes 中定义的编译器选项(pdflatex、xelatex、lualatex)。
  • 直接选择需要的编译器,而后VS Code 使用选择的编译器进行编译。

如果要固定使用一个,可以在配置文件内配置:

1
"latex-workshop.latex.recipe.default": "xelatex"

或者

1
"latex-workshop.latex.recipe.default": "lastUsed"

VSCode、TexXworks、TeXstudio

这三个可以简单对比一下:VS Code 在灵活性和多语言支持上强于 TeXworks,但在 LaTeX 专用功能和集成方面略逊于 TeXstudio。

特性/方面 VS Code + LaTeX Workshop TeXworks TeXstudio
平台支持 Windows, macOS, Linux Windows, macOS, Linux Windows, macOS, Linux
安装与配置难度 中等,需安装 LaTeX Workshop 插件并进行配置 低,开箱即用 低,开箱即用
界面现代化程度 现代化,支持自定义主题和 UI 简单且基础 相对传统,功能丰富但界面较老旧
LaTeX 功能集成 通过插件支持,功能较强但需配置 基础功能集成,适合初学者 专为 LaTeX 设计,功能全面
PDF 预览 内置 PDF 预览,支持 SyncTeX 内置 PDF 预览,支持 SyncTeX 内置 PDF 预览,支持 SyncTeX
语法高亮与自动补全 支持语法高亮和自动补全,需插件 支持基础的 LaTeX 语法高亮 支持语法高亮、自动补全以及命令建议
项目管理支持 强,支持多文件、多项目工作流 无项目管理功能 支持基本的 LaTeX 文档结构和多文件管理
自动编译 通过插件支持(可配置) 需要手动编译 支持自动编译功能
错误提示与调试 提供详细的编译错误提示,需插件 提供基础的错误提示 提供详细的错误提示和定位功能
模板支持 通过插件或手动配置 无内置模板支持 内置丰富的模板库
扩展性与插件支持 高度可扩展,拥有丰富的插件生态系统 扩展性有限,无法安装插件 扩展性有限,但自带大量 LaTeX 功能
版本控制 支持 Git 集成,强大的版本控制功能 不支持 Git 集成 不支持 Git 集成
适用人群 需要多语言支持和自定义工作流的用户 LaTeX 初学者,简单文档需求 LaTeX 进阶用户,复杂文档管理

参考

  • https://github.com/James-Yu/LaTeX-Workshop
  • https://www.tug.org/texlive/
  • https://miktex.org/
  • https://mathjiajia.github.io/vscode-and-latex/
  • https://jdhao.github.io/2018/03/29/latex-chinese.zh/