← 返回信息流
AI 资讯Hacker News·3 小时前

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. 语言与语法层面的重大变更

  • 路径处理规范化:文件路径(如在 importimage 函数调用中)不再允许使用反斜杠,必须统一使用正斜杠。这是一个破坏性变更(Breaking change)。
  • 解析稳定性增强:通过强制执行最大解析深度,修复了潜在的栈溢出崩溃问题;同时修复了未闭合字符串的增量解析错误。
  • 代码提示优化:增加了针对代码模式中非法字符、嵌入表达式中直接使用一元运算符(如 #-30deg)的提示,帮助用户更快定位错误。

2. 样式与排版能力的扩展

  • 可变字体支持:Typst 现在原生支持可变字体。
    • 系统会自动根据文本的 weightstretchstylesize 设置常见的变化轴(如 ital, slnt, wght, wdth, opsz)。
    • 用户可以通过 text 函数的新 variations 参数配置自定义变化。
    • 注意:使用可变字体时,文件名后缀中的 “Variable”、“Var” 和 “VF” 将被自动修剪,以统一静态和可变字体到同一族中(轻微破坏性变更)。
  • 主题分隔符:新增 divider 元素,代表主题分隔,模板可以对其进行样式化。
  • 列表对齐修复:解决了长期存在的列表标记对齐和居中问题,新增 list.marker-align 属性,默认采用垂直基线对齐和水平右对齐。
  • 首行缩进折叠par.first-line-indent 属性现在支持折叠,这意味着不同 set 规则或 par 调用中的部分字典会被合并。

3. 脚本与库函数的增强

  • 文件路径类型:引入了新的 file path 类型,取代了以往仅用字符串表示路径的方式。路径可以在文件间传递,但会相对于其原始文件解析,且支持跨包边界传递。
  • 集合操作:为字典和参数添加了 mapfilter 函数;arguments 值的命名参数现在可以通过字段访问语法访问。
  • 数学计算模块 (calc)
    • 新增反双曲函数 asinh, acosh, atanh 和误差函数 erf
    • 新增 int.minint.max 常量。
    • 修复了负整数 quo 的行为及 norm, abs, gcd, lcm 中的潜在溢出问题。
    • 浮点计算现在在不同平台上保持一致性(确定性)。
  • 日期与时间处理
    • datetime.todayoffset 参数现在接受 duration 类型,允许小时以下的精度偏移。
    • 日期时间的加减运算现在保留精度,而不是在某些情况下强制舍入到整天。
  • 其他库改进
    • int 构造函数新增 base 参数以配置解析基数。
    • panic 函数现在直接显示字符串而非其 repr,更适合面向用户的友好消息。
    • slice 函数在同时传递 endcount 时将报错(轻微破坏性变更)。

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