简明教程:记录 Ubuntu系统命令行安装TexLive,配置vscode

Ubuntu下安装TexLive,配置VSCode

该方法记录在远程服务器,无可视化条件的情况下,进行TexLive的安装,以及在VSCode上面(远程开发)进行相关配置,最后成功编译tex的全过程。

下载ISO文件

shell 复制代码
sudo apt install curl && curl -L https://mirrors.hust.edu.cn/CTAN/systems/texlive/Images/texlive.iso -o texlive.iso

安装与配置

1. 挂载并安装 TeX Live

bash 复制代码
# 创建挂载点
sudo mkdir -p /mnt/texlive

# 挂载 ISO 镜像
sudo mount -o loop texlive.iso /mnt/texlive

# 进入挂载目录
cd /mnt/texlive

# 运行安装程序(文本模式)
sudo ./install-tl --no-gui

2. 安装配置选项

安装程序会显示文本界面,建议空间充足的情况下直接输入I进行完整安装即可:

  • 输入 D 进入目录设置
  • 确认安装路径(默认是 /usr/local/texlive/2024)
  • 输入 R 返回主菜单
  • 输入 I 开始安装(完整安装约需要 10-30 分钟)

如果想要快速安装基础版本(minimal scheme),可以:

  • 输入 S 进入 scheme 选择
  • 选择 scheme-basicscheme-small

3. 配置环境变量

安装完成后,需要将 TeX Live 添加到系统路径:

使用nano编辑bashrc文件

bash 复制代码
# 编辑 ~/.bashrc 或 ~/.zshrc
nano ~/.bashrc

在文件末尾添加环境变量

(注意年份可能不同,根据实际安装路径调整)

txt 复制代码
export PATH=/usr/local/texlive/2025/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2025/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2025/texmf-dist/doc/info:$INFOPATH

在 nano 编辑器中保存文件的方法:

保存文件:按 Ctrl + O(字母 O,不是数字 0)

会提示 "File Name to Write: ~/.bashrc"

直接按 Enter 确认

退出编辑器:按 Ctrl + X

使配置生效

shell 复制代码
source ~/.bashrc

4. 验证安装、卸载ISO镜像

bash 复制代码
# 检查 TeX Live 版本
tex --version

# 检查 XeLaTeX(用于中文支持)
xelatex --version

# 卸载 ISO 镜像
cd ~
sudo umount /mnt/texlive

5. 配置 VS Code LaTeX Workshop

首先在vscode中安装插件:LaTeX Workshop。

在 VS Code 的 settings.json 中添加配置(按 Ctrl+Shift+P,输入 "Open User Settings (JSON)"):

配置具体是什么含义请看注释

请尤其注意路径配置(command) ,在不确定的情况下,请使用which命令查询,比如查询which xelatex得到地址填入其command中。

完整配置如下

json 复制代码
{
    // LaTex配置
    // 右键菜单
    "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.outDir": "./build",
    // 编译工具和命令(Linux 路径)
    "latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            "command": "/usr/local/texlive/2025/bin/x86_64-linux/xelatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "--output-directory=%OUTDIR%",
                "%DOCFILE%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "/usr/local/texlive/2025/bin/x86_64-linux/pdflatex",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "--output-directory=%OUTDIR%",
                "%DOCFILE%"
            ]
        },
        {
            "name": "latexmk",
            "command": "/usr/local/texlive/2025/bin/x86_64-linux/latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "--output-directory=%OUTDIR%",
                "%DOCFILE%"
            ]
        },
        {
            "name": "bibtex",
            "command": "/usr/local/texlive/2025/bin/x86_64-linux/bibtex",
            "args": [
                "%OUTDIR%/%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"
    ],
    // 设置为 onBuilt 在构建成功后清除辅助文件
    "latex-workshop.latex.autoClean.run": "onBuilt",
    // 使用上一个编译组合
    "latex-workshop.latex.recipe.default": "lastUsed",
    // 设置是否自动编译
    "latex-workshop.latex.autoBuild.run": "onSave",
    // 用于反向同步的内部查看器的键绑定
    "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
    // 控制具有未保存更改的编辑器的自动保存
    "files.autoSave": "afterDelay",
    // 在编辑器中启用自动换行
    "editor.wordWrap": "on",
    // 定义 latex 格式化程序
    "latex-workshop.formatting.latex": "latexindent",
    // Linux 上的 latexindent 路径
    "latex-workshop.formatting.latexindent.path": "/usr/local/texlive/2025/bin/x86_64-linux/latexindent",
    // 保存时自动格式化
    "editor.formatOnSave": true
}

6. 测试编译

创建一个测试文件 test.tex:

latex 复制代码
\documentclass{article}
\usepackage{xeCJK} % 中文支持
\setCJKmainfont{SimSun} % 设置中文字体,根据系统调整

\begin{document}
Hello \LaTeX! 你好,世界!
\end{document}

在 VS Code 中打开该文件,按 Ctrl+Alt+B 或者运行按钮编译。

补充说明

  • 如果需要中文支持,确保系统安装了中文字体(如 sudo apt install fonts-noto-cjk)
  • 完整安装大约需要 7GB 磁盘空间
  • 如果后续需要安装额外宏包,可以使用 tlmgr 命令:tlmgr install <package-name>
相关推荐
猫豆~2 小时前
Shell脚本部署——8day
linux·云计算
屿行屿行2 小时前
【Linux】浅析Linux内存管理机制
linux
誰能久伴不乏2 小时前
深入理解 `poll` 函数:详细解析与实际应用
linux·服务器·c语言·c++·unix
倔强的石头1062 小时前
Linux 进程深度解析(二):进程状态、fork 创建与特殊进程(僵尸 与 孤儿)
linux·运维·服务器
小李小李无与伦比3 小时前
使用Simiki,部署.md文档
linux·运维·服务器
做人不要太理性3 小时前
【Linux系统】ELF 文件格式的硬核揭秘
java·linux·服务器
怀旧,3 小时前
【Linux系统编程】12. 基础IO(下)
linux·运维·服务器
Winter_Sun灬3 小时前
CentOS 7 编译安卓 arm64-v8a 版 OpenSSL 动态库(.so)
android·linux·centos
ベadvance courageouslyミ3 小时前
系统编程之进程
linux·进程·pcb结构体