整理一下 Tex Live 2024 在Windows和Linux(Ubuntu22)中的安装过程,主要参考TeX Live 2024 安装教程(Windows/WSL/Linux)以及一份简短的关于 LATEX 安装的介绍

在Linux系统上的LaTeX编译速度普遍比Windows更快,而且速度提升非常明显,并且TexLive的安装也是如此,在Linux中的安装过程比Windows更快,这种优势即使是在WSL2中也是很明显的,因此我选择在Windows和WSL2中都进行安装。

下载Texlive镜像

随便找一个 CTAN 镜像站下载 texlive2024 即可,例如清华镜像。 texlive 的下载安装其实非常友好,在不同系统上都只需要同一个镜像文件(texlive2024.iso,大约 5 个 G)。

安装Texlive

Windows

直接点击install-tl-windows.bat脚本安装即可,默认有GUI显示,根据提示进行确认即可。 其实也可以加上--no-gui选项关掉GUI,此时的安装过程和Linux类似。

最好重新设置一下安装目录,例如D:/texlive/2024。 尤其需要注意的是:Texlive的安装目录以及主目录不能含有任何的空格或者中文字符,否则会导致安装失败。 如果用户名称含有中文或空格,在安装之前需要修改TEMPTMP环境变量,使安装程序绕过这些特殊路径。

安装过程大约几十分钟,安装完成之后会自动将路径添加到环境变量中,例如D:/texlive/2024/bin/windows

安装完成之后,测试一下

1
tex -v

正常输出版本信息即可。

Linux

实践中是在WSL2中进行安装的,首先要挂载镜像,这里假设镜像文件存放在Windows的 D 盘根目录中,通过如下命令挂载

1
2
sudo mkdir /mnt/texlive
sudo mount /mnt/d/texlive2024.iso /mnt/texlive

可能会出现警告:挂载的文件是写保护的,这个警告无所谓,我们的安装过程只需要读取权限。

这里的安装过程都是需要sudo权限的,也可以直接切换到 root 用户进行;如果使用普通用户安装,那么相应的路径都需要修改。

直接调用install-tl进行安装

1
sudo /mnt/texlive/install-tl

此时可以看到如下内容,提示选择安装组件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
======================> 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/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:

这里可以选择删去其中不常用的组件,后续可以单独进行下载,这样做可以节约空间。 但是我为了避免潜在的麻烦,直接选择全部安装,输入I即可进行安装,安装过程大约二十分钟。(肯定比Windows快一点)

输入D可以修改安装目录,但是在Linux中不建议修改安装目录,使用默认的/usr/local/texlive/2024即可。

安装完成之后,根据它的提示,将下面的路径添加到对应的环境变量中

1
2
3
4
# 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

将这几行命令写在~/.bashrc文件中即可,如果使用 fish 或者其它的 shell,还需要进行相应调整。

重新加载 bash 的配置文件,测试一下

1
tex -v

正常输出版本信息即可。

移除镜像(事实上系统重启之后就自动移除了挂载)

1
2
sudo umount /mnt/texlive	# 注意不是unmount!
sudo rm -r /mnt/texlive

字体配置

下面的命令可以查看当前texlive可以识别的所有中文字体(这个命令在Linux和Windows均可以使用)

1
fc-list -f "%{family}\n" :lang=zh > zhfont.txt

对于Linux,在安装完成之后需要拷贝字体并刷新字体缓存

1
2
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上安装字体的过程非常简单,但是注意需要全局安装。 实践中安装了几个免费的方正字体,还有开源的思源字体等,可以通过查看所有可用中文字体的方式来检查。

在Linux上安装字体的过程参考ubuntu 安装ttf字体

1
2
3
4
5
6
7
8
9
10
su - root

cd /usr/share/fonts
mkdir fz-font

cp <ttk files> fz-font/
cd fz-font
chmod 644 *.ttf

fc-cache -fv

WSL2可以直接利用Windows已经全局安装的所有字体(字体都在c:/Windows/Fonts目录下),做法如下:

  • 确保安装了fontconfig:sudo apt install fontconfig

  • 新建文件/etc/fonts/local.conf,内容如下

    1
    2
    3
    4
    5
    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
    <dir>/mnt/c/Windows/Fonts</dir>
    </fontconfig>

  • 刷新字体缓存:sudo fc-cache -fv

注意:基于ctex宏包编译输出PDF中,默认采取的中文字体是与平台相关的,Windows和Linux的默认中文字体(尤其是粗体)明显不一样,Overleaf等在线平台的默认行为属于Linux类别。

编译测试

基本的英文文档示例

1
2
3
4
5
6
7
8
9
10
11
12
13
\documentclass{article}

\title{LaTeX Test}
\date{\today}
\author{}

\begin{document}

\maketitle

Hello, world!

\end{document}

执行如下命令进行编译测试

1
2
3
pdflatex main.tex
# or
latexmk -pdf -auxdir=tmp main.tex

基本的中文文档示例

1
2
3
4
5
6
7
8
9
10
11
12
13
\documentclass{ctexart}

\title{LaTeX 测试}
\date{\today}
\author{}

\begin{document}

\maketitle

你好世界!

\end{document}

执行如下命令进行编译测试

1
2
3
xelatex main.tex
# or
latexmk -xelatex -auxdir=tmp main.tex

查看文档

使用texdoc命令可以查看当前texlive附带的pdf文档,通常是一些宏包的说明文档,例如

1
texdoc listings

此外,一些著名的中文文档也可以通过texdoc命令查看,例如

1
2
texdoc lshort-zh-cn
texdoc install-latex-guide-zh-cn

卸载Texlive

不建议对Texlive进行升级操作,升级容易出现各种问题,推荐方法是直接卸载旧版本,再安装新版本。

Windows

执行texlive/2024/tlpkg/installer/uninst.bat脚本来进行卸载,卸载完成之后,当前TexLive的安装目录中的内容会被完全删除,但是还剩下一些空目录,手动删除即可。

可以删除~/.texlive2024目录,然后可以顺便检查一下环境变量和注册表,似乎环境变量中的相关路径会被自动删除,注册表不清理看起来也没啥问题。

Linux

对于在默认安装位置进行的安装,直接删除整个目录即可

1
sudo rm -rf /usr/local/texlive/2024

同时删除.bashrc或其它配置脚本中的相关内容。

补充

实践中遇到了在Linux中使用 VSCode 的 Latex workshop 插件无法支持格式化的问题, 报错信息显示是缺少了某些 Perl 模块,因此手动进行下载(在普通用户下执行的,暂不清楚这个命令的安装是否是全局的,root 用户执行是否有区别)

1
2
cpan YAML::Tiny
cpan File::HomeDir

下载完成后可以正常进行格式化。

在编译LaTeX文件时有时需要进行eps文件到PDF文件的转换,在Linux系统上可能需要ghostscript软件,编译报错形如

1
!! Error: Required program gs not found in PATH

手动安装一下ghostscript即可

1
sudo apt-get install ghostscript

顺便关注一下在WSL2中如何查看编译得到的 pdf 文件:

  • 可以直接使用 VSCode 的内置 pdf 浏览器查看

  • 在命令行中也可以直接调用 Windows 上的SumatraPDF.exe,注意需要在 Windows 系统中把它的路径加入 PATH 环境变量。

    1
    SumatraPDF.exe main.pdf

  • 根据参考的博客推荐,还有一种 Linux 下的轻量级 PDF 浏览器(比 SumatraPDF 更轻量级),支持 vim 风格的键位,鉴于 WSLg 可以支持简单的 GUI 了,因此也尝试一下

    1
    2
    apt install zathura
    zathura main.pdf