TeX Live 2024 安装教程(Windows/WSL/Linux)
(2024 年 3 月更新)本文起初是针对 TeX Live 2023 版本编写的。TeX Live 2024 发布后,针对新版的内容进行了调整。
应同学的要求写一个 TeX Live 的安装和使用教程。实际上相关的安装教程已经有很多,本文主要介绍在 WSL 中安装 TeX Live 的方法,这也是我推荐的在 Windows 平台上使用 TeX Live 的方式;同时本文还会简单讨论一下 TeX Live 包含的组件(根据需要选择其中的一部分安装)。
参考链接:
- http://tug.ctan.org/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf (推荐,非常详细)这也是本文主要参考的文献。如果本文不能很好地解决你的问题,不妨看看这个。
什么是 TeX Live?
这一节是简单的科普。如果你知道什么是 TeX Live,可以跳过本节。
TeX Live 是目前 Windows 平台和 Linux 平台上最主流的 LaTeX 发行版。所谓 LaTeX 发行版,是指将 LaTeX 编译引擎(如 pdflatex
、xelatex
、lualatex
等)、宏包(如 beamer
、pgf/tikz
等)、模板(比如一些学校的毕业论文模板)、字体、配套工具(如 tlmgr
、texworks
等)打包在一起的、开箱即用的 LaTeX 套件。
TeX Live 为滚动发行[1],每年发布一版,发布形式是一个全平台的安装镜像(.iso
),发布时间大约是每年的 3 月中下旬。
截至本文最后一次更新时,最新的 TeX Live 版本是 2024。
一些安装平台的对比
首先我推荐在 Linux 平台安装 TeX Live(Mac 不在本文的讨论之列)。出于各种原因(这篇帖子 有比较深入的讨论),Linux 下程序的编译速度可以达到 Windows 下的数倍。根据我的经验,对于 LaTeX 项目,Linux 可以获得至少 5 倍的编译加速。
-
如果你使用原生 Linux,那么皆大欢喜:你可以轻松获得最佳(主要是速度方面)的 TeX Live 体验。
-
如果你使用 Windows:
- 现代 Windows(10、11)提供了一种方便的 Linux 子系统即 WSL,允许 Windows 和 Linux 深度融合,其中 WSL2 提供了原生的 ext4 文件系统。因此将 TeX Live 安装到 WSL(指 WSL2,下同)中,是我最推荐的在 Windows 下使用 LaTeX 工具链的方式。这种方法是将是本文介绍的重点。本文也会介绍使用
vscode-remote
在 WSL 中完成 LaTeX 编写的方法。 - 然而 WSL 本身包含一个完整的 Linux 发行版,可能会占用一点额外空间,而且默认只能装在 C 盘(当然有绕过限制的方法,可以自行查找),这为平时不需要 Linux 环境的同学带来了一些不必要的麻烦,因此本文也会简单介绍一下如何直接在 Windows 系统中安装 TeX Live。
- 现代 Windows(10、11)提供了一种方便的 Linux 子系统即 WSL,允许 Windows 和 Linux 深度融合,其中 WSL2 提供了原生的 ext4 文件系统。因此将 TeX Live 安装到 WSL(指 WSL2,下同)中,是我最推荐的在 Windows 下使用 LaTeX 工具链的方式。这种方法是将是本文介绍的重点。本文也会介绍使用
另外,有些 Linux 发行版的软件源中会带有 TeX Live,但那种安装方式不太推荐。推荐的方法是用镜像安装。
安装前的准备工作
-
如果你决定在 WSL 中安装 TeX Live(推荐),那么你需要自行安装一个 WSL 发行版,微软官方安装教程;本文将以 Ubuntu 22.04(也是目前 WSL 默认的发行版)为例。国内下载 WSL 镜像经常卡住,可以多试几次。
- 提一下本文必要的知识:在 WSL 中,Windows 主系统的分区将自动挂载到
/mnt
文件夹,即你可以通过/mnt/c
、/mnt/d
等等文件夹访问这些分区。你访问的实际上是 NTFS 文件系统,两个文件系统之间的通信由 WSL 自动完成。
- 提一下本文必要的知识:在 WSL 中,Windows 主系统的分区将自动挂载到
-
你应该确保你的文件系统中有至少 3 GB 的空闲空间用于安装 TeX Live。这是本文推荐的安装配置需要的磁盘大小。如果你要安装 TeX Live 2024 的全部组件,那么应该有至少 8GB 的空闲空间。(题外话:想要轻量级排版系统的可以关注一下 Typst 这个项目)
-
你可以预先安装 Visual Studio Code 并安装 LaTeX Workshop 扩展。这也是我推荐的编辑 TeX 文件的工具。我们不会使用 TeX Live 自带的
texworks
工具或者久负盛名的texstudio
工具。- 如果你使用 WSL,那么你应该在 Windows 主系统中安装 VSCode。当你首次在 WSL 的文件系统中打开 VSCode 时,会自动安装需要的服务端程序。此外你还应该安装 Remote Development 扩展包。
下载安装镜像
到某个国内的 CTAN 镜像站下载最新版的 TeX Live 镜像,比如 清华大学开源软件镜像站。
目前最新的 TeX Live 版本为 2024,该文件夹下包含 3 个 .iso
文件,这 3 个文件仅有文件名不同,内容完全相同,你可以任选一个下载。该文件夹下还包含有 md5
摘要文件,你也可以下载下来以备校验。后面会提供 2024 版 TeX Live 镜像的 md5
值。
- 如果你使用 Windows 系统(包括 WSL),可以随便把镜像放在某个地方。为简单起见,下面的例子假设放在
D
盘,即D:\texlive2024.iso
。- 如果你要装在 WSL 中,此时不必也不应该将镜像移入 WSL 的文件系统。后续我们的安装将通过
/mnt/d
来借助 WSL 的文件系统桥梁访问镜像文件。
- 如果你要装在 WSL 中,此时不必也不应该将镜像移入 WSL 的文件系统。后续我们的安装将通过
- 如果你使用原生 Linux 系统,可以放在用户主目录中。此处以
~/texlive2024.iso
为例。
校验安装镜像
这一步是可选的,主要是检查下载过程中镜像有没有出现损坏,以及镜像是否被第三方篡改过。实际上现在的网络条件很好了,一般不会出问题的。如果从正规的镜像站下载,也不必担心篡改的问题。
-
Windows 系统:在 PowerShell 中切换到镜像所在的文件夹(例:
D:\
),然后执行certutil -hashfile texlive2024.iso md5
md5
计算需要完整读取整个镜像文件,因此计算会持续一段时间,取决于你机器的运算速度和硬盘读取速度,请耐心等待。- 在WSL中安装也应该使用这种方法,而不是在 WSL 中通过
md5sum
计算/mnt/d/texlive2024.iso
,那纯粹多此一举且浪费时间。
- 在WSL中安装也应该使用这种方法,而不是在 WSL 中通过
-
Linux 系统:在 Shell(如 bash)中切换到镜像所在的文件夹,然后执行
md5sum texlive2024.iso
md5
计算需要完整读取整个镜像文件,因此计算会持续一段时间,请耐心等待。
你应该可以得到 TeX Live 2024 镜像文件的 md5
值 a54f5524e51267dee37e72e3b3fd31c4
。
挂载安装镜像
-
如果你要装在 WSL 中,那么进入 WSL 的 Shell 并执行
sudo mkdir /mnt/texlive sudo mount /mnt/d/texlive2024.iso /mnt/texlive
你需要提供一次用户的密码(用户密码在 WSL 安装时指定)。应该会得到如下的结果(写保护是正常现象,我们只需要读权限就可以了):
后续我们可以在
/mnt/texlive
中访问安装镜像内部的各种文件。 -
如果你是原生 Linux,操作和上面类似,只是需要把
/mnt/d/texlive2024.iso
换成对应的路径就可以了。 -
如果你是原生 Windows,右键单击
texlive2024.iso
,选择“装载”。然后你可以在“此电脑”中看到这个镜像。记下它的盘符(如Z:
)。
启动安装程序
从这一节开始,WSL 和原生 Linux 的步骤完全一样了,此处不再特别区分,统一以“Linux”代指。
-
Linux:在 Shell 中执行
sudo /mnt/texlive/install-tl
-
Windows:打开 PowerShell 或 cmd,执行
Z:\install-tl-windows.bat --no-gui
盘符需要按需替换为上一节记录的盘符。如果你希望使用 GUI 安装程序,则无需在命令行中执行,直接双击
install-tl-windows.bat
即可。不过本文不会讲解 GUI 安装程序。
你应该能够看到如下内容:
======================> TeX Live installation procedure <=====================
======> Letters/digits in <angle brackets> indicate <=======
======> menu items for actions or customizations <=======
= help> https://tug.org/texlive/doc/install-tl.html <=======
Detected platform: GNU/Linux on x86_64
<B> set binary platforms: 1 out of 15
<S> set installation scheme: scheme-full
<C> set installation collections:
40 collections out of 41, disk space required: 8315 MB (free: 70621 MB)
<D> set directories:
TEXDIR (the main TeX directory):
/usr/local/texlive/2024
TEXMFLOCAL (directory for site-wide local files):
/usr/local/texlive/texmf-local
TEXMFSYSVAR (directory for variable and automatically generated data):
/usr/local/texlive/2024/texmf-var
TEXMFSYSCONFIG (directory for local config):
/usr/local/texlive/2024/texmf-config
TEXMFVAR (personal directory for variable and automatically generated data):
~/.texlive2024/texmf-var
TEXMFCONFIG (personal directory for local config):
~/.texlive2024/texmf-config
TEXMFHOME (directory for user-specific files):
~/texmf
<O> options:
[ ] use letter size instead of A4 by default
[X] allow execution of restricted list of programs via \write18
[X] create all format files
[X] install macro/font doc tree
[X] install macro/font source tree
[ ] create symlinks to standard directories
[X] after install, set CTAN as source for package updates
<V> set up for portable installation
Actions:
<I> start installation to hard disk
<P> save installation profile to 'texlive.profile' and exit
<Q> quit
Enter command:
调整安装配置
这一节是可选的。实际上 TeX Live 中有许多组件是很少用的,为了节省磁盘空间,我们精简一些组件。如果你的硬盘足够大,不在乎空间占用,可以直接进入下一步。
这一节参考了 https://zhuanlan.zhihu.com/p/133984428
TeX Live 的打包策略为体系(scheme)——集合(collection)——软件包/宏包三层。其中可定制安装的是集合层次。TeX Live 2024 包括了 41 个集合。针对这些集合的解释可以参考上面的链接,这里就不赘述了。
Linux 的安装路径不建议改,否则之后出问题查文档可能会雪上加霜。Windows 随意,但路径不能带有非 ASCII 字符,而且不要太深,否则容易出问题。
在安装程序中输入 C
并回车,进入安装组件定制页面。
===============================================================================
Select collections:
a [X] Essential programs and files w [X] Italian
b [X] BibTeX additional styles x [X] Japanese
c [X] TeX auxiliary programs y [X] Korean
d [X] ConTeXt and packages z [X] Other languages
e [X] Additional fonts A [X] Polish
f [X] Recommended fonts B [X] Portuguese
g [X] Graphics and font utilities C [X] Spanish
h [X] Additional formats D [X] LaTeX fundamental packages
i [X] Games typesetting E [X] LaTeX additional packages
j [X] Humanities packages F [X] LaTeX recommended packages
k [X] Arabic G [X] LuaTeX packages
l [X] Chinese H [X] MetaPost and Metafont packages
m [X] Chinese/Japanese/Korean (base) I [X] Music packages
n [X] Cyrillic J [X] Graphics, pictures, diagrams
o [X] Czech/Slovak K [X] Plain (La)TeX packages
p [X] US and UK English L [X] PSTricks
s [X] Other European languages M [X] Publisher styles, theses, etc.
t [X] French N [ ] Windows-only support programs
u [X] German O [X] XeTeX and packages
v [X] Greek
P [X] Mathematics, natural sciences, computer science packages
S [X] TeXworks editor; TL includes only the Windows binary
Actions: (disk space required: 8315 MB)
<-> deselect all
<+> select all
<R> return to main menu
<Q> quit
Enter letter(s) to (de)select collection(s):
输入集合对应的字母可以选中/取消选中。支持批量输入。可以不装的组件有:
d [ ] ConTeXt and packages
e [ ] Additional fonts // 各种字体,空间大头
g [ ] Graphics and font utilities
i [ ] Games typesetting // 排版游戏用的
j [ ] Humanities packages // 人文科学类宏包,按需安装即可
E [ ] LaTeX additional packages // 空间大头
H [ ] MetaPost and Metafont packages
I [ ] Music packages // 排版乐谱用的
K [ ] Plain (La)TeX packages
L [ ] PSTricks // 老旧技术
M [ ] Publisher styles, theses, etc. // 各种学术、毕业论文模板,需要学术写作可以装一下
N [ ] Windows-only support programs // linux不支持,默认取消勾选
S [ ] TeXworks editor; TL includes only the Windows binary
- 各种语言集合上面省略了,根据需要选择即可。如果不需要外语支持,语言类集合中仅选择
Chinese
和Chinese/Japanese/Korean (base)
、US and UK English
即可。- 注意,如果需要中文支持,那么
Chinese
和Chinese/Japanese/Korean (base)
(这三种语言的首字母形成了有名的缩写:CJK)都是必不可少的。同理Japanese
和Korean
集合也都依赖CJK base
。
- 注意,如果需要中文支持,那么
- TeXworks 是一个简单的 LaTeX 编辑器,我们将会使用 VSCode 来编辑 LaTeX ,因此这个组件可以不装。另外只有 Windows 平台提供有编译好的二进制文件,Linux 平台估计要手动编译。
即使有些宏包在上面精简了,后期仍然可以使用 tlmgr
工具来单独安装它们。因此不用太担心。
我把可以不装的包的序号写在下面,可以直接复制粘贴然后回车:
deghijkstuvwxyznoABCEHIKLMNS
我这里经过一番精简后,原本需要的 8315 MB 空间精简到了 2708 MB。
这样精简之后,编译有些模板时可能会报错说找不到宏包。此时可以使用tlmgr
从 CTAN 单独安装它们。
确认无误后,输入 R
并回车,回到主界面。
执行安装
输入 I
并回车,开始执行安装。
TeX Live 安装慢是出了名的。根据机器性能(主要是硬盘随机读写)不同,实际的安装时间可能从几分钟到数小时不等。好在安装时会提示进度。请耐心等待安装完成。
上面精简过的版本在一台配有 PCIe 3.0 的 SSD 的机器上安装时间不会多于 10 分钟。
安装善后
Linux
首先将安装镜像弹出并删除 /mnt/texlive
文件夹:
sudo umount /mnt/texlive # 注意不是unmount!
sudo rm -r /mnt/texlive
之后,更新必要的环境变量。对于 bash,可以修改 ~/.bashrc
文件,在文件末尾添加(可以用 Vim,或者用 VSCode,见使用 VSCode 一节)
# Add TeX Live to the PATH, MANPATH, INFOPATH
export PATH=/usr/local/texlive/2024/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2024/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2024/texmf-dist/doc/info:$INFOPATH
保存退出,重启 bash 或者执行命令 source ~/.bashrc
来重载 bash 配置,然后执行
tex -v
如果正常输出了版本信息,则说明安装成功。
注意,上面的命令设置了
MANPATH
环境变量。该变量用于指示man
工具到何处查找手册文档。Linux 的默认MANPATH
位置是/usr/share/man
。操作完毕后,建议执行一下echo $MANPATH
来检查MANPATH
中是否还包含/usr/share/man
。我在这样设置之后不知为何丢失了默认的MANPATH
路径,导致大部分手册都查不到了。如果你也丢失了,可能要在.bashrc
中手动添加一下。
如果你使用的是别的 Shell,那么需要在对应 Shell 的配置文件中进行修改。zsh 和 bash 都会读取
~/.profile
,因此你可以修改.profile
而不是.bashrc
。对于 Fish Shell,需要在~/.config/fish/config.fish
中添加以下命令:set -gx PATH /usr/local/texlive/2024/bin/x86_64-linux $PATH set -gx MANPATH /usr/local/texlive/2024/texmf-dist/doc/man set -gx INFOPATH /usr/local/texlive/2024/texmf-dist/doc/info $INFOPATH
接下来执行
sudo cp /usr/local/texlive/2024/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
sudo fc-cache -fsv
来刷新字体缓存。
如果修改了安装路径,则需要将上面命令中的路径进行替换。
Windows
在“此电脑”中右键镜像,选择“弹出”。
卸载 TeX Live
请参见本文开头的链接。通过镜像安装 TeX Live 时,安装的文件位置非常集中,卸载并不困难。
使用 texdoc
texdoc
命令是 TeX Live 提供的文档查看命令。在命令行使用 texdoc
,可以使用默认的 PDF 阅读器打开对应的文档。比如打开经典的快速入门教程 lshort
:
texdoc lshort-zh-cn
使用 VSCode
VSCode + LaTeX Workshop 扩展是目前体验最佳的 LaTeX 编辑方案。而且它完全免费。
前文已经提过:
-
如果你使用原生 Linux 或原生 Windows,那么你只需要安装 LaTeX Workshop 扩展即可。
-
如果你使用 WSL,你还需要安装“Remote Development”扩展包。
新建一个文件夹,然后使用 VSCode 打开它。在命令行中,你可以这样做:
cd WorkSpace/
mkdir tex-example
code tex-example/
VSCode 窗口将自动弹出并建立到 WSL 的连接。同理,在 WSL Shell 中可以使用 code
命令打开 WSL 文件系统中的任意文件/文件夹。
新建一个 main.tex
文件,输入以下内容:
\documentclass{ctexart}
\title{TeX示例}
\date{\today}
\author{Eslzzyl}
\begin{document}
\maketitle
你好世界!
\end{document}
在左侧边栏中点击“TEX”按钮(选项卡?),然后点击“latexmk(xelatex)”选项,
将自动在当前文件夹下生成 main.pdf
文件。
xelatex
支持 UTF-8,涉及中文的文档需要使用 xelatex
。如果仅有英文内容,可以使用 pdflatex
,编译速度更快。
LaTeX Workshop 默认提供了多种编译方案(即“recipe”)。按下 Ctrl+Alt+B,将使用第一个 recipe。如果文档有 UTF-8 内容,这样会报错。我们可以修改当前文件夹的设置来解决这一问题。在当前文件夹新建 .vscode/settings.json
,填入以下内容:
{
"latex-workshop.latex.recipe.default": "latexmk (xelatex)",
"latex-workshop.latex.autoBuild.run": "never",
"editor.wordWrap": "on",
"latex-workshop.view.pdf.invertMode.enabled": "auto",
"latex-workshop.view.pdf.invert": 0.9
}
解释一下每个配置项的含义。
"latex-workshop.latex.recipe.default": "latexmk (xelatex)"
将默认 recipe 设置为latexmk (xelatex)
。"latex-workshop.latex.autoBuild.run": "never"
将 LaTeX Workshop 的自动编译行为设置为“永不”。这样,只有我们手动执行编译操作时,才会编译文档。LaTeX 本身不是一个所见即所得的排版系统,没必要太频繁地更新。"editor.wordWrap": "on"
为 VSCode 的文本编辑器开启自动换行。LaTeX 文档开启自动换行会比较方便查看。因为这个配置项是写在当前工作目录中的,所以它只会在当前目录中生效,不会影响到 VSCode 的全局自动换行行为。"latex-workshop.view.pdf.invertMode.enabled": "auto"
开启了 LaTeX Workshop 提供的自动反色功能(见此处)。自动反色开启时,若 VSCode 颜色主题为浅色,那么 PDF 文档将原样显示;若 VSCode 颜色主题为深色,那么 PDF 文档将会反色显示,这样观感比较统一。"latex-workshop.view.pdf.invert": 0.9
设置反色指数。
重启 VSCode,再次按下 Ctrl+Alt+B,将使用 latexmk (xelatex)
这个recipe。
使用 PDF 阅读器
内置阅读器
LaTeX Workshop 提供了内置的 PDF 预览功能,你可以利用 VSCode 的分屏功能将工作区分屏,左侧显示 LaTeX 文档,右侧显示 PDF。这样的效果是最好的。如果你使用WSL,那么需要确保WSL版本>=1.2.1[2]。在 PowerShell 中输入
wsl --version
来查看 WSL 的版本。这里的版本和 WSL1/2 的 1 和 2 没有关系。如有必要,输入
wsl --update
来更新 WSL(更新的是 WSL 组件本身,而不是 WSL 中安装的发行版)
外置阅读器
你也可以使用喜爱的 PDF 阅读器打开编译得到的 PDF 文件。主流的 PDF 阅读器都支持自动刷新 PDF。
- 在 Windows 下,我最推荐 SumatraPDF。
- 在 KDE 桌面环境下,我推荐 Okular。
- Linux 还有一种使用 Vim 键位模式的轻量级 PDF 阅读器 Zathura,支持全键盘操作,可定制程度很高。
如果你使用 WSL,那么你可以在 Windows 中安装 SumatraPDF,然后把安装目录加入(Windows 的)环境变量,就可以在 WSL 中使用 SumatraPDF。
sumatrapdf.exe main.pdf
如果你的 WSL 支持 WSLg(Win11 之后的 WSL 均支持),那么也可以安装你喜爱的 Linux PDF 阅读器来查看 PDF 文档(Zathura 是最轻量的):
sudo apt install zathura
zathura main.pdf
latex workshop还提供正向/反向查找功能,这里不再赘述了。
"TeX Live itself is a rolling release distribution, based on the model of the user having to upgrade once a year, but with individual package upgrades available on a sub-daily basis."。见 https://wiki.archlinux.org/title/TeX_Live ↩︎
和port forwarding有关系。见 https://github.com/James-Yu/LaTeX-Workshop/discussions/3833 ↩︎