侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

如何使用VSCode编写LaTeX?

技术  /  管理员 发布于 7年前   501

许多人都是用 texstudio 或者 winedt 配合 texlive 编写1.jpg 文档,很长一段时间内 texstudio 是我唯一的编辑器,然而,颜控的我受不了那原始的界面,于是我看上了 VSCode。漂亮、免费、开源是我选择 VSCode 的主要原因。

网上有很多介绍 VSCode + 的文章,不过在配置外部阅读器的介绍稍微有点少,我在网上找了很久才在 LaTeX Workshop 作者的 github 主页上找到方法,同时也萌发了写一篇教程的想法。

本文主要介绍使用 VSCode 编写简单的文档以及设置外部PDF阅读器的方法。

如果你已经安装好了 texlive、VSCode 和 SumatraPDF,并且不想看完整篇文章,只想快点上手,请翻到文章末尾的附录,将代码全部复制到 VSCode 的设置里,然后再根据第5节设置一下反向搜索就可以使用了。

1. 安装 texlive

加载 texlive 2019 的 iso 文件,

2.jpg

右键 install-tl-windows,单击以管理员身份运行,进入安装界面。

3.jpg

可以点击“Advanced”进入高级安装来取消你不需要安装的宏包。

4.jpg

点击“Customize”来取消勾选不需要的宏包。

5.jpg

很多宏包和功能我个人并不需要,因此我在这里取消勾选,大家可以根据需要勾选自己需要的功能,如果嫌麻烦全部安装也可以,并不消耗多少空间。

设置完安装路径等选项之后点击“安装”,之后静坐 20 分钟等待安装完成。

2. 安装 VSCode 上的 [公式] 插件

与此同时,下载 VSCode 并安装,VSCode 的安装很简单,这里就不唠叨了。

6.jpg

VSCode 安装完成之后,在扩展商店安装 LaTeX Workshop 插件。

安装完成后,随便打开一个 tex 源文件,

7.jpg

可以看到,代码已经被高亮显示。

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 编译了,但因为编译次数比较多,速度会比较慢。大家可以根据需要自行按照格式添加自己需要的编译链。

1.gif

要使用 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 为阅读器预览了。

8.jpg

插件经过几次更新之后已经去掉了右键菜单选项,选项被移动到了右侧栏。点击右侧栏的 9.jpg 图标,再点击你所想要使用的Recipe就可以编译了,如果用快捷键则默认使用第一条 Recipe 编译。或者也可以使用快捷键 Ctrl+Alt+V。

10.jpg

单击右上角的按钮即可打开 SumatraPDF 并预览。

4. 配置正向搜索

"latex-workshop.view.pdf.external.synctex": {    "command": "E:/Programs/SumatraPDF/SumatraPDF.exe",    "args": [        "-forward-search",        "%TEX%",        "%LINE%",        "%PDF%"    ]},

[公式] 添加代码进入设置区以配置正向搜索。“command”依旧是 SumatraPDF.exe 的存放位置,根据具体情况修改。

11.jpg

单击“SyncTeX from cursor”即可正向搜索。

12.gif

可以看到,光标所在的行的内容在 PDF 中高亮显示。

5. 配置反向搜索

打开 SumatraPDF,进入设置->选项->设置反向搜索命令行

13.jpg

添加以下命令

"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 中所对应的内容的源代码处。

15.gif

这样 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?的详细内容,更多请关注其它相关文章!


  • 上一条:
    vscode要装在c盘吗
    下一条:
    vscode格式化不见了怎么办
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    • 2025-07
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客