非常小的TeX发行版(12.6MiB)

因为不想装那些TeXLive即使是最小化安装也要装的脚本(mktexlsr/kpathsea-tools/updmap/…),也因为用不着pdfTeX这些引擎,更不需要那一堆宏集,又不是很喜欢标准的TDS(我能理解因为东西很多要分门别类地放好它们不是一件很容易的事情),所以上周重装系统后就自己搞了一个发行版:

基于Lua(HB)TeX和Web2C,有一些我比较在意的特性:

  • Self-contain,bootstrap完就是一个texmf文件夹,你可以把它放在硬盘上任何位置,并且只需要链接/some/prefix/texmf/web2c/luahbtex/usr/local/bin/luatex就可以正常使用,静态链接(当然Darwin需要链接/usr/lib/libSystem.B.dylib/usr/lib/libc++.1.dylib);
  • Compact,只会读/some/prefix/texmf~/.texmf两个目录(而不是像TeXLive一样有各种*-local*-var~/.texliveYYYY,等);
  • 以TeX为中心,Kpathsea仅作为LuaTeX搜索文件的库,所以不会安装kpsewhich等可执行以及mktexlsr,不使用ls-R数据库;
  • 最小化依赖,只需要一个C编译器,Make和POSIX-compliant shell即可;
  • 传统体验,默认只会dump一个plain-TeX(就是最开始的plain.tex打了一些eTeX等扩展补丁,unicode-aware),默认附带所有的AmSFont(只装TFM和Type1);
  • 符合直觉,LuaTeX会读luatex.map而不是NTR的pdftex.map(所以改动了format,加了一个\everyjob)。

同时我还打包了一些我觉得比较有用的plainTeX宏集,处理好依赖关系,删掉不需要的东西之后放到releases里了:

目前主要是两个包:

  • luamplib,调用LuaTeX自带的mplib(就是MetaPost)绘图;
  • luaotfload,ConTeXt的font-loader的(plain|La)TeX迁移,支持使用OpenType/TrueType字体,调用其特性。

我刚打包了luatexja,可以写CJK了:

欢迎试用(

8 个赞

plainTeX,使用luamplib绘图和LuaTeX的micro-typography特性。

有一个 RStudio 团队维护的发行版叫 tinytex , 60 MB,维护了很多年了。使用 rmarkdown / quarto 进行文学化编程时,如果用户没装 texlive,会推荐安装 tiny-tex。

我刚看了一下,看上去就是一个tex-texlive-infra。那还不如用官方的unix-install-script。

而且我不写R(

tinytex 确实很不错!我用了很久,很方便。也不是和R绑定的,是在Rstudio原来工作的大神Yihui Xie 自己搞起来的。

想了想我有 uptex 和 type1 字体编辑一堆东西,还是算了。

倒是适合做 troff 平替。下次推荐给别人