故事略长,历史略曲折,但我尽量长话短说。全文在此但可略去不看:https://yihui.org/en/2026/03/tinytex-ctan-mirror/
有句话叫“我与我周旋久,宁作我”,而我是与 LaTeX 和 TeX Live 周旋久,最后宁做窝,于是给 TeX Live 做了个窝可以全球高速云端分发。而这个窝几经折腾,最后发现在零预算的前提下(即:白嫖),用 Cloudflare Pages 做窝最稳妥,不过它有个硬性限制是单个文件不能超过 25M。这难不倒我,我一个 find 命令就把大于 25M 的文件揪出来,转手丢到 Github Release 里(它对单个文件的限制在 2G,远大于我的需求),然后把剩下的整个窝打包为 zstd 压缩文件,让 Cloudflare Pages 下载、解压、发布,目前用的网址是 tlnet.yihui.org。整个过程用 Github Action 实现自动日更,理论上 Github 和 Cloudflare 这两个大厂能活多久,这个窝就能存在多久。
这盘棋唯一让我顾虑的地方是大陆用户访问 Github 资源时的抽风问题。也就是当 TeX Live(或它瘦身版的 TinyTeX)通过 tlmgr 安装那些大于 25M 的包时,我这个 tlnet.yihui.org 其实是重定向到 Github 下载的。其实这些包的数量非常少,目前在整窝八千多个文件中只占 13 个:https://github.com/yihui/ctan-tlnet/releases 比如那个 38M 的落霞孤鹜字体。我想请墙内用户在无梯情况下试试是否有障碍,例如在 R 里面安装落霞孤鹜:
tinytex::tlmgr(c('install', 'lxgw-fonts', '--repository', 'https://tlnet.yihui.org/'))
或者等价地用命令行:
tlmgr install lxgw-fonts --repository https://tlnet.yihui.org/
第二个顾虑是我在那篇博客最后写的,我并不想把这个窝架在我的个人域名下。要是有靠谱的机构愿意长期接手,我可以把这个窝平移过去。它在简单的初始设置后基本上不怎么需要维护,其实连域名也可以白嫖 Cloudflare 的:ctan-tlnet.pages.dev 但我觉得还是有个自己能控制的域名更稳妥。