网上有很多介绍 vscode + 的文章,不过在配置外部阅读器的介绍稍微有点少,我在网上找了很久才在 latex workshop 作者的 github 主页上找到方法,同时也萌发了写一篇教程的想法。
本文主要介绍使用 vscode 编写简单的文档以及设置外部pdf阅读器的方法。
如果你已经安装好了 texlive、vscode 和 sumatrapdf,并且不想看完整篇文章,只想快点上手,请翻到文章末尾的附录,将代码全部复制到 vscode 的设置里,然后再根据第5节设置一下反向搜索就可以使用了。
1. 安装 texlive
加载 texlive 2019 的 iso 文件,
右键 install-tl-windows,单击以管理员身份运行,进入安装界面。
可以点击“advanced”进入高级安装来取消你不需要安装的宏包。
点击“customize”来取消勾选不需要的宏包。
很多宏包和功能我个人并不需要,因此我在这里取消勾选,大家可以根据需要勾选自己需要的功能,如果嫌麻烦全部安装也可以,并不消耗多少空间。
设置完安装路径等选项之后点击“安装”,之后静坐 20 分钟等待安装完成。
2. 安装 vscode 上的 [公式] 插件
与此同时,下载 vscode 并安装,vscode 的安装很简单,这里就不唠叨了。
vscode 安装完成之后,在扩展商店安装 latex workshop 插件。
安装完成后,随便打开一个 tex 源文件,
可以看到,代码已经被高亮显示。
3. 配置 vscode 的 [公式] 插件
将以下代码放入 vscode 的设置区内。
"latex-workshop.latex.tools": [ { // 编译工具和命令 "name": "xelatex", "command": "xelatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-pdf", "%docfile%" ] }, { "name": "pdflatex", "command": "pdflatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%docfile%" ] }, { "name": "bibtex", "command": "bibtex", "args": [ "%docfile%" ] }],
[公式] latex workshop 默认的编译工具是 latexmk,大家根据需要修改所需的工具和命令,我不需要用到 latexmk,因此我把其修改为中文环境常用的 xelatex,大家根据需要自行修改。(感谢 @huan yu ,将 tools 中的 %doc%替换成%docfile%就可以支持中文路径下的文件了)
"latex-workshop.latex.recipes": [ { "name": "xelatex", "tools": [ "xelatex" ] }, { "name": "xe->bib->xe->xe", "tools": [ "xelatex", "bibtex", "xelatex", "xelatex" ] }],
[公式] 用于配置编译链,同样地放入设置区。第一个 recipe 为默认的编译工具,如需要使用 bibtex 可在编译时单击 vscode 界面左下角的小勾,单击“build latex project”,选择“xe->bib->xe->xe”,另外的方法是使用右侧栏,或者直接将“xe->bib->xe->xe”的recipe 放到第一位,就可以作为默认 recipe 编译了,但因为编译次数比较多,速度会比较慢。大家可以根据需要自行按照格式添加自己需要的编译链。
要使用 pdflatex,只需在 tex 文档首加入以下代码:
%!tex program = pdflatex
要使用 sumatrapdf 预览编译好的pdf文件,添加以下代码进入设置区。
"latex-workshop.view.pdf.viewer": "external","latex-workshop.view.pdf.external.command": { "command": "e:/programs/sumatrapdf/sumatrapdf.exe", "args": [ "%pdf%" ]},
[公式] “viewer”设置阅读器为外置阅读器,“command”为 sumatrapdf.exe 的路径,根据具体情况修改。
现在就可以使用 vscode 编译 tex 文件并以 sumatrapdf 为阅读器预览了。
插件经过几次更新之后已经去掉了右键菜单选项,选项被移动到了右侧栏。点击右侧栏的 图标,再点击你所想要使用的recipe就可以编译了,如果用快捷键则默认使用第一条 recipe 编译。或者也可以使用快捷键 ctrl+alt+v。
单击右上角的按钮即可打开 sumatrapdf 并预览。
4. 配置正向搜索
"latex-workshop.view.pdf.external.synctex": { "command": "e:/programs/sumatrapdf/sumatrapdf.exe", "args": [ "-forward-search", "%tex%", "%line%", "%pdf%" ]},
[公式] 添加代码进入设置区以配置正向搜索。“command”依旧是 sumatrapdf.exe 的存放位置,根据具体情况修改。
单击“synctex from cursor”即可正向搜索。
可以看到,光标所在的行的内容在 pdf 中高亮显示。
5. 配置反向搜索
打开 sumatrapdf,进入设置->选项->设置反向搜索命令行
添加以下命令
"code.exe" "resources\app\out\cli.js" -g "%f":"%l"
根据 vscode 具体的安装位置将“code.exe”和“resources\app\out\cli.js”换成 vscode 在自己的电脑上的安装位置,例如:
"c:\users\marvey\appdata\local\programs\microsoft vs code\code.exe" "c:\users\marvey\appdata\local\programs\microsoft vs code\resources\app\out\cli.js" -g "%f":"%l"
(感谢 @macrofuns 指出,如果不加双引号,在文件路径有空格的情况下会导致无法反向搜索)
双击 pdf 中的任意一处即可跳转到 vscode 中所对应的内容的源代码处。
这样 vscode + texlive 就完全配置好了。
最好不要清理 xelatex 生成的 gz 后缀的临时文件,否则就不能进行正向和反向搜索;
之前的文章中,我提到了从 vscode 预览按钮启动 sumatrapdf 会无法反向搜索的问题,现在已经解决,解决方法是在反向搜索命令中添加
"resources\app\out\cli.js"
解决方案来源:
https://link.zhihu.com/?target=https%3a//github.com/james-yu/latex-workshop/issues/637%23issuecomment-473145503
6. 其他设置
latex workshop 默认保存的时候自动编译,如果不喜欢这个设置,可以添加以下代码进入设置区:
"latex-workshop.latex.autobuild.run": "never",
附录
// latex "latex-workshop.latex.tools": [ { "name": "xelatex", "command": "xelatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-pdf", "%docfile%" ] }, { "name": "pdflatex", "command": "pdflatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%docfile%" ] }, { "name": "bibtex", "command": "bibtex", "args": [ "%docfile%" ] } ], "latex-workshop.latex.recipes": [ { "name": "xelatex", "tools": [ "xelatex" ] }, { "name": "xe->bib->xe->xe", "tools": [ "xelatex", "bibtex", "xelatex", "xelatex" ] }, { "name": "pdflatex", "tools": [ "pdflatex" ] } ], "latex-workshop.view.pdf.viewer": "external", "latex-workshop.view.pdf.external.command": { // ********** "command": "c:/program files/sumatrapdf/sumatrapdf.exe", // 注意修改路径 "args": [ // ********** "%pdf%" ] }, "latex-workshop.view.pdf.external.synctex": { // ********** "command": "c:/program files/sumatrapdf/sumatrapdf.exe", // 注意修改路径 "args": [ // ********** "-forward-search", "%tex%", "%line%", "%pdf%" ] },
推荐教程:vscode教程
以上就是如何使用vscode编写latex?的详细内容。
