ubuntu vscode_WSL + TinyTeX + VS Code:可能是 Win 上最轻快的 LaTeX 方案

前段时间听说在 Linux 下 TeX 的编译速度会比 Windows 上快不少,所以就想着搞一个 WSL 来玩一下。正好想着既然折腾了那就干脆折腾的彻底一点,再琢磨一下 TinyTeX 看看能否节省一些硬盘空间。于是就搞出了这个也许是 Windows 上最轻快的 LaTeX 配置。

安装 WSL Ubuntu

首先在开始菜单搜索 “启用或关闭 Windows 功能”,打开,勾选 “适用于 Linux 的 Windows 子系统”

2ecc413090c0561720ff88f3c8b936fa.png

然后在 Microsoft Store 中搜索 Ubuntu(其他的 Linux 系统我没试过),安装即可,大概几百 Mb;这样安装的 Ubuntu 是一个嵌入 Windows 的子系统,没有图形界面,只有一个终端。在开始菜单中搜索 “Ubuntu”,即可启动终端。

1cdda6168917d51b6eb13eed6efc6ecf.png

Ubuntu 子系统的根目录在 Windows 上的位置如下,如果需要修改什么文件可以直接在 Windows 里面改,而不必用命令行,比较方便:

C:UserskeyuaAppDataLocalPackagesCanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgscLocalStaterootfs

(PS:直接复制不一定能导航过去,应该是 UbuntuWindows 后面那串乱码在不同机器上不一定相同,建议手动导航)

这个子系统也可以直接操作 Windows 中的文件,在终端中通过 cd /mnt/c/ 即可导航到电脑的 c 盘

然后需要在终端中对 Ubuntu 进行一些设置。首先切换镜像源为清华源:到 Ubuntu 系统的根目录里面,把 /etc/apt/sources.list 这个文件改成

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

然后在 Ubuntu 终端中更新:

sudo apt-get update

然后就可以用 apt 安装软件了。比如安装 python 的包管理器(Ubuntu 自带了最新版的 python3)

sudo apt-get install python3-pip

在 Ubuntu 中安装 TinyTeX

TinyTeX 是谢益辉大佬开发的一个瘦身版的 TeX Live,相比于 TeX Live 几个 G 的体积,TinyTeX 的体积不到 500M,它减去了 TeX Live 中大量不常用的包和文档,配合 R 在编译的时候可以自动补全所缺的包。

首先需要安装 R(如果不装 R 缺包就只能手动一个一个装,相当痛苦),在 Ubuntu 终端中运行

sudo apt-get install r-base

(PS:这样安装的 R 不是最新版,但是最省事,而且不是最新版也够用了)

然后在终端中输入 R,以启动 R 交互环境,R 语言的命令只能在 R 交互环境中运行

然后运行下面两条 R 命令,以安装 TinyTeX:

install.packages('tinytex')
tinytex::install_tinytex()

安装好之后,需要把 tlmgr(TeX Live 那极其难用的包管理器)的镜像源也换成国内源(如清华源),这样子装包的时候才不会有网络问题。使用 q() 推出 R 交互环境,在 Ubuntu 终端中输入

tlmgr option repository https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/tlnet

完成上述操作之后,就可以用下面的 R 命令来编译工作目录里面的 tex 文件了,编译的过程中如果缺包,就会自动安装。

tinytex::pdflatex('test.tex')
tinytex::xelatex('test.tex')

还需要稍微配置一下,才能在 Ubuntu 中使用 Windows 的字体。首先在终端中运行:

sudo apt install fontconfig

然后在 Ubuntu 根目录的 etc/fonts/ 文件夹中新建一个 local.conf 文件,内容是

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

在 VS Code 中使用 Ubuntu

想在 Ubuntu 中通过(Windows 系统的) VS Code 中打开(Windows 系统的)某个文件夹有两种方式:

  • 在 Ubuntu 终端中用 code 命令打开,如果没有安装 remote_wsl 插件的话会提示你安装
  • 如果已经装好了 remote_wsl 插件,就可以在 Windows 中右键文件夹,然后选择 “在 Code 中打开”,然后再 Ctrl+Shift+P 在命令窗口中输入 reopen,选择 reopen folder in wsl。这个方法可以避免打开 Ubuntu 终端。

如果当前的工作目录是在 Ubuntu 中打开的,那么 VS Code 左下角会提示 “WSL:Ubuntu“

a450ac4dcf4671df84c36bb48d0c1fe9.png

打开 VS Code 之后,还需要为 Ubuntu 系统安装 LaTeX Workshop 插件:在插件市场中搜索然后选择 “install for ubuntu”;VS Code 的 settings.json 会共用 Windows 的(如果你有配置过的话),然后就可以开始写 .tex 文件了;如果你不会配置,那么可以看这篇文章

使用 Ctrl+Alt+B 编译的时候,有可能会报 emergency stop 的错误,这个时候在状态栏上会有一个红叉叉(如下图所示),这种情况大概率是缺包导致的,因为 TinyTeX 里面基本上就没什么包

3105fc4802aea5a1090c13de015929b2.png

解决的办法也很简单:打开终端(VS Code 中 Ctrl + ~),进入 R 交互环境,用 R 命令 tinytex::xelatex() 来编译,这样子就会自动装缺失的包,装包的过程可能会有些长。然后下一次再在 VS Code 中编译的时候就不会缺包了。

假如没有报缺包错误的话,那还是在 VS Code 里面用 Ctrl+Alt+B 编译比较方便,用 R 命令编译单纯只是为了自动装包

排除奇怪的错误

如果 R 命令编译 .tex 文件失败,可以检查是否是这两个原因:

  • tlmgr 未切换到国内源,导致无法安装包或者安装过于缓慢,切换方法可以查看上一小节。
  • 如果使用了某些高科技上网工具,清华源(不确定其他国内源有无这个问题)有可能无法访问或者速度很慢,这时可以考虑关了某上网工具并重试编译
  • 如果不是源的问题,那有可能是 tlmgr 没有加如环境变量,试一下 tlmgr path add
  • 如果还不行,那就更新一下 tlmgr 试试:tlmgr update --self --all

如果在 Ubuntu 中安装扩展失败,报错 "corrupt zip",这有可能是安装网速太慢,或者之前扩展的 “尸体” 没删干净。可以尝试下面的手段来排除错误:

  • 进入 Ubuntu 根目录中的 `/home/<username>/.vscode-server/extensions`,删除该扩展的文件夹,然后重启 VS Code,再在 VS Code 中删除 Windows 本地的扩展,然后再安装 Ubuntu 的扩展(这也会顺带在 Windows 上装)

实在不行,还有最后的大招:重装/卸载 TinyTeX

tinytex::reinstall_tinytex()
tinytex::uninstall_tinytex()
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值