kevinraymond/florilegium
多媒体与设计为 LaTeX 文档程序化生成代尔夫特蓝花卉页边装饰,用 Lua 绘制。
Florilegium 是一个 LaTeX 宏包,另附一份自包含的 PostScript 文件,把花瓣、叶片、茎和昆虫直接画进 PDF,不使用图片或外部路径。它适合希望给书籍、文章或扉页加手绘风格代尔夫特蓝页边装饰的 LaTeX 用户,前提是能用 LuaLaTeX 编译。
产出什么
同一套宏包提供两种构图。手工编排版把茎、叶和花手工放置,针对 A4、68 mm 页边调好,本身不随版面变化。生长版用贪心填空循环:在茎附近找最大的空白圆盘,选一个放得下的图案,再从最近的茎长出一条枝到那里,不断重复,于是花园会填满正文留下的空间,包括末页正文下方较短而空出的区域。种子由页码派生,第 n 页永远是第 n 座花园;这种确定性正是排版稳定的前提。
整套色阶由单一的 ink 颜色经 OKLCH 插值得到,一个设置就能给出代尔夫特蓝、棕褐、绿色等色调。生长版还附带若干可选功能:用 OpenType 字形轮廓生成装饰性首字母、在编号标题旁放花、用 \florilegiumbloom 在正文指定位置放花,以及 aging 选项让花园从春天的花蕾过渡到秋天的种子头。蝴蝶、蜜蜂、蜗牛和偶尔出现的鸟可以关掉。
怎么运行
主路径是 LuaLaTeX,单遍编译,每页约一秒;季节选项需要两遍,因为它要用到总页数。README 给出了常规 make 构建、给没装 TeX 的机器用的 Docker 容器,以及在 Overleaf 上把 .sty、六个 .lua 文件和一个 .tex 文件粘进项目、把编译器设为 LuaLaTeX 的用法。图和动画目标还需要额外工具(python3、Pillow、pdftoppm、ffmpeg)。也可以在编译时固定种子,而不从页码派生。
另一条路是 PostScript 构建,生成一个可在 Ghostscript 下运行、不依赖 TeX 的自包含两页文件。它基本是逐个过程的移植,但种子值与 Lua 版不一一对应,也没有首字母、动画和手工编排版。PostScript 的透明效果需要 Ghostscript 的 -dALLOWPSTRANSPARENCY;在打印机上,每个半透明填充会被混色后不透明地画出,所以打印结果更平。
适用范围与限制
这是文档装饰工具,不是通用插画库,不过单个图元可以在 TikZ scope 里按当前的平移、旋转和缩放单独绘制。手工编排版布局固定,只有生长版随版面自适应,而且按 A4、68 mm 页边设计。项目采用 MIT 许可证。2026 年 Hacker News 上有人讨论了这一想法和 PDF 动画的实现方式(讨论),一位评论者还提到更早的 Byrne《欧几里得原本》LaTeX 版程序化装饰项目(评论)。
本文由 AI 根据项目 README 生成,更新于 2026年10月30日,以项目官方文档为准。