![e6c79f71029b17bcb5149a42afccf643.png](https://i-blog.csdnimg.cn/blog_migrate/1fd67ffa3f784e348a3a1e3ca6dbc5dc.jpeg)
文章首发于:https://colainlibrary.com/archives/f7fcf26c.htmlcolainlibrary.com
转载请注明出处。
0 前言
对于要写论文的科研人员来说,LaTeX是必不可少的神兵利器,但是LaTeX自带的TeX编辑器界面不够美观,之前用过TeX Studio,个人感觉还比较好用。但对于已经深陷Emacs快捷键不能自拔的我来说,当然还是VS Code更香!本文所用软件环境为:Windows + VS Code + LaTeX Workshop8.9.0 + TeXLive2020 + SumatraPDF。
哦,我还想说一点,对于一个新的VS Code用户来讲,如何打开VS Code的配置文件(settings.json)都是一个问题,好不容易打开了,照着网上好多的教程一顿操作,发现并不能用。(别问我怎么知道的,说多了都是泪...)Anyway,在这里,你可以学到最详细的配置方法。
1 软件安装
1.1 VS Code安装
这个直接从官网上下载就好,比较简单,就不介绍啦~
1.2 TeXLive2020安装
1.2.1 下载
如果说你还不明白CTeX、LaTeX、TeXLive之间的关系,那我悄悄地告诉你,你装TeXLive就好了。如果你还想了解它们之间的关系,知乎上有大量的入门介绍,我就不再废话了。TeXLive已经更新到了2020版,为了高速下载TeXLive,可以从清华的镜像源下载,网址是https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/。点进去之后下载下图中红色框圈出的版本即可。
![1c584e950d62b94f41817355b6573f41.png](https://i-blog.csdnimg.cn/blog_migrate/5c499e88e6eb744c1fc927d56c3d9836.jpeg)
1.2.2 安装
TeXLive2020的安装,相较于我曾经用的旧版本来说,可以说是非常简单了。将安装包解压之后,双击下图中标出的install-tl-windows,一路点击下一步即可。
![81cc3e59590c8a1879ca02fe465ad20d.png](https://i-blog.csdnimg.cn/blog_migrate/20c5253f0a4c9d10eccf10ff844fd403.jpeg)
1.3 LaTeX Workshop插件安装
安装好TeXLive后,在VS Code的插件商店中搜索latex,安装出现的第一个插件LaTeX Workshop,当前版本是8.9.0。这个插件的作用是将.tex
格式的文件语法高亮,并通过它来沟通LaTeX,完成相应的编译、预览等工作。
1.4 SumatraPDF安装
1.4.1 介绍
SumatraPDF是一个非常迷你的PDF阅读器,安装包只有大约9M的大小。我们用它来干嘛呢?当然是预览LaTeX生产的PDF咯。为什么不用自带的呢?有两点原因:第一,因为笔记本屏幕小,用自带的,源码和PDF预览就会各占一半屏幕,无论调节哪个,都会让另一个显示不全;第二,使用这个小的PDF阅读器,可以实现从.tex
文件中的光标跳转到PDF文件中,从PDF文件的位置双击鼠标回跳到源码处。
1.4.2 下载与安装
SumatraPDF可以从官网下载,安装方式也很简单,不再赘述。
2 VS Code的设置方法
2.1 已踩过的坑
LaTeX Workshop就是沟通VS Code与LaTeX的桥梁,与其说是VS Code的设置,不如说是LaTeX workshop的设置方法。网上有很多配置方法,上来就让修改settings.json这个配置文件,对于新用户来讲,他哪知道如何打开这个文件。有的说,通过Ctrl+Shift+P
可以在VS Code中搜索,但是搜索到后,打开的是default settings.json文件,这个文件是只读文件。如果你从电脑中搜索到settings.json这个文件打开,将相应的配置代码复制进去,我不知道你们是什么结果,反正我的是不能使用,因为复制进去之后都会有黄线警告。那么究竟如何才能正确配置呢?赏杯咖啡就告诉你啊~
2.2 VS Code编辑.tex初尝试
安装好软件后,我们打开Elsevier的模板,打开cas-dc-template.tex文件,.tex
格式的文件即Latex的源码文件。如下所示:
![267b1cd64623586d356b0a58c50c943c.png](https://i-blog.csdnimg.cn/blog_migrate/96f7199af4e5798dbf9cb050960c313c.jpeg)
在上图中,可以看到侧边栏多了TEX图标,点开,如下:
![994dd9af636add51bc3b2362bb478830.png](https://i-blog.csdnimg.cn/blog_migrate/477fbec4711e628c910d21daa972ded4.png)
如果你已经跃跃欲试,那就点击Recipe:pdflatex→bibtex→pdflatex x2进行编译吧,编译完后,再点击View in VSCode tab就可以看到编译好的PDF了。
![d28d10040ce14719404b35dfca1323dc.png](https://i-blog.csdnimg.cn/blog_migrate/63e9d500bfd5b8dd23b6749a4b0608a1.jpeg)
Tip: 在PDF页面中Ctrl+单击可以跳转到源文件相应的位置哦~
一般来讲,LaTeX装好后默认的编译方式是pdflatex,但是这种方式不能编译中文源码。对于中文源码,采用的是xelatex的编译方式。对于编译中文文档有两种方式,第一种:在中文源文件首行添加:% !TEX program = xelatex
,如果有参考文献,可以再添加% !BIB options = "%DOCFILE%"
。显然,这个操作不够智能,因此,我们第一步是,添加xelatex的编译方式(2.3节)。
上述编译的方法来自官方Compile解释.
![80028c1bc7858cc90e000342191d19c2.png](https://i-blog.csdnimg.cn/blog_migrate/9d1c199af2c4fb5878fced54923705f7.jpeg)
从上面VS Code中预览PDF可以看到,整块屏幕被三分天下,左边的编译之类的提示可以再点一下TEX
关掉,但是tex文档和PDF预览两个同时存在,无论调节哪一个,小小的笔记本屏幕都无法同时满足二者清晰呈现。因此我们需要在外面链接一个PDF阅读器(2.4节)。
2.3 编译方式的配置
从VS Code中左下角的齿轮,打开设置。
![9c2a7ae5b2e761d245544c4837c7d635.png](https://i-blog.csdnimg.cn/blog_migrate/34f8a8b053fde31d8e6924fece8529ba.png)
在打开设置后的页面中,搜索tool,找到Latex-workshop>Latex:Tools,如下图所示。
![2fa36e1623c990fe753a99ca21de40cf.png](https://i-blog.csdnimg.cn/blog_migrate/d5c3b8be916b71c287a7eee1b679d6ce.jpeg)
点击上图中的在settings.json中编辑,打开后如下图所示。
![456fbb0f82c36da9552bdf528d9cb642.png](https://i-blog.csdnimg.cn/blog_migrate/ac6256693b448741a02d612c8a448baf.png)
OK,恭喜一下自己吧,终于成功打开了正确的settings.json文件。你可以看到,上图中的latex-workshop.latex.tools是没有黄色波浪线提示警告的,完美!
事实上,从网上看到的各位大佬的settings.json配置文件源码都是Latex Workshop中的一个个配置的组合。这里建议,你从VS Code的设置页面中搜索到他们配置源码前的配置项名称,如果下方有在settings.json中编辑的选项,点进去就可以进入配置文件。如果没有,直接在下方的输入一些字符或者添加一两项,然后再点到配置文件settings.json中,会发现,这个配置项的名称已经加载到了配置文件中,这时可以对照着网上的一些教程修改这个配置项中的内容,不建议将配置项的文件名称复制进去,这样会有警告,无法使配置生效。这才是打开settings.json的正确姿势。
上图中红框的代码就是用来编译中文源码的工具,具体如下:
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
添加上xelatex工具后,再从设置中搜索recipe
,再次进入settings.json,在latex-workshop.latex.recipes
中你可以看到Latex Workshop默认的四种编译方式,在第一种编译方式前面添加如下代码:
{
"name": "xelatex",
"tools": [
"xelatex"
],
},
{
"name": "xelatex ➞ bibtex ➞ xelatex × 2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
效果如下图所示:
![8532db79b583597fe331c751ad287741.png](https://i-blog.csdnimg.cn/blog_migrate/0a165f7da6f80014a5785d3ccf1e68a6.png)
说明1:上述代码添加了两种编译方式,name可以自己定义,第一种是直接用xelatex来编译一次,适用于没有参考文献的简短论文;第二种是包含参考文献编译在内的复杂编译,先编译一次,再编译一次参考文献(bibtex),再编译两次,防止有时候编译没有完美完成(例如图注显示不全的情况)。
说明2:同理,你可以屏蔽相应的编译方式。
添加上述代码并屏蔽前三种Recipe方式后,保存settings.json文件,重启VS Code,可以看到新的编译方式如下所示:
![1a474519b19db3575a72b6890b9445ba.png](https://i-blog.csdnimg.cn/blog_migrate/0b1f6059cbbe532caa9d6bd33feee468.png)
2.4 PDF阅读器的设置
2.4.1 关联外部PDF阅读器
在2.2节已经解释过为什么要用外置的PDF阅读器,接下来,我们介绍如何配置。
在设置页面搜索viewer,找到Latex-workshop→View→Pdf:Viewer,将其设置为external,这样默认的预览的时候是外部的PDF阅读器。
![ca60d597ee4ff99c821bc9af10c5931b.png](https://i-blog.csdnimg.cn/blog_migrate/4fa7c7394ac58fe8c694ae62b69d5239.png)
接下来关联外部的PDF阅读器。同样在设置页面搜索viewer,找到Latex-workshop→View→Pdf→External→Viewer:Command,将SumatraPDF.exe的安装路径填在下方的方框里。
![b323f415887532badd4e0b4af5745554.png](https://i-blog.csdnimg.cn/blog_migrate/3ccab62ebb101a123e241771d091804c.png)
2.4.2 前向搜索与反向搜索设置
前向搜索,即在tex文档中找到某句话后,可以直接跳转到PDF阅读器中相应的位置。反向搜索,即从PDF文件的位置跳转到源码处。
在设置页面搜索viewer,找到Latex-workshop→View→Pdf:Viewer: Args。
![5e866763b1af39f0e19bd0f2282edbea.png](https://i-blog.csdnimg.cn/blog_migrate/7e60e0f18648439915a83d316cb7c5cf.jpeg)
随意添加一项后(不需要照上图添加完全),可以在settings.json文件中观察到自动添加了这一配置项,然后复制如下代码中[ ]中的内容:
"latex-workshop.view.pdf.external.viewer.args": [
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
""C:/Users/YourName/AppData/Local/Programs/Microsoft VS Code/Code.exe" "C:/Users/YourName/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js" -r -g "%f:%l"",
"%PDF%",
],
注意:只需复制[ ]中的内容,并且注意不要随便打乱顺序,记得修改路径。保存后回到设置页面的对应配置项,就会发现配置项下面已经修改为和上图一样的配置。
在设置页面搜索Synctex,再从设置页面里找到Latex-workshop→View→Pdf→External→Synctex:Command,同样填入SumatraPDF.exe的路径。
![d442586755059fa198b264012969995b.png](https://i-blog.csdnimg.cn/blog_migrate/a1143bf630bfab29e17745bb7aff8de4.png)
在设置页中找到Latex-workshop→View→Pdf→External→Synctex:Args。
![65ce1384ce223a7a32a71f99bf68c70c.png](https://i-blog.csdnimg.cn/blog_migrate/3ab0a66dc778bbbe64f0ae92f5949500.png)
随意添加一项后(不需要照上图添加完全),可以在settings.json文件中观察到自动添加了这一配置项,然后复制如下代码中[ ]中的内容:
//下面这一行不用复制,只是说明修改Synctex:Command后会自动加入这一行
"latex-workshop.view.pdf.external.synctex.command": "C:Users<YourName>AppDataLocalSumatraPDFSumatraPDF.exe",
//下面一行不用复制,自动生成的
"latex-workshop.view.pdf.external.synctex.args": [
//将下面内容复制到你的settings.json中,并修改路径
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
""C:/Users/YourName/AppData/Local/Programs/Microsoft VS Code/Code.exe" "C:/Users/YoruName/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js" -r -g "%f:%l"",
"%PDF%",
//下面一行不用复制
],
实现前向搜索的方式可为:
1. 在光标处,选择Navigate, select, and edit->SyncTeX from cursor,如下图。
![4ce6d29552ee76e4b6e7cfb67c3cb951.png](https://i-blog.csdnimg.cn/blog_migrate/00a56932c8036b2b87fbe1f5a67afc05.png)
2. 按下Ctrl+Alt+J
,直接跳转至PDF对应的地方。
3.点击View LaTeX PDF -> View in external viewer。
前向搜索的效果如下所示。
![f949796f22198002db994c08f7526d1e.gif](https://i-blog.csdnimg.cn/blog_migrate/6fb7f9753abae5550714839a181cec2e.gif)
说明:为了演示效果,我才将VS Code和PDF阅读器各占一半屏幕,下同。
!!!注意:如果正向搜索有问题,建议先disable其他插件,只保留 LaTeX Workshop,重启 VSCode 后再做尝试!
在PDF中双击,即可跳转到源码位置。反向搜索的效果如下所示:
![62553afb465f6ef2628796cd5f310098.gif](https://i-blog.csdnimg.cn/blog_migrate/182198d9ec6c3fd9bb4efeea15cfa2be.gif)
2.4.3 反向搜索的PDF阅读器设置
如果上述方法不能从PDF跳转至tex文档,还可以尝试下面的方法:
在这里,我们需要设置的是SumatraPDF.exe。打开SumatraPDF.exe,找到设置->选项:
![5fc3bc5da19ef1743b21ca2053c2a7aa.png](https://i-blog.csdnimg.cn/blog_migrate/54fed76ce914ca8440a10b8350c639c9.png)
点开后如下图所示:
![1ef8aca7a5e2977e5b69bdd4eeb1bb8c.png](https://i-blog.csdnimg.cn/blog_migrate/a1bc8a1901eedd54a72d61340757405a.jpeg)
在反向搜索设置里填入下方的一行超长代码(不是两行,注意和你自己的路径要对应好):
""C:/Users/YourName/AppData/Local/Programs/Microsoft VS Code/Code.exe" "C:/Users/YourName/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js" -r -g "%f:%l""
3 部分快捷键
- Ctrl+Alt+X:显示LaTeX面板(左侧编译命令面板和文档大纲)。
- Ctrl+Alt+C:清除辅助文件
- Ctrl+Alt+V:查看编译的pdf文件(预览)
- Ctrl+Alt+J:正向搜索
4 一点感悟
OK,到这里,本篇博客主体就结束了。有一个小的感受,新手找settings.json这个配置文件是真的难。直接把网上各位大佬的配置源码粘贴进来,总是有问题,这可能是由于软件版本更新后不太适用了。当然,我的这个教程也可能会过时,所以我都写明了软件版本。配置源码中的所有设置都可以从VS Code的设置页面中找到并进行相应的修改。我认为,从设置页面里打开的settings.json或许可以直接从网上的各位大佬的配置文件源码中复制,有兴趣的可以多多尝试~
参考链接
- 编译的官方解释
- 正向搜索的官方解释
- 配置VScode编辑LaTeX及正反向搜索等设置
- 一个直观的VS Code+Latex视频简介