在 Ubuntu / Linux 上轻量安装 LaTeX:TinyTeX 使用记录

文章目录

为什么不直接装 TeX Live

在 Linux 上编译 .tex 文件,很多教程会让你直接 apt-get install texlive-full。问题是:

  • 体积大:完整版 TeX Live 动辄 5-7 GB,绝大部分宏包你可能一辈子都用不上;
  • 版本旧 :Ubuntu 官方源里的 texlive 包是跟着系统发行版一起冻结的,比如 22.04(jammy)源里的 TeX Live 版本停留在 2021,官方 TeX Live 早就更新到 2026 了,装出来的东西是"过时的老版本";
  • 需要 sudo:装系统目录,改坏了不好清理。

如果只是偶尔编译一份简历、一篇小论文,没必要为此装一整套重家伙。这时候 TinyTeX 是个更合适的选择。

TinyTeX 是什么

TinyTeX 是基于官方 TeX Live 做的一个"精简发行版":

  • 装的时候只带一个很小的基础核心(几十 MB),不需要 sudo,直接装在你自己的用户目录下;
  • 编译文档时缺什么宏包,报错会明确告诉你缺什么,用一条 tlmgr install 包名 补上就行,不用整套装齐;
  • 卸载极其简单------本质上就是一个自包含的文件夹,删掉文件夹就等于卸载干净,不会在系统里留下杂七杂八的注册信息。

安装步骤

第 0 步:检查依赖(Ubuntu 一般自带,确认一下即可)

bash 复制代码
perl -mFile::Find /dev/null && echo "perl OK"
which xz && echo "xz OK"
# 如果 xz 提示找不到:
# sudo apt-get install -y xz-utils

第 1 步:一条命令安装 (默认装到 ~/.TinyTeX,同时在 ~/bin 建好可执行文件的软链接)

bash 复制代码
wget -qO- "https://yihui.org/tinytex/install-bin-unix.sh" | sh

这条命令是"边下边执行",不会在本地留下安装脚本文件;脚本内部真正的下载目标是 GitHub 上的 TinyTeX 发行包,下载到临时目录解压后自动清理,你不需要手动管理任何中间文件。

第 2 步:让新装好的命令在终端里生效

bash 复制代码
# 开一个新的终端标签即可自动生效;如果没生效,手动执行:
source ~/.profile

第 3 步:验证

bash 复制代码
which xelatex
xelatex --version

第 4 步:按需补齐宏包(缺什么装什么,这里是我自己编译简历用到的一批)

bash 复制代码
tlmgr update --self
tlmgr install fontspec xecjk xltxtra xifthen xcolor geometry titlesec enumitem nth pgf cite hyperref tabularx tools setspace l3packages

第 5 步:编译一份文档验证

bash 复制代码
xelatex your_file.tex
xelatex your_file.tex   # 连跑两遍,让交叉引用/目录/超链接稳定下来

卸载步骤

TinyTeX 官方的卸载方式非常干脆:

bash 复制代码
# 1. 先把 PATH 里的软链接引用清掉
tlmgr path remove

# 2. 直接删掉整个文件夹------这就是全部
rm -rf ~/.TinyTeX

# 3. 验证卸干净了
which xelatex   # 应该没有任何输出

如果你之前手动改过 ~/.bashrc 加过 PATH,记得也去把那一行删掉,避免留一条指向空目录的死路径。

小结

TinyTeX 的核心思路很简单:装的时候小、缺什么补什么、卸载的时候一删了之。比起动辄几个 GB、还要 sudo 权限的完整 TeX Live,对于只是偶尔编译一下简历、论文的场景,是更轻量、更可控的选择。

相关推荐
CodeYp20197 小时前
第14讲:mmap 实现文件 LRU 缓存
linux·lru·mmap
程序开发阿元7 小时前
一台 20G 的 VPS 被日志吃掉一半:我按这个顺序查了二十分钟
linux·ssh
.冰块.8 小时前
流量大了自动加 Pod!K8s HPA 扩缩容与 ResourceQuota/LimitRange 资源管控实战
linux·云原生·容器·kubernetes·hpa·quota·limitrange
承渊政道8 小时前
Linux网络学习【深入理解多路转接select、poll的代码改写】
linux·ubuntu·select·多路转接·poll
雪落漂泊8 小时前
Linux进程(四)概念:命令行参数和环境变量篇
linux·运维·服务器
方便面不加香菜8 小时前
Docker Container -- 容器命令详解
运维·docker·容器
qq_377572779 小时前
linux x86 arm loongarch
linux
Dragon~Snow9 小时前
Centos Stream10 安装 MySQL-9.7.2-linux-glibc2.28-x86_64.tar
linux·mysql·centos
say_fall9 小时前
【Linux系统编程】Linux进程信号:从“外卖到了“到内核里的一张位图
linux·运维·服务器·车载系统·智能硬件
Z21-X9 小时前
云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析
运维·笔记·学习·云原生