【笔记】VS Code与Latex从下载到写论文(2020)
本帖最后由 JavenC 于 2020-2-22 17:12 编辑我只是个小白,一个普普通通的理科应届毕业生
一场疫情,让学校一再推迟开学并禁止提前返校,本来是件美事,但作为苦逼应届毕业生却不得不操心论文和答辩的事情。
对于一个纯理科学生,LaTeX作为一个论文排版工具比Word强了太多,但是它是需要编译环境的,自带的固然能用,总归是功能有限。查了不少文章,最终选择了VS Code。
但这东西的环境配置,对于小白来说太难了点,我折腾了挺久,走了不少弯路,写这篇笔记希望能帮到那些有同样需求的朋友吧,以后我自己忘了,也会回头来看看
目录
1.准备工作
2.TeXLive 2019下载、安装
3.VSCode下载、安装
4.安装LaTeX Workshop插件
5.JSON基本设置
6.正向检索
7.反向检索
8.双向检索使用方法
1.准备工作
为了搭建 LaTeX 工作环境,需要安装:TeX Live 或者 MiKTeX (本文以 TeX Live 2019 为例)Visual Studio CodeLaTeX Workshop (VSCode 插件)
SumatraPDF 阅读器(可选,用于预览 PDF)
2.TeX Live 2019下载、安装
首先,我们进入TeX Live 的官方站点:https://www.tug.org/texlive/,有两种安装方式
1.Download安装:
网络好的点击download,会有一个exe,打开安装猛点“下一步”就完事(需要联网安装)
2.DVD安装:
点download下载不下来的可以试试on DVD那个选项,会下载一个镜像文件,win10可以直接打开,win7之类的需要挂载(类似“读碟”)
以管理员身份运行后缀是“.bat”的那个文件,安装过程类似,但不再需要联网
SumtraPDF比自带的阅读器好用一点,但不是必要的
在上述软件/插件安装之后,你需要把TeX Live 的 bin 目录(C:\ProgramFiles\texlive\2019\bin\win32)添加到系统环境变量(PATH)中
如果你下载了Sumtra,还需要添加它的路径(C:\Program Files\SumatraPDF)【这是默认路径,如果你修改了路径则填入修改后的】
Win10 中将路径添加到环境变量中的步骤如下:右键我的电脑,然后选择 属性,在左侧选择 高级系统设置,然后选择下方的 环境变量,选择变量 Path 编辑,将需要添加的路径添加进去即可
3.VSCode下载、安装
1)在浏览器地址栏输入https://code.visualstudio.com/进入到 VSCode官网 首页
请根据自己的操作系统下载,安装也没什么难度,没特别需求可以一切默认,不再赘述
4.安装LaTeX Workshop插件
在左侧点击扩展按钮(KEY:Ctrl+Shift+X),然后搜索插件名字 LaTeX Workshop,选择安装即可
简单地来讲,你已经可以用这些东西写论文了,新建一个结尾为.tex的文件,你可以试试下面这一段
\documentclass{article}
\begin{document}
Hello, world!
\end{document}
ctrl+alt+b编译,按理说pdf会自动弹出来。如果没弹出来ctrl+alt+v看pdf
完结撒花
-------
你可能会奇怪,为什么网上搜出来的教程都要配置很长很长一段配置文件,而且往往还不好使因为一篇完整的论文是有Reference(参考文献)的,而这部分一般会写进另一个叫.bib的文件中
当你要同时编译两个文件的时候,就需要用到那些乱七八糟的配置了
还有就是长论文可能用到的正向检索和反向检索:点击代码可以直接在pdf中定位到文字,点击文字可以定位到对应的代码
如果你需要用到这些,请接着往下看
5.JSON基本设置
VS Code 默认添加了3 个编译工具(tools):分别是latexmk,pdflatex和bibtex(所有的工具只编译一次)为了添加其他的编译方式(比如xelatex),我们需要修改LaTeX Workshop 的配置。
打开LaTeX Workshop 配置的方法如下:在VS Code 界面左下角,点击齿轮按钮,选择设置
然后在屏幕右上角找到文件上一个箭头的标志
下面是我个人的设置,我也没全搞懂每句话干嘛的,不过2020.02.22测试可用。注意,所有下面的代码请用一组大括号{}框进去
"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"
],
接下来你可以用一个范例测试一下配置好了没,我上传了附件,一个bib文件,一个tex文件,两个一起下载放在同一个文件夹下(注意路径不要有中文!)
打开tex文件,点左侧边栏的TEX中的第一项,中的这个
编译完,如果pdf没打开,按ctrl+alt+v,正常情况下会看大如下内容
如果bib文件没下载,Reference会显示不出来,如果编译出错,就是设置的代码有错误(仿佛看到程序员的日常:写Bug)
如果成功运行,恭喜你,含bib文件的tex以后就这么编译,不含的就直接ctrl+alt+b就完事
再次完结撒花
--------
什么?你说你还想要正向检索、反向检索?。。。
那继续往下看吧,下面这一段我自己都有点整不明白,大家也就凑合着依葫芦画瓢吧
这个功能最好配合SumatraPDF使用SumatraPDF官方下载地址:https://www.sumatrapdfreader.org/download-free-pdf-viewer.html
6.正向检索
大括号{}内加入以下代码
// 设置预览方式
"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,进入设置->选项->设置反向搜索命令行,设置反向搜索命令行,同样注意文件路径:(一行,不是两行!)
"D:/Soft/Microsoft VS Code/Code.exe" "D:/Soft/Microsoft VS Code\resources\app\out\cli.js" -g "%f":%l
如果没看到这一栏,可能是第一次设置,则进入“设置->选项->高级设置”,添加如下一行,同样注意文件路径:(一行,不是两行!)
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 andedit",点击第一项"syncTeX from cursor"(或右键选择,或快捷键ctrl+alt+j),会切换到PDF文件的相应位置并高亮显示。
反向搜索的使用:
打开一个已经编译的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文档相应位置
如果你有什么疑问,欢迎评论交流,也欢迎免费评分~
压缩包平民链接:
链接:https://pan.baidu.com/s/1DxtuZchMKBwtTpa-VjPOPw
提取码:vtav 可乐味的小土豆 发表于 2020-9-4 11:21
折腾半天,反向选择还是不能用,唉
默认从代码定位到pdf的快捷键是ctrl Alt J,只能定位到行,默认从pdf定位到代码的快捷键是Ctrl 加鼠标左键。系统自带的pdf阅读器够用了,如果想配置外置的阅读器,还是得改设置文件 可乐味的小土豆 发表于 2020-9-3 21:38
显示这个Recipe terminated with fatal error: spawn latexmk ENOENT.
最近workshop更新了,不用这么复杂了,直接安装texlive之后,下载workshop插件,就能用了 向你学习,向你致敬 折腾半天,反向选择还是不能用,唉 按着你的代码生成的pdf,应该是这个样子吗,VS还是显示有错误
学习一下!!! JavenC 发表于 2020-9-4 09:00
最近workshop更新了,不用这么复杂了,直接安装texlive之后,下载workshop插件,就能用了
就是不用修改系统变量了吗
更新一下链接: https://pan.baidu.com/s/1vyqdIgQmL2NQHOxtlo0bnQ 提取码: zbwf 显示这个Recipe terminated with fatal error: spawn latexmk ENOENT.