【教程】vscode中LaTeX的安装与配置

LaTeX是一个正式的数学排版语言(当然也不一定只能用于数学),常常用于各大期刊论文的写作,许多期刊甚至要求在重大问题如黎曼猜想的证明必须要用这样的语言完成。其“所见不为所得的”特点完美的阐述了它的利弊:失去的直观性,但是增强了可控性。

从2024/8/19开始,我就开始准备写这篇文章,但由于当时规划的本篇文章内容涵盖范围过于广泛,就迟迟没有动笔拖延症患者是这样的()。后面又陆续有同学问我怎么在Goodnotes中插入化学方程式,当时只是随便把这篇文章的前身学习笔记.md发过去,得到的反馈都基本是“看不懂”。2024/11/23,我终于下定决心开始写这篇文章,现在已经写了5000+字数,于是我就准备先把安装与配置这个部分先单独发出来,保证每篇文章都轻量,易于阅读。

本文将主要包含以下内容:

  • 安装下载TeXLive
  • 如何在vscode中配置LaTeX并获得一个较舒适的体验

主流的LaTeX发行版主要有MiKTeX和TeX Live,前者较为轻量,而后者功能比较全面,常见的宏包都已经预安装好了,不用操心。我们以后者为例。

TeX Live发行版的下载和安装

打开网址:https://tug.org/texlive/acquire-iso.html

单击“download from a nearby CTAN mirror”,从镜像站下载,网页会为我们找到最近的镜像站,如图,我进入了南阳理工学院开源软件镜像站:

镜像站示意

点击如图所示高亮的文件,点击下载,文件的大小一般不小于5G,快的话2~3分钟就下载下来了。

找到下载好的压缩包,右键用“Windows文件资源管理器”打开(或选择“挂载”),就会发现系统多出来了一个“硬盘”,在其中找到install-tl-windows.bat文件,用管理员权限打开。会先出现下图,无需理会,过一会就会消失并弹出安装界面:

欢迎界面|图源:https://zhuanlan.zhihu.com/p/166523064

对下列选项进行更改:更改其安装路径(不建议路径中含有中文,这个玩意很大,建议预留足够的空间,我的texlive文件夹大概有9.14GB qwq)、取消勾选“安装 TeXworks 前端”(因为我们要用vscode)

必要的更改

确认无误后,点击“安装”,就会开启漫长的安装过程。我当时安装时花了3个小时。

当出现下图所示弹窗时,说明安装完毕,点击关闭即可。

完成安装

vscode的配置

安装并配置LaTeX Workshop

在边栏中打开扩展在其中搜索并安装LaTeX Workshop

alt text

点击安装。

等待安装完毕后,打开设置,并进入settings.json

alt text

将以下内容复制粘贴(也可根据自己的喜好调整):

{
    "latex-workshop.latex.autoBuild.run": "onSave", //在保存时编译
    "latex-workshop.showContextMenu": true, //在上下文菜单中加入“构建LaTeX”和“从光标同步SyncTeX”,后者是从.tex -> .pdf的同步(即高亮.pdf文档中对应.tex的部分)
    "latex-workshop.intellisense.package.enabled": true, //在代码提示中显示添加的宏包中的代码提示
    "latex-workshop.message.error.show": false, //关闭烦人的编译失败提示(不信的话可以打开试一试)
    "latex-workshop.message.warning.show": false, //关闭烦人的编译失败提示(不信的话可以打开试一试)

    //从这里开始就是在调整编译顺序,不要动
    "latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            "command": "xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        },
        {
            "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": "XeLaTeX",
            "tools": [
                "xelatex"
            ]
        },
        {
            "name": "PDFLaTeX",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "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"
    ],
    "latex-workshop.latex.autoClean.run": "onFailed", //在编译失败时清理编译的中间产物
    "latex-workshop.latex.recipe.default": "lastUsed", //设置编译时的缺省
    "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click", //设置双击从.pdf -> .tex的同步(即高亮.tex文档中对应双击的.pdf的部分)

    //为了使vscode中的文件管理器看起来整洁有序,你应该排除这些文件(即不让以下后缀名的文件在vscode中的文件管理器中显示)
    "files.exclude": {
        "**/*.aux": true,
        "**/*.gz": true,
        "**/*.log": true,
        "**/*.synctex(busy)": true
    }
}

总结一下,通过复制这份配置文件,你调整了以下功能:

  • 在保存时编译(即可以通过ctrl + S的快捷键来编译文档)
  • 在tex页面上下文菜单(左键菜单)中加入“构建LaTeX”和“从光标同步SyncTeX”,后者是从.tex -> .pdf的同步(即高亮.pdf文档中对应.tex的部分)
  • 在代码提示中显示添加的宏包中的代码提示
  • 关闭烦人的编译失败提示
  • 设置了编译顺序
  • 在编译失败时清理编译的中间产物
  • 设置编译时的缺省
  • 设置在pdf页面双击从.pdf -> .tex的同步(即显示.tex文档中对应的.pdf的部分)
  • 排除**/*.aux**/*.gz**/*.log**/*.synctex(busy)文件在vscode中的文件管理器中显示

设置LaTeX Workshop的代码格式化工具(可选)

LaTeX Workshop中不自带代码格式化工具,但提供了一个接口,可以通过连接一个外置的程序进行格式化。

官方推荐的有latexindenttex-fmt两款工具,这里前者为例。

打开latexindent的Github页面:https://github.com/cmhughes/latexindent.pl/releases

选择latexindent.exe并下载,将其添加到环境变量中。该怎么添加?参见这篇文章的11.1.2节

在刚刚的设置中加入以下内容:

    "latex-workshop.formatting.latex":"latexindent",
    "latex-workshop.formatting.latexindent.path":"latexindent",

设置在状态栏中显示字数(可选)

settings.json中添加以下内容:

    "latex-workshop.texcount.autorun": "onSave",

就可以在编译latex文件后在状态栏中看到当前文档的字数。(与在终端中运行texcount $FileName.tex结果相同)

评论

  1. Windows Chrome
    4 周前
    2024-12-21 22:07:43

    拜谢强大的 Lucas

    • 博主
      GGapa
      Windows Edge
      4 周前
      2024-12-22 0:09:20

      真的写不动了啊啊啊
      现在把数学的部分写完了qwq

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇