LaTeX和VSCode简介

LaTeX是一款优秀的文档准备系统,它将内容与格式分开,使得创作者可以专注于内容本身的创作。基于它可以很容易地生成各类复杂表格和数学公式,得到高质量排版的作品。因此非常适合生成高印刷质量的科技类和数学类文档。LaTeX很容易生成复杂的专业排版元素,且具有强大的可扩展性,是跨平台、免费、开源的。

而VS Code是一款运行于Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的跨平台源代码编辑器。该编辑器支持多种语言和文件格式的编写,且具有较高的便捷性与高颜值,是一款强大又好用好看的现代编辑器。

而将这两者组合使用能带来极为强大的文档创作效果,本专栏将简单介绍相关内容及配置。

LaTex获取与安装

关于LaTeX,在这里推选texlive,占用空间较大,但不用后期再补下库。

Texlive阿里云镜像:https://mirrors.aliyun.com/CTAN/systems/texlive/Images/

如果不介意在线LaTeX的话,也可以去了解一下overleaf

一款在线的LaTeX编辑网站:https://www.overleaf.com/

A002-1.webp

点击下载那个4.1G的iso文件就是了

加载iso文件后,打开其中的install-tl-windows.bat批处理文件。在GUI中选择安装路径,并按下左下角的“Advanced”按键-“Customize”,进入高级安装来取消你不需要安装的宏包,还可以选择是否安装 TeXworks 编辑器。

(取消大部分的小语种语言包可以节省很大的空间)

然后点击安装,其过程需要一顿午饭到一部电影的时间,请耐心等待。

VS Code获取与安装

相信各位做前端和UIS的同志们已经很熟悉这款软件了,VS Code的下载安装相对小白。

VSCode的官网下载地址:https://code.visualstudio.com/Download

相关安装过程就略去了,请记住安装路径。

Sumatra PDF阅读器的获取与安装

在后面编译预览PDF时可能会用上,是一款小型的PDF阅读软件。

Sumatra的官方网站:https://www.sumatrapdfreader.org/free-pdf-reader

相关安装过程就略去了,请记住路径。

对VS Code进行LaTeX相关的配置

首先要在左边栏的“扩展”里搜索如下图所示的两个包,第一个是中文语言包,第二个就是LaTeX的工作插件包,找到它们并安装,然后重启VS Code更新设置。

A002-2.webp

安装这俩包也许就够了

接着在VS Code界面按下F1,然后输入“setjson”,点击“首选项: 打开设置(JSON)”。

A002-3.webp

注意是第一个!

可以在打开的文件中看见一个大括号,请把下列配置代码粘贴到大括号的内部,并且不要忘了在原来的条目后面补上一个逗号。

A002-4.webp

就是在行3的最后补一个逗号,再粘贴上配置代码

这一大坨配置代码如下:

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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
// ======================== LaTeX 设置 BEGIN  ========================
// bibtex 格式
"latex-workshop.bibtex-format.tab": "tab",

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

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

// 配置正向、反向搜索:.tex -> .pdf
"latex-workshop.view.pdf.external.synctex.command": "C:/Users/Administrator/AppData/Local/SumatraPDF/SumatraPDF.exe", // 注意修改路径
"latex-workshop.view.pdf.external.synctex.args": [
// 正向搜索
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
// 反向搜索
"-inverse-search",
"\"C:/Users/Administrator/AppData/Local/Programs/Microsoft VS Code/Code.exe\" \"C:/Users/Administrator/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js\" -gr %f:%l",
"%PDF%"
],

// 这是一些独立的编译选项,可以作为工具被编译方案调用
"latex-workshop.latex.tools": [
{
// Windows 原生安装 TeX Live 2020 的编译选项
"name": "Windows XeLaTeX",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"%DOCFILE%"
]
},
{
// Windows Biber 编译
"name": "Windows Biber",
"command": "biber",
"args": [
"%DOCFILE%"
]
},
{
// 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%"
]
},
{
// WSL biber / bibtex 编译带有 citation 标记项目的文档
"name": "WSL Biber",
"command": "wsl",
"args": [
"/usr/local/texlive/2020/bin/x86_64-linux/biber",
"%DOCFILE%"
]
},
{
// macOS 或者 Linux 的简单编译
// 两种操作系统的操作方式相同
"name": "macOS / Linux XeLaTeX",
"commmand": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"%DOCFILE%"
]
},
{
// macOS 或者 Linux 的索引编译
// 两种操作系统的操作方式相同
"name": "macOS / Linux Biber",
"command": "biber",
"args": [
"%DOCFILE%"
]
}
],

// 这是一些编译方案,会出现在 GUI 菜单里
"latex-workshop.latex.recipes": [
{
// 1.1 Windows 编译简单的小文档,这个选项不太常用,因为绝大多数文章都需要有参考文献索引
"name": "Windows XeLaTeX 简单编译",
"tools": [
"Windows XeLaTeX"
]
},
{
// 1.2 Windows 编译带有索引的论文,需要进行四次编译;-> 符号只是一种标记而已,没有程序上的意义
"name": "Windows xe->bib->xe->xe 复杂编译",
"tools": [
"Windows XeLaTeX",
"Windows Biber",
"Windows XeLaTeX",
"Windows XeLaTeX"
]
},
{
// 2.1 WSL 编译简单的小文档,这个选项不太常用,因为我绝大多数文章都需要有引用。
"name": "XeLaTeX 简单编译",
"tools": [
"WSL XeLaTeX"
]
},
{
// 2.2 带有 citation 索引的文档,需要进行四次编译;-> 符号只是一种标记而已,没有程序上的意义
"name": "xe->bib->xe->xe 复杂编译",
"tools": [
"WSL XeLaTeX",
"WSL Biber",
"WSL XeLaTeX",
"WSL XeLaTeX"
]
},
{
// 3.1 macOS 简单 小文档
"name": "macOS XeLaTeX 简单编译",
"tools": [
"macOS XeLaTeX"
]
},
{
// 3.2 macOS 四次编译
"name": "macOS xe->bib->xe->xe 复杂编译",
"tools": [
"macOS / Linux XeLaTeX",
"macOS / Linux Biber",
"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",
"*.synctex.gz"
]
// ======================== LaTeX 设置 END ========================

随手贴一个云链备用
链接:https://pan.baidu.com/s/1ndD3f2T1xYuz4SHffmRd9w
提取码:f2kj

然后对行12的”latex-workshop.view.pdf.external.viewer.command”以及行18的”latex-workshop.view.pdf.external.synctex.command”后面的外置PDF阅读器路径设置为Sumatra的路径。(行数仅供参考)

再把反向搜索”-inverse-search”下的路径更改为你自己VSCode的相关路径(行27一行有两个哦)

如果不会的话可以结合这个视频来修改:https://www.bilibili.com/video/BV1AK4y1p77G/

最后再保存并重启VSCode以更新配置,这样就完成对VSCode的LeTeX配置了。

使用VSCode进行LaTeX编译

打开你自己的tex文件,在左边栏会出现一个“Tex”字样的按键,点击进入LaTeX菜单。

A002-5.webp

LaTex菜单

其中“Build LaTeX project”就是编译按钮,按下等编译完毕后,再点击“View LaTeX PDF”,会有好几种PDF的查看方式,请自行选择。

A002-6.webp

一般用这三种

总结

到这里关于使用VSCode进行LaTeX编译的部分就结束了,关于LaTeX的书写使用规则可以参考《一份不太简短的LaTeX介绍》:https://github.com/CTeX-org/lshort-zh-cn

最后附上一个还不错的LaTeX公式在线编辑网站:https://latex.codecogs.com/eqneditor/editor.php

具体的编写规则一开始上手会非常烦,但一旦上手以后,效率会非常高。