Typst 发布 0.15.0 版本
原标题:Typst 0.15.0
速览
开源排版系统 Typst 正式推出 0.15.0 版本。该版本引入了多项新特性,进一步优化了文档排版体验与性能。此次更新为开发者与用户提供了更强大的文档处理能力。
AI 深度解读
Typst 0.15.0 深度解读:从排版引擎到全栈文档系统的演进
背景
Typst 作为一个新兴的、基于代码的排版系统,旨在提供比 LaTeX 更快速、更现代的文档生成体验。随着 0.15.0 版本的发布(2026年6月15日),Typst 正在从单纯的 PDF 生成工具向更通用的文档处理平台转型。
此次更新不仅引入了对可变字体(Variable Fonts)和 HTML 数学公式导出的原生支持,还通过实验性的 Bundle 导出功能,使得单个 Typst 项目能够输出多文件结构(如多页网站)。对于正在迁移现有文档的用户,官方提供了详细的迁移指南以应对潜在的兼容性变更。这一版本标志着 Typst 在语言特性、库函数完善度以及跨平台输出能力上的重大飞跃。
核心内容
1. 语言与语法层面的重大变更
- 路径处理规范化:文件路径(如在
import或image函数调用中)不再允许使用反斜杠,必须统一使用正斜杠。这是一个破坏性变更(Breaking change)。 - 解析稳定性增强:通过强制执行最大解析深度,修复了潜在的栈溢出崩溃问题;同时修复了未闭合字符串的增量解析错误。
- 代码提示优化:增加了针对代码模式中非法字符、嵌入表达式中直接使用一元运算符(如
#-30deg)的提示,帮助用户更快定位错误。
2. 样式与排版能力的扩展
- 可变字体支持:Typst 现在原生支持可变字体。
- 系统会自动根据文本的
weight、stretch、style和size设置常见的变化轴(如ital,slnt,wght,wdth,opsz)。 - 用户可以通过
text函数的新variations参数配置自定义变化。 - 注意:使用可变字体时,文件名后缀中的 “Variable”、“Var” 和 “VF” 将被自动修剪,以统一静态和可变字体到同一族中(轻微破坏性变更)。
- 系统会自动根据文本的
- 主题分隔符:新增
divider元素,代表主题分隔,模板可以对其进行样式化。 - 列表对齐修复:解决了长期存在的列表标记对齐和居中问题,新增
list.marker-align属性,默认采用垂直基线对齐和水平右对齐。 - 首行缩进折叠:
par.first-line-indent属性现在支持折叠,这意味着不同set规则或par调用中的部分字典会被合并。
3. 脚本与库函数的增强
- 文件路径类型:引入了新的
file path类型,取代了以往仅用字符串表示路径的方式。路径可以在文件间传递,但会相对于其原始文件解析,且支持跨包边界传递。 - 集合操作:为字典和参数添加了
map和filter函数;arguments值的命名参数现在可以通过字段访问语法访问。 - 数学计算模块 (
calc):- 新增反双曲函数
asinh,acosh,atanh和误差函数erf。 - 新增
int.min和int.max常量。 - 修复了负整数
quo的行为及norm,abs,gcd,lcm中的潜在溢出问题。 - 浮点计算现在在不同平台上保持一致性(确定性)。
- 新增反双曲函数
- 日期与时间处理:
datetime.today的offset参数现在接受duration类型,允许小时以下的精度偏移。- 日期时间的加减运算现在保留精度,而不是在某些情况下强制舍入到整天。
- 其他库改进:
int构造函数新增base参数以配置解析基数。panic函数现在直接显示字符串而非其repr,更适合面向用户的友好消息。slice函数在同时传递end和count时将报错(轻微破坏性变更)。
4. 模型与引用管理
- 多参考文献支持:单个文档现在可以包含多个参考文献列表。
- 新增
target参数到bibliography元素,用于配置哪些引用被哪个参考文献列表捕获。 - 新增
group参数,用于配置数字在多个参考文献列表间的共享或重置规则。
- 新增
- Hayagriva 集成改进:
- 支持
.bib文件中的数值型month键、BibLaTeX 名称选项以及非数值型volume字段。 - 改进了 CSL 样式互操作性,并参照 Hayagriva 0.10.0 的变更日志进行了优化。
- 改进了对
Anthos条目的处理,将其视为 CSL 中的chapter。
- 支持
5. 数学排版与 HTML 导出
- HTML 数学公式支持:HTML 导出现在通过 MathML 原生支持数学公式。
- 布局优化:改进了
underbrace等上下元素的布局,优化了math.op周围的间距,并使紧凑样式(cramped styles)的应用与 TeX 和 MathML Core 完全一致。 - 括号大小:
lr函数的size参数现在一致地应用于中间分隔符,如同外层分隔符一样,并相对于高度解析。
6. 其他重要功能
- 实验性 Bundle 导出:允许单个 Typst 项目输出多个文件(例如生成一个多页网站)。
- 多 PDF 标准支持:Typst 现在可以同时针对多个 PDF 标准进行输出。
- Spot Colors(专色):支持在胶印中使用自定义颜料。
- CLI 命令更新:新的
typst eval子命令取代了typst query。 - 错误诊断:布局收敛问题现在会产生详细的诊断信息;修复了
footnote链接位置(移至上标内部而非包裹整个上标),改善了 PDF 标记和 HTML 输出。 - 字体更新:更新了 New Computer Modern 字体至 8.1.0 版本,改变了数学字体中花体字母的默认外观(可通过
show math.equation: set text(stylistic-set: 6)恢复旧样式),并修复了<>符号的断行问题。
关键要点
- 可变字体原生支持:Typst 现在自动处理常见可变字体轴,并允许自定义配置,简化了字体管理。
- HTML 数学公式突破:通过 MathML 实现 HTML 导出中的数学公式支持,提升了 Web 兼容性。
- 多参考文献与多输出:支持单文档多参考文献列表,以及实验性的多文件 Bundle 导出,扩展了 Typst 的应用场景。
- 路径与语法规范化:强制使用正斜杠路径,修剪可变字体后缀,这些是需要注意的破坏性变更。
- 计算与日期精度提升:
calc模块和日期时间处理函数的改进,使得 Typst 在科学计算和数据处理方面更加可靠和精确。 - Hayagriva 深度集成:对
.bib文件和 CSL 样式的兼容性大幅增强,提升了学术写作的便利性。
意义与影响
Typst 0.15.0 的发布标志着该工具从“LaTeX 替代品”向“现代文档工程平台”的进一步迈进。
首先,可变字体和 HTML 数学公式的支持极大地拓宽了 Typst 的使用边界。可变字体的支持使得设计师可以更灵活地控制排版细节,而 HTML 数学公式的支持则解决了长期困扰排版系统的 Web 兼容性问题,使得 Typst 生成的文档更容易被集成到现代 Web 工作流中。
其次,多参考文献和 Bundle 导出功能增强了 Typst 处理
查看原文 →typst.app
