VScode+texlive+sumatraPDF实现正反向搜索

texlive+vscode安装说明:https://blog.csdn.net/Echo_Code/article/details/108083193

1、安装TexLive

清华镜像源下载安装:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/

安装路径必须是英文。

安装完成后打开cmd,输入`tex --version`能显示安装版本,则表示安装成功。否则需要添加路径:

设置 → 系统 → 系统信息 → 高级系统设置 
→ 环境变量 → 用户变量Path → 编辑 → 新建 
→ 输入 E:\Asoftware\texlive\2023\bin\windows(#安装目录按需修改)

2、安装VScode

下载安装vscode,在Extension扩展中搜索安装LaTeX Workshoplatex language support

3、安装SumatraPDF

SumatraPDF是一个PDF阅读器,也可以不安装而用vscode内部的PDFviewer,但是实现不了正反向搜索功能。

sumatraPDF安装地址:Sumatra PDF reader download page

 4、正反向搜索:

点击vscode左下角齿轮,选择设置,然后点击右上方小图标“Open Settings(JSON)",将下面的内容复制进去,并修改两处vscode和两处sumatraPDF的路径为实际安装路径:

{
    //------------------------------LaTeX 配置----------------------------------
       // 设置是否自动编译 onFileChange onSave never
       "latex-workshop.latex.autoBuild.run":"onSave",
       //右键菜单
       "latex-workshop.showContextMenu":true,
       //从使用的包中自动补全命令和环境
       "latex-workshop.intellisense.package.enabled": true,
       //编译出错时设置是否弹出气泡设置
       "latex-workshop.message.error.show": true,
       "latex-workshop.message.warning.show": true,
       // 编译工具和命令
       "latex-workshop.latex.tools": [
            {
                "name": "pdflatex",
                "command": "pdflatex",
                "args": [
                    "-synctex=1",
                    "-interaction=nonstopmode",
                    "-file-line-error",
                    "%DOCFILE%" //使用%DOCFILE可以将文件所在路径设置为中文,或者%DOC
                ]
            },
            {
               "name": "xelatex",
               "command": "xelatex",
               "args": [
                   "-synctex=1",
                   "-interaction=nonstopmode",
                   "-file-line-error",
                   "%DOCFILE%" //使用%DOCFILE可以将文件所在路径设置为中文,或者%DOC
               ]
           },
           {
               "name": "latexmk",
               "command": "latexmk",
               "args": [
                   "-synctex=1",
                   "-interaction=nonstopmode",
                   "-file-line-error",
                   "-pdf",
                   "-outdir=%OUTDIR%",
                   "%DOCFILE%"
               ]
           },
           {
               "name": "bibtex",
               "command": "bibtex",
               "args": [
                   "%DOCFILE%"
               ]
           }
       ],
       // 用于配置编译链
       "latex-workshop.latex.recipes": [
            {
                "name": "PDFLaTeX", //适合英文排版
                "tools": [
                    "pdflatex"
                ]
            },
            {
               "name": "XeLaTeX", //适合中文排版
               "tools": [
                   "xelatex"
               ]
           },
           {
               "name": "BibTeX",
               "tools": [
                   "bibtex"
               ]
           },
           {
               "name": "LaTeXmk",
               "tools": [
                   "latexmk"
               ]
           },
           {
               "name": "xelatex -> bibtex -> xelatex*2",
               "tools": [
                   "xelatex",
                   "bibtex",
                   "xelatex",
                   "xelatex"
               ]
           },
           {
               "name": "pdflatex -> bibtex -> pdflatex*2",
               "tools": [
                   "pdflatex",
                   "bibtex",
                   "pdflatex",
                   "pdflatex"
               ]
           }
       ],
       //文件清理。此属性必须是字符串数组
       "latex-workshop.latex.clean.fileTypes": [
           "*.aux",
           "*.bbl",
           "*.blg",
           "*.idx",
           "*.ind",
           "*.lof",
           "*.lot",
           "*.out",
           "*.toc",
           "*.acn",
           "*.acr",
           "*.alg",
           "*.glg",
           "*.glo",
           "*.gls",
           "*.ist",
           "*.fls",
           "*.log",
           "*.fdb_latexmk"
       ],
       //设置为onFailed 在构建失败后清除辅助文件 onBuilt onFailed never
       "latex-workshop.latex.autoClean.run": "onFailed",
       // 使用上次的recipe编译组合 first lastUsed
       "latex-workshop.latex.recipe.default": "lastUsed",
       // 用于反向同步的内部查看器的键绑定。ctrl-click(默认)或double-click 
    "latex-workshop.view.pdf.internal.synctex.keybinding": "ctrl-click",
    "editor.wordWrap": "wordWrapColumn",

       //使用 SumatraPDF 预览编译好的PDF文件
       // 设置VScode内部查看生成的pdf文件 tab browser external
       "latex-workshop.view.pdf.viewer": "external", //tab是用vscode默认阅读器,external是外部阅读器
       // PDF查看器用于在\ref上的[View on PDF]链接
       "latex-workshop.view.pdf.ref.viewer":"auto",
       // 使用外部查看器时要执行的命令。此功能不受官方支持。
       "latex-workshop.view.pdf.external.viewer.command": "C:/Users/admin/AppData/Local/SumatraPDF/SumatraPDF.exe", // 注意修改路径
       // 使用外部查看器时,latex-workshop.view.pdf.external.view .command的参数。此功能不受官方支持。%PDF%是用于生成PDF文件的绝对路径的占位符。
       "latex-workshop.view.pdf.external.viewer.args": [
           "%PDF%"
       ],
       // 将synctex转发到外部查看器时要执行的命令。此功能不受官方支持。
       "latex-workshop.view.pdf.external.synctex.command": "C:/Users/admin/AppData/Local/SumatraPDF/SumatraPDF.exe", // 注意修改路径
       // latex-workshop.view.pdf.external.synctex的参数。当同步到外部查看器时。%LINE%是行号,%PDF%是生成PDF文件的绝对路径的占位符,%TEX%是触发syncTeX的扩展名为.tex的LaTeX文件路径。
       "latex-workshop.view.pdf.external.synctex.args": [
           "-forward-search",
           "%TEX%",
           "%LINE%",
           "-reuse-instance",
           "-inverse-search",
           "\"D:/Microsoft VS Code/Code.exe\" \"D:/Microsoft VS Code/resources/app/out/cli.js\" -r -g \"%f:%l\"", // 注意修改路径
           "%PDF%"
        ],
    "explorer.confirmDelete": false,
    "security.workspace.trust.untrustedFiles": "open"
    
}

然后打开sumatraPDF,设置->选项 最下面输入

"D:/Microsoft VS Code/Code.exe" -r -g "%f:%l" #修改路径为vscode的安装路径。

正向搜索:vscode中 ctrl+alt+J 或者鼠标右键选择syncTex from cursor

反向搜索:先打开SumatraPDF,再在vscode中 ctrl+alt+V 打开PDF,然后在sumatraPDF中双击

注意:如果不先打开SumatraPDF,而是直接在vscode中 ctrl+alt+V 打开SumatraPDF,反向搜索会失效。

### 配置 VSCode 使用 LaTeXSumatraPDF #### 安装必要的软件 要实现此目标,需先完成以下准备工作: - **安装 TeX Live**:这是用于编译 LaTeX 文档的核心工具链[^1]。 - **安装 Visual Studio Code (VSCode)**:这是一个轻量级的代码编辑器,支持多种扩展插件。 - **安装 LaTeX Workshop 插件**:该插件为 VSCode 提供了强大的 LaTeX 支持功能。 - **安装 SumatraPDF 查看器**:这是一款专为 Windows 设计的 PDF 查看器,适合与 LaTeX 工具链配合使用。 #### 设置反向搜索 在配置过程中,确保 SumatraPDF 能够确处理反向搜索的功能。具体来说,在其配置文件 `sumatrapdf.ini` 或注册表中设置参数 `ReuseInstance=true` 是关键一步[^2]。这一选项允许多个文档操作共享同一窗口实例,从而提升效率并减少冲突。 #### 配置 VSCode 的 settings.json 文件 通过修改用户的全局设置或者工作区特定设置来定义构建过程以及外部程序调用方式: ```json { "latex-workshop.latex.tools": [ { "name": "pdflatex", "command": "pdflatex", "args": [ "-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOC%" ] } ], "latex-workshop.view.pdf.viewer": "external", // 外部查看器模式 "latex-workshop.view.pdf.external.command": "SumatraPDF.exe", "latex-workshop.view.pdf.external.args": ["-reuse-instance","%OUTFILE%"] } ``` 上述 JSON 片段设置了 pdflatex 编译命令及其参数列表,并指定采用外部应用程序(即 SumatraPDF)作为默认 PDF 显示手段。特别注意的是 `-reuse-instance` 参数的应用,它直接关联到之前提到过的关于 ReuseInstance 属性的重要性。 #### 自动刷新机制 当保存 .tex 源码之后触发重新编译流程,则新生成的内容会被即时反映至已开启的 PDF 窗口中去。这是因为每次执行完毕后都会通知对应的 PDF 查阅应用更新视图状态;而由于启用了单例复用策略的缘故,所以无需关闭再重启整个界面即可达成无缝衔接的效果。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值