转载自:VS Code与Latex从下载到写论文(2020) - 知乎 (zhihu.com)

Contents

1.准备工作

2.TeX Live 2019下载、安装

3.VSCode下载、安装

4.安装LaTeX Workshop插件

5.JSON基本设置

6.正向检索

7.反向检索

8.双向检索使用方法

1

准备工作:

为了搭建 LaTeX 工作环境,需要安装:

  • TeX Live 或者 MiKTeX (本文以 TeX Live 2019 为例)
  • Visual Studio Code (!!博主建议安装1.61以下版本,因为1.62不能实现双向检索)
  • LaTeX Workshop (VS Code 插件)
  • SumatraPDF 阅读器(可选,用于预览 PDF)

2

TeX Live 2019下载、安装

首先,我们进入TeX Live 的官方站点:https://www.tug.org/texlive/,有两种安装方式

Download安装:

网络好的点击download,会有一个exe,打开安装猛点“下一步”就完事(需要联网安装

img

DVD安装:

点download下载不下来的可以试试on DVD那个选项,会下载一个镜像文件,win10可以直接打开,win7之类的需要挂载(类似“读碟”)

img

img

img

img

以管理员身份运行后缀是“.bat”的那个文件,安装过程类似,但不再需要联网


SumtraPDF比自带的阅读器好用一点,但不是必要的

在上述软件/插件安装之后,你需要把 TeX Live 的 bin 目录(C:\Program Files\texlive\2019\bin\win32)添加到系统环境变量(PATH)中,如果你下载了Sumtra,还需要添加它的路径(C:\Program Files\SumatraPDF)【这是默认路径,如果你修改了路径则填入修改后的】

Win10 中将路径添加到环境变量中的步骤如下:右键我的电脑,然后选择 属性,在左侧选择 高级系统设置,然后选择下方的 环境变量,选择变量 Path 编辑,将需要添加的路径添加进去即可

3

VSCode下载、安装

1)在浏览器地址栏输入https://code.visualstudio.com/进入到 VSCode官网 首页;

img

请根据自己的操作系统下载,安装也没什么难度,没特别需求可以一切默认,不再赘述

4

安装LaTeX Workshop插件

在左侧点击扩展按钮(KEY:Ctrl+Shift+X),然后搜索插件名字 LaTeX Workshop,选择安装即可。

img

简单地来讲,你已经可以用这些东西写论文了,新建一个结尾为.tex的文件,你可以试试下面这一段

1
2
3
4
\documentclass{article}
\begin{document}
Hello, world!
\end{document}

ctrl+alt+b编译,按理说pdf会自动弹出来。如果没弹出来ctrl+alt+v看pdf

DONE!


你可能会奇怪,为什么网上搜出来的教程都要配置很长很长一段配置文件,而且往往还不好使,因为一篇完整的论文是有Reference(参考文献)的,而这部分一般会写进另一个叫.bib的文件中,当你要同时编译两个文件的时候,就需要用到那些乱七八糟的配置了

还有就是长论文可能用到的正向检索和反向检索:点击代码可以直接在pdf中定位到文字,点击文字可以定位到对应的代码

如果你需要用到这些,请接着往下看

5

JSON基本设置

VS Code 默认添加了3 个编译工具(tools):分别是latexmk,pdflatex 和bibtex(所有的工具只编译一次)

为了添加其他的编译方式(比如xelatex),我们需要修改LaTeX Workshop 的配置。打开LaTeX Workshop 配置的方法如下:在VS Code 界面左下角,点击齿轮按钮,选择设置

img

然后在屏幕右上角找到文件上一个箭头的标志

下面是我个人的设置,我也没全搞懂每句话干嘛的,不过2020.02.18测试可用。注意,所有下面的代码请用一组大括号{}框进去

img

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
"latex-workshop.showContextMenu": true, //右键菜单
"latex-workshop.intellisense.package.enabled": true, //根据加载的包,自动完成命令或包
"latex-workshop.latex.autoBuild.run": "never", //禁止保存文件时自动build
"latex-workshop.latex.recipes": [
{
"name": "PDFLaTeX",
"tools": ["pdflatex"]
},
{
"name": "PDFLaTeX with Shell Escape",
"tools": ["pdflatex-with-shell-escape"]
},
{
"name": "XeLaTeX",
"tools": ["xelatex"]
},
{
"name": "XeLaTeX with Shell Escape",
"tools": ["xelatex-with-shell-escape"]
},
{
"name": "pdflatex -> bibtex -> pdflatex*2",
"tools": ["pdflatex", "bibtex", "pdflatex", "pdflatex"]
},
{
"name": "xelatex -> bibtex -> xelatex*2",
"tools": ["xelatex", "bibtex", "xelatex", "xelatex"]
},
{
"name": "LaTeXmk",
"tools": ["latexmk"]
},
{
"name": "BibTeX",
"tools": ["bibtex"]
}
],
"latex-workshop.latex.tools": [
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOCFILE%"
],
"env": {}
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
],
"env": {}
},
{
"name": "pdflatex-with-shell-escape",
"command": "pdflatex",
"args": [
"--shell-escape",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
],
"env": {}
},
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
],
"env": {}
},
{
"name": "xelatex-with-shell-escape",
"command": "xelatex",
"args": [
"--shell-escape",
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
],
"env": {}
},
{
"name": "bibtex",
"command": "bibtex",
"args": ["%DOCFILE%"],
"env": {}
}
],
"latex-workshop.latex.clean.fileTypes": [
//设定清理文件的类型(ctrl+alt+c:清除辅助文件)
"*.aux",
"*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk",
"*.nav",
"*.snm",
"*.synctex.gz",
"*.bcf",
"*.run.xml"
],

接下来你可以用一个范例文件测试一下配置好了没

tex:https://ddswhu.me/posts/archive/content.tex

bib:https://ddswhu.me/posts/archive/info.bib

两个文件下载到同一个文件夹中,打开tex文件,点左侧边栏的TEX中的第一项,中的这个

img

编译完,如果pdf没打开,按ctrl+alt+v,正常情况下会看大如下内容

img

如果bib文件没下载,Reference会显示不出来,如果编译出错,就是设置的代码有错误(仿佛看到程序员的日常:写Bug)

如果成功运行,恭喜你,含bib文件的tex以后就这么编译,不含的就直接ctrl+alt+b就完事

DONE AGAIN!


什么?你说你还想要正向检索、反向检索?。。。

那继续往下看吧,下面这一段我自己都有点整不明白,大家也就凑合着依葫芦画瓢吧

这个功能最好配合SumatraPDF使用

SumatraPDF官方下载地址:

https://www.sumatrapdfreader.org/download-free-pdf-viewer.html

6

正向检索

大括号{}内加入以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 设置预览方式
"latex-workshop.view.pdf.viewer": "external",
"latex-workshop.view.pdf.ref.viewer": "external",
// 设置外部PDF预览器
"latex-workshop.view.pdf.external.viewer.command": "C:/Program Files/SumatraPDF/SumatraPDF.exe",
"latex-workshop.view.pdf.external.viewer.args": ["%PDF%"],
// 配置Syntex的正向搜索(Latex->PDF)
"latex-workshop.view.pdf.external.synctex.command": "C:/Program Files/SumatraPDF/SumatraPDF.exe",
"latex-workshop.view.pdf.external.synctex.args": [
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
"D:/Soft/Microsoft VS Code/Code.exe D:/Soft/Microsoft VS Code/resources/app/out/cli.js -r -g %f:%l",
"%PDF%"
],

注意,将其中的路径替换成你自己的!

7

反向检索

打开 SumatraPDF,进入设置->选项->设置反向搜索命令行,设置反向搜索命令行,同样注意文件路径:(一行,不是两行!)

1
"D:/Soft/Microsoft VS Code/Code.exe" "D:/Soft/Microsoft VS Code\resources\app\out\cli.js" -g "%f":%l

img

如果没看到这一栏,可能是第一次设置,则进入“设置->选项->高级设置”,添加如下一行,同样注意文件路径:(一行,不是两行!)

1
InverseSearchCmdLine = "D:/Soft/Microsoft VS Code/Code.exe" "D:/Soft/Microsoft VS Code\resources\app\out\cli.js" -g "%f":%l

8

双向检索使用方法

正向检索的使用:

将光标移动到TeX文件的正文。ctrl+alt+x,找到”navigator,select and edit”,点击第一项”syncTeX from cursor”(或右键选择,或快捷键ctrl+alt+j),会切换到PDF文件的相应位置并高亮显示。

img

反向检索的使用:

打开一个已经编译的TeX文件,ctrl+alt+v打开PDF文件。在PDF文件中的某行文字处,双击鼠标左键,会切换到了源文件的相应行。如果点击的是公式、图等,可能不会正确返回。

如果不成功,检查路径设置,或者文件名错误。正反向搜索用到了.synctex.gz文件,不能删除。

补充一些快捷键:

ctrl+k ctrl+a: 切换活动栏可见性(左侧图标开关)

ctrl+alt+x:显示LaTeX面板(左侧编译命令面板和文档大纲)。

ctrl+alt+c:清除辅助文件(如果你要用双向检索,需要保留gz文件)

ctrl+alt+j:正向检索。当设置”latex-workshop.view.pdf.viewer”: “tab”;时,在LaTeX源文件中按下快捷键,定位到PDF文档相应位置