Justif:面向 Web 的出版级文字排版引擎
来源:justif.lyall.co
📋 概述
Justif 是一个将 Knuth-Plass 排版算法带入 Web 平台的 JavaScript 库,实现了传统出版级别的文字对齐(justification)与微排版(microtypography)。Knuth-Plass 算法由 Donald Knuth 在 TeX 排版系统中发明,通过全局优化而非逐行贪婪算法来决定断行位置,能够大幅减少文字间距的不均匀性。Justif 将这一经典算法适配到现代浏览器环境,支持多种经典字体(EB Garamond、Junicode、Latin Modern 等)、多语言排版(含日文和希伯来文/阿拉伯文 RTL),并提供了与浏览器原生渲染的实时对比视图。项目演示页面展示了从《爱丽丝梦游仙境》到 RFC 2324 等多种文本样本的渲染效果。
🔑 核心要点
- 底层算法是 Knuth-Plass 动态规划断行,它考虑整个段落的全局最优断行方案而非逐行处理,能显著减少文字间距波动。
- 支持微排版(microtypography)特性,包括字符突出(protrusion)、字体扩展(expansion)等传统排版技术,现在首次在浏览器中可用。
- 提供并排对比模式:用户可实时切换查看 Justif 渲染效果与浏览器原生渲染的差异,直观感受排版质量的提升。
- 支持多种经典字体:EB Garamond、Junicode、Alegreya、IM Fell English、Vollkorn、Latin Modern (TeX)、Georgia 等,以及可变字体 Amstelvar。
- 覆盖多语言支持:包括日文(吾輩は猫である)、希伯来文和阿拉伯文等 RTL 语言,体现算法的通用性。
- 文本样本丰富多样,从文学作品到技术文档(RFC 2324),展示了算法在不同内容类型上的适用性。
💡 金句
publication-grade text justification for the web —— 面向 Web 的出版级文字对齐
👍 0👎 0
← 返回 Lobsters 首页