LaTeX WSL2 安装笔记
鉴于在 Linux 系统上编译 LaTeX 远快于 Windows(测试发现大约快一半),即使 Linux 是虚拟机或者 WSL2,也有更好的速度,因此选择在 WSL2 中安装 TexLive2023。本文是安装过程的记录,安装主要参考这篇博客。
下载镜像
找一个 CTAN 镜像站下载 texlive2023 即可,例如清华镜像。
texlive
的安装其实非常友好,安装在不同系统上都只需要同一个镜像(texlive2023.iso
,不到
5 个 G),正好 windows
安装之后并没有卸载,因此实践中省去了下载过程,镜像存放在 windows
的文件系统中。
挂载镜像
在 WSL2 中挂载镜像,这里假设镜像文件存放在 D 盘根目录,实际修改即可
1 | sudo mkdir /mnt/texlive |
可能会出现警告,挂载的文件是写保护的,但是无所谓,我们只需要读取权限就可以完成安装。
下面的很多命令都是需要sudo
的,也可以直接切换到 root
用户进行,反正安装是全局的,不是具体用户层面的安装。
安装镜像
直接调用install-tl
进行安装
1 | sudo /mnt/texlive/install-tl |
此时可以看到如下内容,提示选择安装组件
1 | ======================> TeX Live installation procedure <===================== |
可以删去其中不常用的组件,后续是可以单独下载组件的,可以节约空间。这里我为了避免可能的麻烦,直接全部安装,输入I
即可进行安装,安装过程略长,但不超过半个小时。
安装后的配置
添加环境变量(这个在前面的安装过程最后会提示我们,需要添加哪些环境变量)
1 | # Add TeX Live to the PATH, MANPATH, INFOPATH |
这是针对~/.bashrc
的,如果使用 fish 或者其它的
shell,则需要相应调整。重新加载 bash 的配置文件,测试一下
1 | tex -v |
正常输出版本信息即可。
移除镜像(事实上系统重启之后就自动移除了挂载)
1 | sudo umount /mnt/texlive # 注意不是unmount! |
拷贝字体并刷新字体缓存
1 | sudo cp /usr/local/texlive/2023/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf |
查看当前texlive可以识别的所有中文字体(这个命令在Linux和Windows均可以使用)
1
fc-list -f "%{family}\n" :lang=zh > zhfont.txt
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(包括WSL)的默认中文字体(尤其是粗体)明显不一样,Overleaf等在线平台的默认行为属于Linux类别。
VSCode 编译测试
这里选择使用 VSCode+WSL2 进行 LaTex 的编写,相应的配置参考另一篇笔记,并不需要专门针对 WSL2 进行配置。
测试一下在 WSL2 中进行基本的含中文文档编译
1 | \documentclass{ctexart} |
需要使用支持中文的编译命令(xelatex 或 lualatex 等),可以编译得到正确显示中文的 pdf。 (测试时发现 lualatex 比 xelatex 慢不少,编译中文文档时的最优解是 xelatex)
但是在实践中遇到了 Latex workshop 插件无法支持格式化的问题,报错信息显示是缺少了某些 Perl 模块,因此在 WSL2 中进行下载(在普通用户下执行的,暂不清楚这个命令的安装是否是全局的,root 用户执行是否有区别)
1 | cpan YAML::Tiny |
下载完成后可以正常进行格式化。
PDF 查看
由于 WSL2 通常没有 GUI,因此需要关注一下如何查看 pdf 文件:
可以直接使用 VSCode 的内置 pdf 浏览器查看
在命令行中也可以直接调用 windows 上的
SumatraPDF.exe
,注意需要在 Windows 系统中把它的路径加入 PATH 环境变量。1
SumatraPDF.exe main.pdf
根据参考的博客推荐,还有一种 Linux 下的轻量级 PDF 浏览器(比 SumatraPDF 更轻量级),并且支持 vim 风格的键位,鉴于 WSLg 可以支持简单的 GUI 了,因此也尝试一下
1
2apt install zathura
zathura main.pdf