折腾了一天。终于把安装 TexLive 搞定了,在此记录一下。
本文部分参考(侵删):https://www.cnblogs.com/eslzzyl/p/17358405.html
更详细的安装文档在这里:https://mirror.nju.edu.cn/CTAN/info/install-latex-guide-zh-cn/install-latex-guide-zh-cn.pdf
为什么在 WSL 中安装 TexLive
因为一些原因(不展开了),LaTex 在 WSL 中的编译速度(据说)显著快于原生 Windows,参考LaTeX配置安装大对比:TeXLive/MiKTeX、Windows/WSL、xelatex/lualatex/pdflatex编译器的速度性能详细对比 - 知乎
当然,MikTex 在 WSL 下我也安装成功了,官方安装链接 Getting MiKTeX 不过有坑。
首先是不提供 openSUSE Tumbleweed 的 rpm 包,但是可以按照 openSUSE Leap 15 的方法安装,同时记得给 zypper 添加 openSUSE Leap 15 的镜像源,否则会找不到依赖(血泪教训,这个问题在 GitHub 上还提了 issue 没解决 https://github.com/MiKTeX/miktex/issues/1273)。(当然可以自己编译,源码、方法从这里找:GitHub - MiKTeX/miktex: the MiKTeX source code)
然后,如果你的 WSL 没有安装中文字体的话,MikTex Console 很可能显示不出字体,应急的办法是给 WSL 挂载 Windows 上的字体(但是由于跨文件系统,可能会影响编译效率),当然也可以自己安装字体。
给 WSL 挂载 Windows 上的字体的方法如下:
在 WSL 的 终端输入如下语句,建立软链接:
sudo ln -s /mnt/c/Windows/Fonts /usr/share/fonts/font
刷新字体缓存:
fc-cache -fv
这样就可以啦。
有个好消息是:如果安装 TexLive 而不是 MikTex,在安装的时候会自动安装字体,就不用手动安装字体了,也不用担心效率问题了。所以,还在犹豫什么!
PS:MikTex 的一个显著优点是默认只安装最基础的包,需要别的包时可以自动安装,所以可以节省空间; TexLive 也有类似的命令,但默认是把包装全。还有,MikTex 有图形界面,对不熟悉命令行的小伙伴(可能)比较友好。
安装前准备
-
如果你决定在 WSL 中安装 TexLive(推荐),那么你需要自行安装一个 WSL 发行版,微软官方安装教程;本文将以 openSUSE Tumbleweed(大蜥蜴才是最棒的)为例,其他发行版(如 Ubuntu、Debian 类似)。
-
你应该确保你的文件系统中有至少3GB的空闲空间。这是本文推荐的安装配置需要的磁盘大小。如果你要安装 TexLive 2023 的全部组件,那么应该有至少 8GB 的空闲空间。
-
你可以预先安装 Visual Studio Code 并安装 LaTeX Workshop 扩展。这也是我推荐的编辑 Tex文件的工具。我们不使用TexLive 自带的 TeXworks 工具或者久负盛名的Tex Studio工具。
下载安装镜像
到某个国内的 CTAN 镜像站下载最新版的 TexLive 镜像(下在 Windows 系统里,不用通过 WSL 下载)
比如 Index of /CTAN/systems/texlive/Images/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
或者
目前最新的 TexLive 版本为2023,该文件夹下包含 3 个.iso
文件,文件仅有文件名不同,内容完全相同,你可以任选一个下载。该文件夹下还包含有 md5
信息文件,你也可以下载下来以备校验。
校验安装镜像(可选)
校验就是看看你下载的镜像有没有被劫持,是不是正确的。如果校验通过的话,那么 99.99% 以上的可能性你下载的是正确的完整的镜像。
考虑到 WSL 的在文件方面的性能问题,直接在 Windows 里校验吧。
Windows 系统:在 PowerShell (或者 cmd )中切换到镜像所在的文件夹(例:D:\texlive2023.iso),然后执行
md5sum texlive2023.iso
md5 计算需要完整读取整个镜像文件,因此计算会持续一段时间,请耐心等待。
如果得到 787f087e71695eebd1caafdb2b286060 ,就通过校验。
挂载安装镜像
如果你要装在 WSL 中,那么进入 WSL 的 Shell 并执行(两步)
sudo mkdir /mnt/texlive
sudo mount /mnt/d/texlive2023.iso /mnt/texlive
后续我们可以在 /mnt/texlive
中访问安装镜像内部的各种文件。
启动安装程序
在 Shell 中执行
sudo /mnt/texlive/install-tl
进入安装界面。
======================> 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:
调整安装配置
按 C 可以调整安装的包,参考 TeX Live宏包集合和自定义安装 - 知乎,给出可以精简的包(按需选择,空间够可以全装,免去后面的麻烦)。
下面这部分来自 https://www.cnblogs.com/eslzzyl/p/17358405.html,再次感谢这位大佬(鞠躬
有问题也找他(坏笑
输入集合对应的字母可以选中/取消选中。支持批量输入。可以不装的组件有:
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 编辑器,我们将会使用 VS Code 来编辑 LaTex ,因此这个组件可以不装。
即使有些宏包在上面精简了,后期仍然可以使用
tlmgr
工具来单独安装它们。因此不用太在意。我把可以不装的包的序号写在下面,可以直接复制粘贴然后回车:
deghijknostuvwxyzABCEHIKLMNS
经过一番精简后,原本需要的 7599MB 空间精简到了 2404MB。
确认无误后,输入 R 并回车,回到主界面。输入 I 并回车进行安装。
慢慢等吧……
测试
首先将安装镜像弹出并删除 /mnt/texlive
文件夹:
sudo umount /mnt/texlive # 注意不是unmount!
sudo rm -r /mnt/texlive
之后在修改 ~/.bashrc
文件中添加
# 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 --version
如果正常输出了版本信息,则说明安装成功。
接下来执行
sudo cp /usr/local/texlive/2023/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
sudo fc-cache -fsv
来刷新字体缓存。
如果修改了安装路径,则需要将上面命令中的路径进行替换。
在 VS Code 中测试
参考 在WSL中安装LaTeX - 知乎 中“在 VSCode 中使用”这节。
配置 tlmgr
tlmgr 可以帮助我们管理 TexLive 中的包(安装、卸载、更新)。
由于 tlmgr 部分命令需要 root 权限,首先解决 tlmgr 在 sudo 命令下“command not found”的问题。参见 texlive - sudo does not find tlmgr - TeX - LaTeX Stack Exchange 上面的讨论。
在 WSL Shell 运行命令
which tlmgr # 查找 tlmgr 的位置,记下这个结果,默认是 /usr/local/texlive/2023/bin/x86_64-linux/tlmgr
sudo visudo
在打开的文件中的 Defaults secure_path 加上 TexLive 所在的目录,就是 which tlmgr 的结果去掉最后的 /tlmgr ,默认是 /usr/local/texlive/2023/bin/x86_64-linux (如果安装时没改安装路径的话就是这个),注意不同路径间用冒号分隔。
为了提高下载速度,可以切换到国内镜像源。在 WSL Shell 执行
sudo tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet
即可永久更改镜像源到清华源。
执行
sudo tlmgr update --self --all
更新 tlmgr 自身和所有已安装的包。同时测试 tlmgr 是否可用。
静待这一步执行结束。然后愉快地写文章吧~
卸载 TexLive
直接删除文件夹就行
sudo rm -rf /usr/local/texlive
然后把之前设置的环境变量改回来(养成好习惯)。(这个其实不做也行,万一下次还要再装回来 呢)
再提一句,如果重装 TexLive,要注意环境变量。特别是如果装的年份不同,还要把年份改过来。
完结撒花!!