TeXLive2023安装教程(Windows/WSL/Linux)

发布时间 2023-04-27 11:17:16作者: Eslzzyl

应同学的要求写一个TexLive的安装和使用教程。实际上相关的安装教程已经有很多,本文主要介绍在WSL中安装texlive的方法,这也是我推荐的在windows平台上使用texlive的方式;同时本文还会简单讨论一下TexLive包含的组件(根据需要选择其中的一部分安装)。

参考链接:

什么是TexLive?

这一节是简单的科普。如果你知道什么是TexLive,可以跳过本节。

TexLive是目前Windows平台和Linux平台上最主流的LaTeX发行版。所谓LaTeX发行版,是指将latex编译引擎(如pdflatexxelatexlualatex等)、宏包(如beamerpgf/tikz等)、模板(比如一些学校的毕业论文模板)、字体、配套工具(如tlmgrtexworks等)打包在一起的、开箱即用的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。

另外,有些Linux发行版的软件源中会带有texlive,但那种安装方式不太推荐。推荐的方法是用镜像安装。

安装前的准备工作

  • 如果你决定在WSL中安装TexLive(推荐),那么你需要自行安装一个WSL发行版,微软官方安装教程;本文将以Ubuntu22.04(也是目前默认的发行版)为例。国内下载WSL镜像经常卡住,可以多试几次。

    • 提一下本文必要的知识:在WSL中,Windows主系统的分区将自动挂载到/mnt文件夹,即你可以通过/mnt/c/mnt/d等等文件夹访问这些分区。你访问的实际上是NTFS文件系统,两个OS之间的通信由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的文件系统桥梁访问镜像文件。
  • 如果你使用Linux系统,可以放在用户主目录中。此处以~/texlive2023.iso为例。

校验安装镜像

这一步是可选的,主要是检查下载过程中镜像有没有出现损坏。实际上现在的网络条件很好了,一般不会出问题的。

  • Windows系统:在PowerShell中切换到镜像所在的文件夹(例:D:\texlive2023.iso),然后执行

    certutil -hashfile texlive2023.iso md5
    

    md5计算需要完整读取整个镜像文件,因此计算会持续一段时间,请耐心等待。

    • 在WSL中安装也应该使用这种方法,而不是在WSL中通过md5sum计算/mnt/d/texlive2023.iso,那纯粹多此一举且浪费时间。
  • Linux系统:在Shell(如bash)中切换到镜像所在的文件夹,然后执行

    md5sum texlive2023.iso
    

    md5计算需要完整读取整个镜像文件,因此计算会持续一段时间,请耐心等待。

你应该可以得到texlive2023镜像文件的md5787f087e71695eebd1caafdb2b286060

挂载安装镜像

  • 如果你要装在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)都是必不可少的。同理JapaneseKorean集合也都依赖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还提供正向/反向查找功能,这里不再赘述了。


  1. 和port forwarding有关系。见 https://github.com/James-Yu/LaTeX-Workshop/discussions/3833 ↩︎