基于WSL-LaTeX的VS Code+SumatraPDF协作

主要参考

https://zhuanlan.zhihu.com/p/337459645
https://zhuanlan.zhihu.com/p/112108701
* 非常感谢夕雪大大及评论区各位的思考与贡献

1. 为什么选择WSL

由于TeXLive对Windows支持不好等原因,其在Windows下效率较低。WSL是在Windows下对Linux的虚拟化,在该文章的测试中,WSL相比直接在Windows下跑,最多能实现一倍的提升。

2. 环境描述

  • 根据该文章测试,若将tex文件放在Windows文件区 (/mnt/x/…) ,会对性能造成较大影响,所以选择将文件放在Linux目录下。

  • 目录结构如下

    ------Tex
       |------.vscode
          |------settings.json
          |------correct_path
       |------doc1
          |------test.tex
    
  • 建议不要将tex文件直接放在“Tex”目录下,不然反向搜索可能无法实现窗口复用。

3. 具体配置(正向搜索与反向搜索)

VSCode端

.settings.json

"latex-workshop.latex.tools": [
{
    "name": "correct_path",
    "command": "../.vscode/correct_path"
},

"latex-workshop.latex.recipes": [
{
    "name": "pdf->bib->pdf->pdf",
    "tools": [
        "pdflatex",
        "bibtex",
        "pdflatex",
        "pdflatex",
        "correct_path"    // 注意这里
    ]
},

······

"latex-workshop.view.pdf.viewer": "external",
    "latex-workshop.view.pdf.external.viewer.command": "/mnt/d/Software/SumatraPDF/SumatraPDF.exe",    // 改为自己的路径
    "latex-workshop.view.pdf.external.viewer.args": [
        "%PDF%"
    ],
    "latex-workshop.view.pdf.external.synctex.command": "/mnt/d/Software/SumatraPDF/SumatraPDF.exe",    // 改为自己的路径
    "latex-workshop.view.pdf.external.synctex.args": [
        "-forward-search",
        "\\\\wsl$\\Ubuntu\\%TEX%",    // 改为自己的发行版名称
        "%LINE%",
        "-reuse-instance",
        "\\\\wsl$\\Ubuntu\\%PDF%"    // 改为自己的发行版名称
    ]

correct_path (注意修改为自己的路径)

gunzip *.synctex.gz
sed -i "s/\/home\/winnie\/Tex\//\\\\\\\\wsl$\\\\Ubuntu\\\\home\\\\winnie\\\\Tex\\\\/g" *.synctex
gzip *.synctex

该文章提供了把上述代码写在一行的方法,与settings.json文件集成在一起,可供参考

SumatraPDF端

在任意路径创建一个vbs文件(实现cmd窗口隐藏)

Set args = WScript.Arguments
arg = ""
For Each s In args
arg = arg & " " & s
Next
WScript.CreateObject("WScript.Shell").Run "wsl code " & arg, 0

SumatraPDF软件设置
此处填入(注意修改vbs文件和/mnt/x/…路径)

wscript "D:\Projects\Script\Inverse Search.vbs" -r -g $(echo $(wslpath '%f:%l') "|" sed 's/\/mnt\/d\/wsl$\/Ubuntu//g')

大功告成!

最后,值得注意的是,代码有效性可能会随版本变动而不同,可参见该文章
截至2022年3月7日最新版,笔者使用的版本如下:

  • VSCode:1.65.0
  • LaTeX Workshop:8.23.0
  • SumatraPDF:3.3.3
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值