LaTex下载、安装及配置并搭配使用Visual Studio Code教程(建议收藏)2022最新完整版

简介: LaTex下载、安装及配置并搭配使用Visual Studio Code教程(建议收藏)2022最新完整版

LaTex下载、安装及配置并搭配使用Visual Studio Code教程(保姆级超详细)2022最新完整版

关于LaTex

LaTeX/ˈlɑːtɛx/,常被读作/ˈlɑːtɛk//ˈleɪtɛk/风格化后写作“LATEX”),是一种基于TEX排版系统,由美国计算机科学莱斯利·兰伯特在20世纪80年代初期开发,利用这种格式系统的处理,即使用户没有排版和程序设计的知识也可以充分发挥由TEX所提供的强大功能,不必一一亲自去设计或校对,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技数学物理文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。

由于LaTeX是透过语法来排版的,任何想得到的东西,像是乐谱棋谱(可动态)、化学结构式电路图物理学中的费曼图等等都可以先定义规则,然后再以简单的语法排版出来。而那些规则也往往早有人写出对应的宏包,所以用户只需要弄懂他的语法就可以了。

    • LaTex的优点:
      1. 易用、全面的数学排版支持,无出其右。
      2. 撰写文档时不会被文档排版细节干扰精力。你可以使用之前自定义的模板,或者方便地在文字组织完毕后调整你的模板,以轻松达到满意的效果。
      3. 复杂的排版功能支持,比如图表目录、索引、参考文献管理、高度自定义的目录样式、双栏甚至多栏排版。
      4. 强迫用户以结构化的方式写作,输出的PDF结构树清晰(要么接受、要么放弃)。
      5. 各种特殊页面界定清晰,修改灵活。
      6. 设计的超前性, Tex \LaTex 程序系统几十年来没有什么改动,而且由于它的可扩充性, LaTex将永葆其先进性,也就是说,学习和使用 LaTex 永远不会过时。
        • LaTex的缺点:
          1. 学习成本高,对于无计算机科学基础的人来说,需要耗费大量的时间去学习「环境变量」等本来有可能一辈子用不到的功能,尽管现在的计算机知识在普及,但远远不够。
          2. 想要熟练地使用LaTex并轻松地编写有自己的风格的文档,需要很多的时间与精力来学习。
          3. 并非“所见即所得”,需要编译才能看到效果,且编译时间比较长。编译查错有时令人恼火,报错全英文,且难以理解。LaTex原生定义的模板能够满足绝大多数场合的需要。
          4. 在具体功能里面,图表插入很繁琐, TikZ 等制图功能又很难用。而在宏包的使用方面,各种扩展包满天飞,各类需求都要漫天试包,但是往往可以查找到的帮助与方法很有限,且现在一直没有搭建起一个比较完全的论坛来讨论这些问题,只在一些交流群可以讨论。

            LaTex就是专门为排版高质量科技论文而设计的软件,当然在这方面的性能就非常突出。在很多 LaTex 爱好者看来,LaTex不仅是一种文字编辑排版工具,它更是一门艺术,给人以美的享受。

            编辑器的选择

              • TeX Live 适用于所有平台(包括 Windows、Linux 和基于 Unix 的系统)。
              • MiKTeX 适用于 Windows。
              • MacTeX 适用于 macOS。
              • StackEdit - 在浏览器中的 markdown 编辑器。

              Tex Live 是 TUG (TeX User Group) 发布并维护的的 Tex 系统,可以称得上是TeX的官方系统。对于任何阶段的Tex用户,都可以使用Tex Live, 以保持在跨操作系统、跨用户的TeX文件一致性。

              Tex Live的下载

              Tex Live的官网:TexLive官网

                • 通常有两种下载方式:
                  1. 直接联网下载,通过链接获取windows 的下载文件或者 Linux 的下载文件
                  2. 通过直接下载ISO镜像
                    • 这里我们使用方便的镜像下载即可:
                            • 此处3个镜像站随意哪个都可以,我们只需下载其中的texlive.iso文件即可,虽然texlive.iso很大,但因其宏包齐全,故选它。
                            • 此处以Windows下的下载安装为例

                            如果需要其他系统的安装,请按照官方文档进行按照部署将更为合适。官方文档

                              1. 如果你是其他系统 .nix(UNIX/Linux/macOS),且已经下完,就在 texlive2022.iso 里面打开命令行(或Shell、Terminal),输入: ./install-tl --gui

                                Tex Live的安装

                                  1. 打开下载完成的ISO文件,找到install-tl-windows.bat,使用管理员权限运行。image.gif编辑
                                  2. 进入如下界面,设置安装根目录即Installation rootimage.gif编辑
                                  3. 点击Advancedimage.gif编辑
                                    如果我们没有使用其他语言的场景要求可以只勾选中英的语言包即可,可以省去很多的空间。image.gif编辑
                                  4. 因为本文是针对Visual Studio Code来进行使用的,对于安装Texworks前端我们可以选择不勾选,最终界面如下,最终等待其慢慢安装即可
                                    :进入安装后此时切勿乱点击Abort
                                    image.gif编辑
                                    image.gif编辑
                                    image.gif编辑
                                  5. 打开cmd 输入tex -v出现信息,则可验证安装成功!
                                  6. 如果安装报错:
                                  open(>C:\Users\\x{00c2}ío\x{00c6}ó\x{00ee}\AppData\Local\Temp\sj5U6hahZk\tnOx_DyThu/texlive.infra.win32.r57932.tar.xz) failed: No such file or directory at D://tlpkg/TeXLive/TLUtils.pm line 1220, <STDIN> line 96.
                                  1. image.gif原因:操作系统用户名是中文,使用win + R打开命令行即可看见自己的操作系统的用户名,这个时候可以使用下面的方法解决:
                                  右键桌面我的电脑(或者是计算机)图标,找到属性-->高级系统设置-->环境变量,在最上面一栏可以看到用户变量这个时候找到TEMP
                                  TMP的属性值修改为:%SystemRoot%\TEMP
                                  对于下面一栏中的系统变量也是一样修改为%SystemRoot%\TEMP,修改完成之后运行之后就可以正常安装latex了,可以修改latex安装到任意一个盘
                                  1. 如果出现tex既不是外部命令也不是内部命令需要自己配置一下环境变量,在系统变量和用户变量path中加入自己的安装目录(比如我的是 D:\Texlive\2022\bin\win32)image.gif编辑

                                  Visual Studio Code

                                  VS Code 是一款免费的代码编辑器,可在 macOS、Linux 和 Windows 操作系统上运行。

                                  根据自己的系统选择合适的版本官网下载

                                  关于Visual Studio Code的具体的下载,安装配置等,请移步此文章VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了

                                  Visual Studio Code配置LaTex

                                    1. Visual Studio Code 安装完成之后,在扩展商店安装 LaTeX Workshop 插件image.gif编辑
                                    2. 点击Visual Studio Code的齿轮样式的设置图标,选择设置,跳转到GUI设置页面
                                    3. 为了更加方便的设置LaTex的环境,我们需要将设置的GUI界面转换成JSON页面,JSON设置页面虽然相对 GUI 而言不那么直观,但却可以对自己想要的功能直接进行代码编写,且代码设置可以直接克隆别人的代码到自己的编辑器中,从而直接完成相应设置,比较便捷。
                                    4. 输入如下LaTex配置代码(此配置不含外部PDF查看器配置)
                                    {
                                        //---------------LaTex配置-------------------------------------
                                        "latex-workshop.latex.autoBuild.run": "onSave",
                                        //设置是否自动编译
                                        "latex-workshop.showContextMenu": true,
                                        //右键菜单
                                        "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",
                                                    "%DOC%"
                                                ]
                                            },
                                            {
                                                "name": "pdflatex",
                                                "command": "pdflatex",
                                                "args": [
                                                    "-synctex=1",
                                                    "-interaction=nonstopmode",
                                                    "-file-line-error",
                                                    "%DOC%"
                                                ]
                                            },
                                            {
                                                "name": "latexmk",
                                                "command": "latexmk",
                                                "args": [
                                                    "-synctex=1",
                                                    "-interaction=nonstopmode",
                                                    "-file-line-error",
                                                    "-pdf",
                                                    "-outdir=%OUTDIR%",
                                                    "%DOC%"
                                                ]
                                            },
                                            {
                                                "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"
                                        ],
                                        //设置为onFaild在构建失败后清除辅助文件
                                        "latex-workshop.latex.autoClean.run": "onFailed",
                                        // 使用上次的recipe编译组合
                                        "latex-workshop.latex.recipe.default": "lastUsed",
                                         // 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击
                                        "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click"
                                    }
                                    1. image.gif
                                    注意: SON文件编写规则,每个代码语句(除代码块儿最后一句)都需要加上英文状态下的,,否则就会报错,而每个代码块儿最后一句是不需要加上,
                                    如后续需上述代码后在添加其他代码,在最后一句后加上,然后在添加,依次添加同理如上。

                                    对上文的配置解读:

                                    "latex-workshop.latex.autoBuild.run": "onSave"

                                    image.gif

                                    //设置何时使用默认的(第一个)编译链自动构建 LaTeX 项目,即什么时候自动进行代码的编译。有三个选项:

                                      1. onFileChange:在检测任何依赖项中的文件更改(甚至被其他应用程序修改)时构建项目,即当检测到代码被更改时就自动编译tex文件;
                                      2. onSave : 当代码被保存时自动编译文件;
                                      3. never: 从不自动编译,即需编写者手动编译文档
                                      "latex-workshop.showContextMenu": true

                                      image.gif

                                      //启用上下文LaTeX菜单。此菜单默认状态下停用,即变量设置为false,因为它可以通过新的 LaTeX 标记使用(新的 LaTeX 标记能够编译文档,将在下文提及)。只需将此变量设置为true即可恢复菜单。即此命令设置是否将编译文档的选项出现在鼠标右键的菜单中。

                                      两者区别:设置为true时,菜单中多了两个选项,其中多出来的第一个选项为进行tex文件的编译,而第二个选项为进行正向同步,即从代码定位到编译出来的 pdf 文件相应位置,下文会进行提及。

                                      //按需选择turefalse

                                      "latex-workshop.intellisense.package.enabled": true

                                      image.gif

                                      //设置为true,则该拓展能够从使用的宏包中自动提取命令和环境,从而补全正在编写的代码。

                                      "latex-workshop.message.error.show"  : false,
                                      "latex-workshop.message.warning.show": false

                                      image.gif

                                      //设置当文档编译错误时是否弹出显示出错和警告的弹窗。因为这些错误和警告信息能够从终端中获取,且弹窗弹出较烦,故而均设置为false,请按需选择turefalse

                                      "latex-workshop.latex.tools": [
                                              {
                                                  "name": "xelatex",
                                                  "command": "xelatex",
                                                  "args": [
                                                      "-synctex=1",
                                                      "-interaction=nonstopmode",
                                                      "-file-line-error",
                                                      "%DOC%"
                                                  ]
                                              },
                                              {
                                                  "name": "pdflatex",
                                                  "command": "pdflatex",
                                                  "args": [
                                                      "-synctex=1",
                                                      "-interaction=nonstopmode",
                                                      "-file-line-error",
                                                      "%DOC%"
                                                  ]
                                              },
                                              {
                                                  "name": "latexmk",
                                                  "command": "latexmk",
                                                  "args": [
                                                      "-synctex=1",
                                                      "-interaction=nonstopmode",
                                                      "-file-line-error",
                                                      "-pdf",
                                                      "-outdir=%OUTDIR%",
                                                      "%DOC%"
                                                  ]
                                              },
                                              {
                                                  "name": "bibtex",
                                                  "command": "bibtex",
                                                  "args": [
                                                      "%DOCFILE%"
                                                  ]
                                              }
                                          ]
                                      //定义在下文 recipes 编译链中被使用的编译命令,此处为默认配置,不需要进行更改。其中的name为这些命令的标签,用作下文 recipes 的引用;而command为在该拓展中的编译方式。
                                      //我们可以更改的代码为
                                      //将编译方式: pdflatex 、 xelatex 和 latexmk 中的%DOC更改为%DOCFILE。
                                      //%DOCFILE表明编译器访问没有扩展名的根文件名,而%DOC表明编译器访问的是没有扩展名的根文件完整路径。
                                      //使用%DOCFILE可以将文件所在路径设置为中文,但不建议这么做,因为涉及到代码,当其余编译器引用时该 tex 文件仍需要根文件完整路径,且需要为英文路径。

                                      image.gif

                                      对于上文的具体解释请看LaTex-Workshop的Wiki

                                      "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"
                                                  ]
                                              }
                                          ]
                                      //对编译链进行定义:
                                      //name是标签,也就是出现在工具栏中的链名称;
                                      //tool是name标签所对应的编译顺序,其内部编译命令来自上文latex-workshop.latex.recipes中内容。
                                      //定义完成后,能够在 vscode 编译器中能够看到的编译顺序

                                      image.gif

                                      PDFLaTeX 编译模式与 XeLaTeX 的区别?

                                             pdfLaTeX是比较原始的版本,对Unicode的支持不是很好,所以显示汉字需要使用CJK宏包。它不支持操作系统的truetype字体(*.ttf),只能使用type1字体。优点是支持的宏包比较多,有些老一点的宏包必须用pdfLaTeX来编译。

                                             XeLaTeX是新的Unicode版本,内建支持Unicode(UTF-8),自然也包括汉字在内,而且可以调用操作系统的truetype字体。如果你的文档有汉字,那么推荐用XeLaTeX。缺点是不支持某一些宏包。

                                             PDFLaTeX 进行编译的速度比 XeLaTeX 速度快。

                                      "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"
                                          ]
                                      //编译链:为了更方便编译,因为如果涉及到.bib文件,就需要进行多次不同命令的转换编译,比较麻烦,而编译链就解决了这个问题。
                                      //设置编译完成后要清除掉的辅助文件类型,若无特殊需求,无需进行更改。

                                      image.gif

                                      "latex-workshop.latex.autoClean.run": "onFailed"

                                      image.gif

                                      //设置何时对上文设置的辅助文件进行清除。其变量有:

                                        1. onBuilt : 无论是否编译成功,都选择清除辅助文件;
                                        2. onFailed : 当编译失败时,清除辅助文件;
                                        3. never : 无论何时,都不清除辅助文件。 由于 tex 文档编译有时需要用到辅助文件,比如编译目录和编译参考文献时,如果使用onBuilt命令,则会导致编译不出完整结果甚至编译失败; 而有时候将 tex 文件修改后进行编译时,可能会导致 pdf 文件没有正常更新的情况,这个时候可能就是由于辅助文件没有进行及时更新的缘故,需要清除辅助文件了,而never命令做不到这一点; 故用onFailed,同时解决了上述两个问题。
                                        "latex-workshop.latex.recipe.default": "lastUsed"

                                        image.gif

                                        //设置 vscode 编译 tex 文档时的默认编译链。有两个变量:

                                          1. first : 使用latex-workshop.latex.recipes中的第一条编译链,故而您可以根据自己的需要更改编译链顺序;
                                          2. lastUsed : 使用最近一次编译所用的编译链。
                                          "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click"

                                          image.gif

                                          //用于反向同步(即从编译出的 pdf 文件指定位置跳转到 tex 文件中相应代码所在位置)的内部查看器的快捷键绑定。变量有两种:

                                            1. ctrl-click : 为默认选项,使用Ctrl/cmd+鼠标左键单击
                                            2. double-click : 使用鼠标左键双击

                                            简单测试编译

                                              1. 在VSCode中新建并打开文件夹,之后所产生的文件都在此文件夹下。
                                              2. 在新建的文件夹下新建tes文件,扩展名是.tex。
                                              3. 编写tex文档
                                              4. 在test.tex中输入
                                              \documentclass{article}
                                              \begin{document}
                                              hello,world
                                              \end{document}
                                              1. image.gif
                                              2. 单击"Recipe:xelatex",使用xelatex编译,预览可以选择在VSCode的标签页中打开,也可以选择在浏览器中打开。或者点击右上角的预览按钮。image.gif编辑
                                                注意:当你更改了tex文档的时候,需要先进行编译,然后才能预览,否则内容还是修改之前的内容image.gif编辑

                                              SumatraPDF 安装设置

                                              由于想要看到 pdf 文件的完整展现效果,使用内置查看器已无法满足需求,这时可以使用外部查看器进行查看。

                                              外部查看器的优势是能够看到 pdf 文件在查看器中的目录,可以实时进行跳转;且根据笔者使用来看,外部查看器展示出来的 pdf 默认会放大一些,使得字体变大,要更加让人舒服一些。

                                              该软件的优点在于在具有 pdf 阅读功能的同时很轻量,安装包不到 10MB 大小,且支持双向同步功能。通过调整其与 vscode 的窗口位置,能够在拥有这些优势的同时,达到与内置 pdf 查看具有相同的效果。

                                              关于SumatraPDF 安装设置请看此文章:SumatraPDF 安装设置

                                              😸个人主页👉:神兽汤姆猫

                                              📖系列专栏:开发语言环境配置Java学习Java面试  、Markdown

                                              🔔感言💭:学习上的每一次进步,均来自于平时的努力与坚持。

                                              💕如果此篇文章对您有帮助的话,请点赞转发收藏这对我有很大的帮助。

                                              相关文章
                                              |
                                              6月前
                                              Visual Studio 2022 中VLD库如何安装
                                              Visual Studio 2022 中VLD库如何安装
                                              732 1
                                              |
                                              6月前
                                              Visual Studio 2022 中VLD库如何安装
                                              Visual Studio 2022 中VLD库如何安装
                                              704 0
                                              |
                                              6月前
                                              |
                                              JSON C++ 数据格式
                                              【C++】Visual Studio C++使用配置Json库文件(老爷式教学)
                                              【C++】Visual Studio C++使用配置Json库文件(老爷式教学)
                                              |
                                              17天前
                                              |
                                              JavaScript 前端开发 开发者
                                              如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤
                                              随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤。通过这些工具,可以显著提升编码效率和代码质量。
                                              174 4
                                              |
                                              5月前
                                              |
                                              IDE 开发工具 C语言
                                              Visual Studio 2017 安装及使用(新手)
                                              Visual Studio 2017 安装及使用(新手)
                                              1198 0
                                              |
                                              4月前
                                              |
                                              弹性计算 自然语言处理 Windows
                                              通义灵码 Visual Studio 下载安装指南(附安装包)
                                              本安装步骤适用于 Windows 10 及以上操作系统中安装和使用通义灵码。
                                              131641 20
                                              |
                                              3月前
                                              |
                                              编译器 C++ 开发者
                                              Visual Studio属性表:在新项目中加入已配置好的C++库
                                              通过以上步骤可以确保Visual Studio中新项目成功地加入了之前已配置好的C++库。这个过程帮助开发者有效地管理多个项目中共享的库文件,提升开发效率。
                                              91 0
                                              |
                                              4月前
                                              |
                                              前端开发 JavaScript 开发工具
                                              |
                                              5月前
                                              |
                                              C++
                                              新手小白第一次使用VisualStudio的简单配置教程
                                              新手小白第一次使用VisualStudio的简单配置教程
                                              |
                                              5月前
                                              |
                                              JSON 开发工具 C语言
                                              编程入门(五)【Visual Studio Code安装与C/C++语言运行】
                                              编程入门(五)【Visual Studio Code安装与C/C++语言运行】
                                              757 0