macOS 配置 LaTeX ( MacTeX + VScode + Skim )

macOS + VScode + LaTeX (环境配置)

前几天想学用 LaTeX 写文章,发现 LaTeX 自带的编辑器和 Subline Text 外观的自由度不大,于是就想到了拥有丰富主题的 VScode 。

但网上对于 macOS 上 VScode 的 LaTeX 配置教程很少,而且都比较零散,也没有很好的解决我在配置中遇到的种种问题。所以我就把我的配置过程和配置中用到的资源整理一下,看看能不能帮到你叭。

1. 安装 MacTeX

MacTeX 是 TeX Live 的 Mac 版本

MacTeX 是 LaTeX 的基础运行环境,提供 LaTeX 的编译器和内置命令 TeX bin 等。关于MacTeX的安装,这里使用 tug(TeX User Group) 提供的安装包。由于安装包较大,而且这是个国外网站,下载过程要持续十到二十分钟,耐心等等就好。Click to Download

下载完成后,打开Terminal,键入“ latex -version“ 查看是否安装成功。若安装成功,终端显示 LaTeX 的版本信息(如下图);

macOS 配置 LaTeX ( MacTeX + VScode +  Skim )

若提示 “ zsh: command latex not found ” 可能是 TeX 命令添加不成功,试试手动添加。找到 MacTeX 的安装路径,并在该路径下找到 “ TeX bin ” 文件夹,拷贝该文件夹的绝对路径,添加到环境变量和系统变量中即可(使用 nano 或 vim)。

添加成功后,在终端使用 ” env ” 查看 PATH 中是否已经有 TeX bin 命令。

macOS 配置 LaTeX ( MacTeX + VScode +  Skim )

2. 安装 CTAN 的 Images 镜像

如果第一步已经下载成功,就不用再使用镜像加速下载了

如果 tug 下载速度太慢,可尝试使用镜像加速下载。我使用的是重庆大学的开源镜像网站,目录为 “ Index of / CTAN / systems / texlive / Images / ”。进入后下载该目录下大小为 4G 的第一个 texlive.iso。Click to go to Images

macOS 配置 LaTeX ( MacTeX + VScode +  Skim )

3. 下载 Skim 阅读器

Skim 阅读器是一个支持 macOS 系统的嵌入式轻量级 PDF 阅读器,相当于 Windows 下的 Sumatra 阅读器

LaTeX 支持使用外部阅读器浏览 PDF 文件。使用外部自定义的 PDF 阅读可以带来更好的阅读体验,而且可以实目前 VScode 中的分屏,实时浏览文章的排版和效果,超级方便。

如果在 Skim 官网 下载速度较慢,可以试试在 Softonic 或 SourceForge 上下载。

4. 在 VScode 中下载 LaTeX Workshop 插件

LaTeX Workshop 是 VScode 中支持 LaTeX 语言的插件,提供 LaTeX 文件的编译、项目的创建、排版的浏览等功能

在 VScode 的 Extension 中搜索 LaTeX Workshop 进行安装。

macOS 配置 LaTeX ( MacTeX + VScode +  Skim )

安装成功后,在工作区下方的状态栏中会出现一个小对勾(或小叉号),点击打开就可以进入 LaTeX 的工作台。

macOS 配置 LaTeX ( MacTeX + VScode +  Skim )

5. 配置 LaTeX Workshop 的 Settings JSON 文件

安装完成后,需要配置工作区的编译工具,编译命令,自动编译等才可以正常使用。

(1)使用 “ command + shift + P ” 打开命令行

macOS 配置 LaTeX ( MacTeX + VScode +  Skim )

(2)键入 “ Open Settings(JSON)” 打开JSON配置文件,将如下代码添加进配置。添加就好,必定不要覆盖!

    // LaTeX
    // 不在保存的时候自动编译
    "latex-workshop.latex.autoBuild.run": "never",
    // 编译工具
    "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": "xelatex*2",
            "tools": [
                "xelatex",
                "xelatex"
            ],
        },
        {
            "name": "pdflatex",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "xe->bib->xe->xe",
            "tools": [
                "xelatex",
                "bibtex",
                "xelatex",
                "xelatex"
            ]
        },
        {
            "name": "pdf->bib->pdf->pdf",
            "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",  
        "*.nav",  
        "*.snm",  
        "*.synctex.gz"  
    ],

    // // 使能从 VSCode跳转到 Skim 里相应位置
    // // external pdf viewer
    // "latex-workshop.view.pdf.viewer": "external",
    // "latex-workshop.view.pdf.external.synctex.command": "/usr/local/bin/displayline",
    // "latex-workshop.view.pdf.external.synctex.args": [
    //     "-r",
    //     "%LINE%",
    //     "%PDF%",
    //     "%TEX%"
    // ],

    // // 使能从 VSCode 中直接打开 Skim
    // "latex-workshop.view.pdf.external.viewer.command": "/usr/local/bin/displayline",
    // "latex-workshop.view.pdf.external.viewer.args": [
    //     "0",
    //     "%PDF%"
    // ],

5. 配置 LaTeX Workshop 的快捷键 Keybindings JSON 文件

将常用的指令添加到快捷键可以提高编辑效率,命令与对应的快捷键如下:

前向搜索:option + s
开始编译:option + b
终止编译:option + t
选择其他recipe编译:option + e

配置时同样打开命令行,键入“ Open KeyBorad Shortcuts (JSON) ” ,打开快捷键配置文件,添加如下代码:

    {
        // 前向搜索
        "key": "alt+s",
        "command": "latex-workshop.synctex",
        "when": "editorTextFocus"
    },
    {
        // 使用默认 recipe 编译
        "key": "alt+b",
        "command": "latex-workshop.build",
        "when": "editorTextFocus"
    },
    {
        // 终止编译
        "key": "alt+t",
        "command": "latex-workshop.kill",
        "when": "editorTextFocus"
    },
    {
        // 选择其他 recipe 编译
        "key": "alt+e",
        "command": "latex-workshop.recipes"
    },

6.测试

配置完成后,使用工作台新建.tex文件对环境进行测试。

(1) 先新建测试文件 test.tex 文件,复制以下测试代码:

documentclass{article}
usepackage[UTF8, scheme = plain]{ctex}

egin{document}
This is a test file
end{document}

(2) 点击小勾,打开 LaTeX 工作台,点击 “ Build Project ” 进行编译

macOS 配置 LaTeX ( MacTeX + VScode +  Skim )

(3) 编译成功后,点击上方状态栏右边的阅读按钮,可在工作台分屏查看代码的 PDF 文件

macOS 配置 LaTeX ( MacTeX + VScode +  Skim )

macOS 配置 LaTeX ( MacTeX + VScode +  Skim )

7. 异常解决

当运行时出现 “ Recipe terminated with fatal error: spawn xelatex ENOENT ” 异常,先检查环境变量 PATH 中是否存在 TeX bin 路径,TeX bin 中存放的是与 TeX 有关的指令,若环境变量中没有该指令集,会导致 VScode 在编译时找不到指令。检查方法和 “ 1. 安装TeX ” 的检查方式一样,若不存在,则在 PATH 中添加 TeX 的指令集。

若 PATH 中存在该指令集但仍编译不成功,思考可能是环境变量未更新。重新启动计算机,再进行编译,即可更新所有环境变量。此时再尝试编译,应该就可以成功了。

— end —
— Author : Dong Levine —
— Date : 2021-07-15 —

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
油瓶土土在家抠脚的头像 - 鹿快
评论 共1条

请登录后发表评论