BLOG

从零开始在 VS Code 中集成 LaTex 环境

废话-写在前面

半年多,作者经历了从LaTex->markdown->typst->markdown的过程,最终又选择了投入LaTex的怀抱

起初作者觉得 LaTex 在各大论文投刊时十分重要(其实是觉得很有b格),所以尝试使用

但作者这种fw也写不出什么有营养的论文,又嫌弃其语法复杂,故润md

后来总感觉md单调极了,一点不好看,又润typst

在typst好看的模板下坚持了两个月,又感觉排版太粗糙,自由度不高

一番思考之下,总觉得未来能发顶刊(x,故回LaTex😎!

为什么选择LaTex

  1. *** 实在用不明白 Word *** (我恨
  2. *** 显得专业(bushi ***
  3. LaTex排版基本上可以为所欲为(你行你来
  4. 很多期刊都有LaTex的模板,方便您投😘!(IEEE、ACM、Nature等)
好看的LaTex排版示例
好看的LaTex排版示例

具体流程

壹 ~ 下载并安装textlive编译器

作者选择清华镜像源安装,实测速度很快(至少比贵校施工速度快得多👌

打开链接 https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/

下载下图红色箭头指的即可

示例图片1
示例图片1

下载后打开,右键”以管理员身份运行”下图红色箭头所指

示例图片2
示例图片2

按下图操作即可

示例图片3
示例图片3

按下图修改高级设置后安装,它会自动配置环境变量

示例图片4
示例图片4

安装时间约半小时,趁它在安装,我们偷偷进行下一步即可。

安装成功示例
安装成功示例

希望你待会回来的时候是这样的,不要报错hh

贰 ~ 下载并安装 VS Code

去官网 https://code.visualstudio.com/ 下载后安装就行了,记得改安装路径,默认在C盘

叁 ~ 在 VS Code上配置LaTex环境

在扩展里下载 “LaTex Workshop”

如果是新安装VS Code的英文小白用户,建议先安装 “Chinese (Simplified)” 扩展重启后更改语言

示例图片5
示例图片5

下载完成后Ctrl + Shift + P 后,搜索关键词打开”settings.json”即可

示例图片6
示例图片6

修改下面的一些路径并粘贴代码添加到”settings.json”

    "latex-workshop.latex.autoBuild.run": "onSave",//保存后自动编译
    "latex-workshop.showContextMenu": true, //右键菜单显示LaTex相关的
    "latex-workshop.intellisense.package.enabled": true,//启动智能感知,如包和命令补全
    "latex-workshop.message.error.show": false,//禁用编译过程中显示的错误和警告消息。
    "latex-workshop.message.warning.show": false,
    "latex-workshop.latex.recipes": [
        {
            "name": "XeLaTeX",
            "tools": [
                "xelatex"
            ]
        },
        {
            "name": "PDFLaTeX",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "BibTeX",
            "tools": [
                "bibtex"
            ]
        },
        {
            "name": "LaTeXmk",
            "tools": [
                "latexmk"
            ]
        },
        {
            "name": "pdflatex->bibtex->pdflatex*2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        },
        {
            "name": "xelatex->bibtex->xelatex*2",
            "tools": [
                "xelatex",
                "bibtex",
                "xelatex",
                "xelatex"
            ]
        }
    ],
    "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": [
                "-xelatex",
			    "-synctex=1",
			    "-shell-escape",
		    	"-interaction=nonstopmode",
		    	"-file-line-error",
		    	"%DOC%"
            ]
        },
        {
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "%DOCFILE%"
            ]
        }
    ],
    "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": "onBuilt",//每次成功编译后自动清理临时文件。
    "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
    "latex-workshop.intellisense.biblatexJSON.replace": {

    },

    "latex-workshop.view.pdf.viewer": "tab",  //内部预览pdf,舒服极了
    "latex-workshop.view.pdf.external.viewer.command": "D:SumatraPDF\\SumatraPDF.exe",//外部查看器,改成你自己的路径
    "latex-workshop.view.pdf.external.viewer.args": [
        "--unique",
        "%PDF%"
    ],
    "latex-workshop.view.pdf.external.synctex.command": "D:SumatraPDF\\SumatraPDF.exe",//外部查看器,改成你自己的路径
    "latex-workshop.view.pdf.external.synctex.args": [
          "-forward-search",
          "%TEX%",
          "%LINE%",
          "-reuse-instance",
          "-inverse-search",
          "\"D:\\VScode\\Microsoft VS Code\\Code.exe\" \"D:\\Program Files\\Microsoft VS Code\\resources\\app\\out\\cli.js\" --ms-enable-electron-run-as-node -r -g \"%f:%l\"",
          "%PDF%"
    ],//注意修改路径即可
    "latex-workshop.view.autoFocus.enabled": true,//编译后自动将焦点转移到 PDF 预览窗口
    "latex-workshop.latex.recipe.default": "lastUsed",//使用上一次使用的编译链作为默认编译方法

补充:最后一行”latex-workshop.latex.recipe.default”的可选参数可以修改为你希望的上述六个编译链中的一个

即”latex-workshop.latex.recipes”中的”XeLaTeX”,“PDFLaTeX”……

你也可以定义自己的编译链,不过一般这几个常用的就能满足绝大部分需求了。

测试一下吧!

创建一个”test.tex”文件,写入下面内容

\documentclass{article}

\title{Simple LaTeX Test}
\author{Your Name}
\date{\today}

\begin{document}

\maketitle

\section{Introduction}
This is a simple LaTeX test document.

\section{Math Example}
Here is an example of a mathematical equation:

\[
E = mc^2
\]

\section{Itemized List}
\begin{itemize}
    \item First item
    \item Second item
    \item Third item
\end{itemize}

\end{document}

编译后,打开内部pdf预览,你会得到如图所示

成功!
成功!

写在后面

如果你希望实时预览,即一边写tex文件,一边看到pdf文件的更改

还记得上面配置的保存文件后自动编译嘛?

你只需要在**“settings.json”**里再加入这三行代码

    "files.autoSave": "afterDelay",
    "files.autoSaveDelay": 3000,//ms,可以自己更改
    "files.autoSaveWhenNoErrors": true,//没报错才能保存

这样即会几秒自动编译一次,更新一次pdf文件,也就能实现实时预览

(不过如果文件过长,编译一次的速度就很慢……嗯……你懂的)

更多关于LaTex Workshop的内容在https://github.com/James-Yu/LaTeX-Workshop

如果你有更好的办法实现,欢迎留言!谢谢!



商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。本文采用 CC BY-NC-SA 4.0 - 非商业性使用 - 相同方式共享 4.0 国际 进行许可。

Comments

Discuss this article here.