ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何利用VSCode书写Latex并进行编译

2021-04-29 21:02:27  阅读:287  来源: 互联网

标签:Latex pdflatex name latex VSCode 编译 workshop xelatex


1.安装Textlive

markdown作为一种非常适于书写笔记的文本语言,但是当需要书写论文的时候,markdown就有些力不从心,这个时候,LaTex就是一种不错的选择。

然而,textstudio的界面十分原始,并且颜值不高,而且软件比较大,因此,为什么不选择最好的文本编辑器之一Visual Studio Code呢?

当然,你需要首先下载Textlive,建议从国内的镜像下载。

华为镜像:https://mirrors.huaweicloud.com/CTAN/systems/texlive/Images/
阿里云镜像:https://mirrors.aliyun.com/CTAN/systems/texlive/Images/

例如,进入华为镜像之后


下载最新版即可。

之后找到这个文件,右键点击装载,找到install-tl-windows,右键管理员身份运行。

进入安装界面,点击左下角的“Advanced”进入高级安装来取消你不需要安装的宏包。

在这里,你可以更改你所需要安装的宏包和语言,并更改安装位置等等

点击“Customize”来取消勾选不需要的宏包,这里可以取消不需要的语言,减少一定的空间。

之后安静等待,安装的过程比较漫长。笔者大概花费了20-30分钟。

安装完成之后,可以在命令行输入xelatex -v来检查是否安装成功。

2.安装VSCode插件——LaTeX Workshop

这一步很简单,进入VSC的扩展商店,找到,安装即可。

这个时候,创建一个tex文件,你会发现,VSC已经可以为你自动提示并且高亮。

3.配置你的LaTeX插件,设置配置文件

在 VSCode 界面下按下 F1,然后键入“setjson”,点击“首选项: 打开设置(JSON)”

你会发现,你的文件夹下已经生成了一个.vscode的文件夹,这里即存储着你的配置文件(json)

我们要做的就是配置好json文件。

3.1整体json代码

我们首先放出所有的配置文件,并在下一节进行逐步说明。

{
    "latex-workshop.latex.autoBuild.run": "never",
    "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",
                "%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"
}

如果您不想了解这里的配置文件,直接调到第4节即可。

3.2配置文件解释

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

自动编译选项,never: 从不自动编译

"latex-workshop.showContextMenu": true

上下文LaTeX菜单,设置为true之后,右击,你会发现多出了两个选项。

之后我们的编译就是使用这里的“Build LaTex Project”选项,或者右上角的编译按钮。

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

设置为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%"
            ]
        }
    ]

这一步是设置编译工具。

这里不做过多说明,使用%DOCFILE可以将文件所在路径设置为中文,%DOC则不可以,如果为你规范,设置%DOC即可。

如果你想了解看到,请看这个插件的官方说明:

https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#placeholders

"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"

设置是否要清理编译后的辅助文件(包括上面提到的文件类型)。

  • onFailed : 当编译失败时,清除辅助文件;
  • onBuilt : 无论是否编译成功,都选择清除辅助文件;
  • never : 无论何时,都不清除辅助文件。

onBuilt会让你的目录很干净,但是单有些时候需要保留一些编译文件,所以onFailed是不错的选择,失败则清除,成功则保留。

"latex-workshop.latex.recipe.default": "lastUsed"

设置默认编译链

  • first:使用第一条编译链
  • lastUsed:使用最近一次编译所用的编译链

二者各有优势,请自行选择。

"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click"

反向同步,即点击编译后的pdf可以跳到相应的代码位置。

  • ctrl-click:Ctrl/cmd+鼠标左键单击
  • double-click:双击

例如

4.编译测试

新建一个tex测试文件,例如

\documentclass{article}
\usepackage{lipsum}
\begin{document}

    $ x_{ij}^{2}+y_{ij}^{2}=ab $

\end{document}

然后你可以在这里选择编译链并进行编译。

为了更方便进行编译,可对其设置快捷键,设置快捷键步骤如下:

之后,按住你设置的快捷键。

就可以选择你的编译链进行编译。

开始你的测试吧!

相信你已经成功了!

本篇博客参考了https://zhuanlan.zhihu.com/p/166523064,你可以在那里看到更加详细的说明

标签:Latex,pdflatex,name,latex,VSCode,编译,workshop,xelatex
来源: https://www.cnblogs.com/jajison/p/14719422.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有