Typst 0.15.0 发布说明

Typst 0.15.0 是一次重要更新,扩展了工具在字体处理、网页导出和文档结构方面的能力。关键新增功能包括对可变字体的支持、用于可访问 HTML 公式的 MathML 集成,以及一个实验性的 bundle 导出目标,允许单个项目生成多个输出文件。

核心功能增强

可变字体支持

Typst 现在支持可变字体,能够更流畅地控制文本样式。系统会自动将标准文本参数——如 weightstretchstylesize——映射到常见的变体轴,如 wghtwdthitalslntopsz

可以通过 text 函数中的新参数 variations 配置自定义变体。为了将静态字体和可变字体统一到同一个家族,Typst 现在会自动去除字体家族名称中的后缀,如 “Variable”、"Var" 和 "VF"。这对之前在 font 设置中手动指定这些后缀的用户来说是一个小的破坏性改动。

多文件 Bundle 导出

引入了实验性的 bundle 导出目标。该功能使单个 Typst 项目能够同时生成多个输出文件。这些 bundle 可以包含任意组合的 PDF、HTML 页面、PNG、SVG 以及其他资产,从而可以从单一源文件生成多页网站或复杂的文档集合。

增强的参考文献管理

Typst 0.15.0 现在允许单个文档包含多个参考文献列表。这消除了之前的限制,使得学术和专业文档的结构可以更加复杂。

网页和 PDF 导出改进

HTML 导出与 MathML

HTML 导出现在开箱即支持通过 MathML 渲染公式。此改进通过保留数学表达式的语义提升了文档的可访问性,尽管在不同浏览器上的渲染一致性可能有所差异。这是对之前使用 html.frame 将公式渲染为 SVG 的 show 规则的推荐替代方案。

HTML 段落分组

Typst 对 HTML 导出时段落的分组方式进行了彻底改革,以防止出现意外的 <p> 元素。系统现在将元素分类为 inline‑level、block‑level 或 “neutral”。

  • Inline‑level:文本、box 元素以及 HTML phrasing 内容。
  • Neutral:大多数其他 HTML 元素。
  • Block‑levelblock 元素以及内置的块级 Typst 元素(如标题)。

Neutral 元素不再强制将相邻的 inline 内容包装进段落,从而确保使用 HTML API 时产生更干净、更可预测的输出。

PDF 与 SVG 增强

PDF 图像处理得到改进,新增对 JPEG2000(JPXDecode)和 JBIG2(JBIG2Decode)图像以及混合模式的支持。SVG 导出现在通过 font-variation-settings CSS 属性支持可变字体,并能够处理缺少顶层 xmlns 属性的 SVG 文件。

语言与布局变更

基线对齐

作为一次破坏性改动,Typst 现在在布局引擎的更多部分保留基线信息。这尤其影响 boxblock 和列表项。例如,带有 inset 的 box 中的文本现在会与周围文本的基线对齐,列表标记也会相对于项目的第一行正确对齐,无论项目的垂直尺寸如何。

文件路径处理

Typst 引入了专用的 path 类型。这允许将相对于项目的路径传递给包,并确保在一个文件中构造的路径相对于其原始文件进行解析。此外,文件路径中的反斜杠(Windows 常见)不再受支持;必须使用正斜杠以实现跨平台兼容。

数学模式调整

对数学排版做了若干调整:

  • class 函数:现在仅作用于其直接主体,而不是递归作用(小的破坏性改动)。
  • 分隔符:额外的符号,如 chevron.l,现在可以作为函数调用以生成 lr 元素。
  • 字形拉伸:传递给 lr.sizestretch.size 的比例现在相对于基础字形大小而非显示大小进行解析。

工具与移除

CLI 与诊断

typst eval CLI 子命令现在取代了 typst query。此外,布局收敛问题现在会提供详细的诊断信息,帮助开发者定位无限布局循环的原因。

破坏性移除

若干已废弃的特性已被移除:

  • path 元素被 curve 替代。
  • pattern 类型被 tiling 替代。
  • pdf.embed 元素被 pdf.attach 替代。
  • 作用域解码函数(例如 json.decode)被直接将 bytes 传递给顶层函数的方式替代。

社区洞察

在 Hacker News 的讨论中,用户强调了 Typst 相较于 LaTeX 的效率,尤其是在编译速度和程序化生成方面。一位用户指出 Typst “为我们节省了数千美元的 PDF 文档程序化生成成本”。

然而,仍有一些限制。一位人文学科的学生指出,包含参考文献的论述性脚注目前表现不佳,称:

论述性脚注在包含参考文献时并不能真正工作……这对任何从事人文学科或使用例如 Chicago 风格脚注的人来说是一个很大的警示。

其他用户提到,虽然 LLM 在从 LaTeX 迁移时很有帮助,但它们仍然在处理诸如行高和布局美学等具体设计选择时表现不足。

Sources