应同学的要求写一个TexLive的安装和使用教程。实际上相关的安装教程已经有很多,本文主要介绍在WSL中安装texlive的方法,这也是我推荐的在windows平台上使用texlive的方式;同时本文还会简单讨论一下TexLive包含的组件(根据需要选择其中的一部分安装)。
参考链接:
- http://tug.ctan.org/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf (推荐,非常详细)这也是本文主要参考的文献。如果本文不能很好地解决你的问题,不妨看看这个。
什么是TexLive?
这一节是简单的科普。如果你知道什么是TexLive,可以跳过本节。
TexLive是目前Windows平台和Linux平台上最主流的LaTeX发行版。所谓LaTeX发行版,是指将latex编译引擎(如pdflatex、xelatex、lualatex等)、宏包(如beamer、pgf/tikz等)、模板(比如一些学校的毕业论文模板)、字体、配套工具(如tlmgr、texworks等)打包在一起的、开箱即用的latex套件。
TexLive每年发布一版,发布形式是一个全平台的安装镜像(.iso),发布时间大约是每年的3月中下旬。
截至本文撰稿时,最新的texlive版本是2023。
一些安装平台的对比
首先我推荐在Linux平台安装texlive(Mac不在本文的讨论之列)。出于各种原因(这篇帖子有比较深入的讨论),Linux下程序的编译速度可以达到Windows下的数倍,对于LaTeX项目,Linux可以获得至少5倍的加速。
-
如果你使用原生Linux,那么皆大欢喜:你可以轻松获得最佳(主要是速度方面)的TexLive体验。
-
如果你使用Windows:
- 现代Windows提供了一种方便的Linux子系统即WSL,允许Windows和Linux深度融合,其中WSL2提供了原生的ext4文件系统。因此将TexLive安装到WSL(指WSL2,下同)中,是我最推荐的在Windows下使用LaTeX工具链的方式。这种方法是本文的重点。本文也会介绍使用
vscode-remote在WSL中完成LaTeX编写的方法。 - 然而WSL本身包含一个完整的Linux发行版,可能会占用一点额外空间,而且默认只能装在C盘(当然有绕过限制的方法,可以自行查找),这为平时不需要Linux环境的同学带来了一些不必要的麻烦,因此本文也会简单介绍一下如何直接在Windows系统中安装TexLive。
- 现代Windows提供了一种方便的Linux子系统即WSL,允许Windows和Linux深度融合,其中WSL2提供了原生的ext4文件系统。因此将TexLive安装到WSL(指WSL2,下同)中,是我最推荐的在Windows下使用LaTeX工具链的方式。这种方法是本文的重点。本文也会介绍使用
另外,有些Linux发行版的软件源中会带有texlive,但那种安装方式不太推荐。推荐的方法是用镜像安装。
安装前的准备工作
-
如果你决定在WSL中安装TexLive(推荐),那么你需要自行安装一个WSL发行版,微软官方安装教程;本文将以
Ubuntu22.04(也是目前默认的发行版)为例。国内下载WSL镜像经常卡住,可以多试几次。- 提一下本文必要的知识:在WSL中,Windows主系统的分区将自动挂载到
/mnt文件夹,即你可以通过/mnt/c、/mnt/d等等文件夹访问这些分区。你访问的实际上是NTFS文件系统,两个OS之间的通信由Windows在后台完成。
- 提一下本文必要的知识:在WSL中,Windows主系统的分区将自动挂载到
-
你应该确保你的文件系统中有至少3GB的空闲空间。这是本文推荐的安装配置需要的磁盘大小。如果你要安装texlive2023的全部组件,那么应该有至少8GB的空闲空间。(texlive镜像是一年比一年大了,今年历史性地突破了5GB大关)(题外话:想要轻量级排版系统的可以关注一下typst这个项目)
-
你可以预先安装 Visual Studio Code 并安装LaTeX Workshop扩展。这也是我推荐的编辑tex文件的工具。我们不会使用TexLive自带的texworks工具或者久负盛名的texstudio工具。
- 如果你使用WSL,那么你应该在Windows主系统中安装vscode。此外你还应该安装“Remote Development”扩展包。
下载安装镜像
到某个国内的CTAN镜像站下载最新版的texlive镜像,比如 https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/
目前最新的texlive版本为2023,该文件夹下包含3个.iso文件,文件仅有文件名不同,内容完全相同,你可以任选一个下载。该文件夹下还包含有md5信息文件,你也可以下载下来以备校验。后面会提供2023版texlive镜像的md5值。
- 如果你使用Windows系统(包括WSL),可以随便把镜像放在什么地方。为简单起见,下面的例子假设放在
D:,即D:\texlive2023.iso。- 如果你要装在WSL中,此时不必也不应该将镜像移入WSL的文件系统。后续我们的安装将通过
/mnt/d来借助Windows的文件系统桥梁访问镜像文件。
- 如果你要装在WSL中,此时不必也不应该将镜像移入WSL的文件系统。后续我们的安装将通过
- 如果你使用Linux系统,可以放在用户主目录中。此处以
~/texlive2023.iso为例。
校验安装镜像
这一步是可选的,主要是检查下载过程中镜像有没有出现损坏。实际上现在的网络条件很好了,一般不会出问题的。
-
Windows系统:在PowerShell中切换到镜像所在的文件夹(例:
D:\texlive2023.iso),然后执行certutil -hashfile texlive2023.iso md5md5计算需要完整读取整个镜像文件,因此计算会持续一段时间,请耐心等待。- 在WSL中安装也应该使用这种方法,而不是在WSL中通过
md5sum计算/mnt/d/texlive2023.iso,那纯粹多此一举且浪费时间。
- 在WSL中安装也应该使用这种方法,而不是在WSL中通过
-
Linux系统:在Shell(如bash)中切换到镜像所在的文件夹,然后执行
md5sum texlive2023.isomd5计算需要完整读取整个镜像文件,因此计算会持续一段时间,请耐心等待。
你应该可以得到texlive2023镜像文件的md5值787f087e71695eebd1caafdb2b286060。
挂载安装镜像
-
如果你要装在WSL中,那么进入WSL的Shell并执行
sudo mkdir /mnt/texlive sudo mount /mnt/d/texlive2023.iso /mnt/texlive你需要提供一次用户的密码(用户密码在WSL安装时指定)。应该会得到如下的结果(写保护是正常现象,我们只需要读权限就可以了):

后续我们可以在/mnt/texlive中访问安装镜像内部的各种文件。
- 如果你是原生Linux,操作和上面类似,只是需要把
/mnt/d/texlive2023.iso换成对应的路径就可以了。 - 如果你是原生Windows,右键单击
texlive2023.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 6
<S> set installation scheme: scheme-full
<C> set installation collections:
40 collections out of 41, disk space required: 7599 MB (free: 970831 MB)
<D> set directories:
TEXDIR (the main TeX directory):
/usr/local/texlive/2023
TEXMFLOCAL (directory for site-wide local files):
/usr/local/texlive/texmf-local
TEXMFSYSVAR (directory for variable and automatically generated data):
/usr/local/texlive/2023/texmf-var
TEXMFSYSCONFIG (directory for local config):
/usr/local/texlive/2023/texmf-config
TEXMFVAR (personal directory for variable and automatically generated data):
~/.texlive2023/texmf-var
TEXMFCONFIG (personal directory for local config):
~/.texlive2023/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:
调整安装配置
这一节是可选的,实际上texlive中有许多组件是很少用的,为了节省磁盘空间,我们精简一些组件。如果你不在乎空间,可以直接进入下一步。
这一节参考了 https://zhuanlan.zhihu.com/p/133984428
texlive的打包策略为体系(scheme)——集合(collection)——软件包/宏包三层。其中可定制安装的是集合层次。texlive2023包括了41个集合。针对这些集合的解释可以参考上面的链接,这里就不赘述了。
Linux的安装路径不建议改,否则之后出问题查文档可能会雪上加霜。Windows随意,但路径不能带有非ASCII字符,而且不要太深,否则容易出问题。
在安装程序中输入C并回车,进入安装组件定制页面(我已经改过一些组件了,不过无伤大雅)。
===============================================================================
Select collections:
a [X] Essential programs and files w [ ] Italian
b [X] BibTeX additional styles x [X] Japanese
c [X] TeX auxiliary programs y [X] Korean
d [ ] ConTeXt and packages z [X] Other languages
e [ ] Additional fonts A [X] Polish
f [X] Recommended fonts B [X] Portuguese
g [ ] Graphics and font utilities C [X] Spanish
h [X] Additional formats D [X] LaTeX fundamental packages
i [ ] Games typesetting E [X] LaTeX additional packages
j [ ] Humanities packages F [X] LaTeX recommended packages
k [ ] 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: 5349 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工具来单独安装它们。因此不用太在意。
我把可以不装的包的序号写在下面,可以直接复制粘贴然后回车:
deghijkstuvwxyzABCEHIKLMNS
我这里经过一番精简后,原本需要的7599MB空间精简到了2404MB。
这样精简之后,编译有些模板时可能会报错说找不到宏包。此时可以使用tlmgr从CTAN单独安装它们。
确认无误后,输入R并回车,回到主界面。
执行安装
输入I并回车,开始执行安装。
texlive安装慢是出了名的。根据机器性能(主要是硬盘随机读写)不同,实际的安装时间可能从十几分钟到数小时不等。好在安装时会提示进度。
上面精简过的版本在一台配有PCIe3.0的SSD的机器上安装时间不会多于半小时。
安装善后
Linux
首先将安装镜像弹出并删除/mnt/texlive文件夹:
sudo umount /mnt/texlive # 注意不是unmount!
sudo rm -r /mnt/texlive
之后修改~/.bashrc文件,在文件末尾添加(可以用Vim,或者用vscode,见使用VSCode一节)
# Add TeX Live to the PATH, MANPATH, INFOPATH
export PATH=/usr/local/texlive/2023/bin/x86_64-linux:$PATH
export MANPATH=/usr/local/texlive/2023/texmf-dist/doc/man:$MANPATH
export INFOPATH=/usr/local/texlive/2023/texmf-dist/doc/info:$INFOPATH
保存退出,重启bash或者执行命令source ~/.bashrc来重载bash配置,然后执行
tex -v
如果正常输出了版本信息,则说明安装成功。
接下来执行
sudo cp /usr/local/texlive/2023/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
sudo fc-cache -fsv
来刷新字体缓存。
如果修改了安装路径,则需要将上面命令中的路径进行替换。
Windows
在“此电脑”中右键镜像,选择“弹出”。
卸载TeXLive
请参见本文开头的链接。
使用texdoc
texdoc命令是texlive提供的文档查看命令。在命令行使用texdoc,可以使用默认的PDF阅读器打开对应的文档。比如打开经典的快速入门教程lshort:
texdoc lshort-zh-cn
使用VSCode
VSCode+latex workshop扩展是目前体验最佳的latex编辑方案。而且它完全免费。
-
如果你使用原生Linux或原生Windows,那么你只需要安装LaTeX Workshop扩展即可。
-
如果你使用WSL,你还需要安装“Remote Development”扩展包。
新建一个文件夹,然后使用vscode打开它。在WSL中,你可以这样做:
eslzzyl:~$ cd WorkSpace/
eslzzyl:~/WorkSpace$ mkdir tex-example
eslzzyl:~/WorkSpace$ code tex-example/
eslzzyl:~/WorkSpace$
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项目里开启自动换行体验会好一些。
重启vscode,,再次按下Ctrl+Alt+B,将使用latexmk (xelatex)这个recipe。
使用PDF阅读器
如果你使用原生Windows或Linux,你可以使用喜爱的PDF阅读器打开编译得到的PDF文件。主流的PDF阅读器都支持自动刷新PDF。
- 在Windows下,我最推荐 SumatraPDF。
- 在KDE桌面环境下,我推荐 Okular。
- Linux还有一种使用Vim键位模式的轻量级PDF阅读器Zathura,支持全键盘操作,可定制程度很高。
如果你使用WSL,那么你可以在Windows中安装SumatraPDF,然后把安装目录加入(Windows的)环境变量,就可以在WSL中使用SumatraPDF。
eslzzyl:~/W/tex-example$ sumatrapdf.exe main.pdf
如果你的WSL支持WSLg(Win11之后的WSL均支持),那么也可以安装你喜爱的PDF阅读器来查看PDF文档(Zathura是最轻量的):
sudo apt install zathura
zathura main.pdf
你也可以使用LaTeX Workshop扩展自带的PDF预览插件来预览PDF。如果你使用WSL,那么需要确保WSL版本>=1.2.1[1]。在powershell中输入
wsl --version
来查看WSL的版本。这里的版本和WSL1/2的1和2没有关系。如有必要,输入
wsl --update
来更新WSL(更新的是WSL组件本身,而不是WSL中安装的发行版)
latex workshop还提供正向/反向查找功能,这里不再赘述了。
和port forwarding有关系。见 https://github.com/James-Yu/LaTeX-Workshop/discussions/3833 ↩︎