vscode如何编写latex

发布时间 - 2019-12-07 00:00:00    点击率:

1、安装 texlive

加载 texlive 2019 的 iso 文件。

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

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

高级安装界面

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

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

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

2、安装 VSCode 上的 Latex 插件

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

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

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

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

3、配置 VSCode 的 Latex 插件

将以下代码放入 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"

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%"
        ]
    },

PHP中文网,有大量免费的vscode入门教程,欢迎大家学习!


# vscode  # php  # JS  # windows  # 单击  # 就可以  # 勾选  # 可以看到  # 可以根据  # 要使  # 自己的  # 根据具体情况  # 是在  # 我不 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: ,怎么在广州志愿者网站注册?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  北京企业网站设计制作公司,北京铁路集团官方网站?  如何快速完成中国万网建站详细流程?  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  JS去除重复并统计数量的实现方法  如何在建站之星网店版论坛获取技术支持?  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  如何做网站制作流程,*游戏网站怎么搭建?  如何快速搭建高效简练网站?  Laravel观察者模式如何使用_Laravel Model Observer配置  Laravel如何实现API速率限制?(Rate Limiting教程)  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  Laravel Debugbar怎么安装_Laravel调试工具栏配置指南  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  如何在景安服务器上快速搭建个人网站?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel用户密码怎么加密_Laravel Hash门面使用教程  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  javascript基于原型链的继承及call和apply函数用法分析  Firefox Developer Edition开发者版本入口  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  高端网站建设与定制开发一站式解决方案 中企动力  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Linux系统命令中screen命令详解  如何在万网ECS上快速搭建专属网站?  Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  Python3.6正式版新特性预览  Laravel中的Facade(门面)到底是什么原理  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  常州企业网站制作公司,全国继续教育网怎么登录?  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  网站制作壁纸教程视频,电脑壁纸网站?  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  企业网站制作这些问题要关注  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  如何在云主机上快速搭建多站点网站?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  微信小程序 require机制详解及实例代码  如何在阿里云ECS服务器部署织梦CMS网站?  Laravel如何创建自定义中间件?(Middleware代码示例)  济南网站建设制作公司,室内设计网站一般都有哪些功能?