Typst 0.15.0 Release Notes

Typst 0.15.0 is a significant update that expands the tool's capabilities in font handling, web export, and document structure. Key additions include support for variable fonts, MathML integration for accessible HTML equations, and an experimental bundle export target that allows a single project to generate multiple output files.

Core Feature Enhancements

Variable Font Support

Typst now supports variable fonts, allowing for more fluid control over text styling. The system automatically maps standard text parameters—such as weight, stretch, style, and size—to common variation axes like wght, wdth, ital, slnt, and opsz.

Custom variations can be configured via the new variations parameter in the text function. To unify static and variable fonts into a single family, Typst now automatically trims suffixes such as "Variable", "Var", and "VF" from font family names. This is a minor breaking change for users who previously specified these suffixes in their font settings.

Multi-File Bundle Export

An experimental bundle export target has been introduced. This feature enables a single Typst project to emit multiple output files simultaneously. These bundles can consist of any combination of PDFs, HTML pages, PNGs, SVGs, and arbitrary assets, making it possible to generate multi-page websites or complex document sets from a single source.

Enhanced Bibliography Management

Typst 0.15.0 now allows a single document to contain multiple bibliographies. This removes a previous limitation and enables more complex academic and professional document structures.

Web and PDF Export Improvements

HTML Export and MathML

HTML export now supports equations out of the box via MathML. This transition improves the accessibility of documents by preserving the semantics of mathematical expressions, though rendering consistency may vary across different browsers. This is a recommended alternative to previous show rules that used html.frame to render equations as SVGs.

HTML Paragraph Grouping

Typst has overhauled how paragraphs are grouped in HTML export to prevent unexpected <p> elements from appearing. The system now categorizes elements as inline-level, block-level, or "neutral."

  • Inline-level: Text, box elements, and HTML phrasing content.
  • Neutral: Most other HTML elements.
  • Block-level: block elements and built-in block-level Typst elements (like headings).

Neutral elements no longer force adjacent inline content into paragraphs, ensuring that the typed HTML API produces cleaner, more predictable output.

PDF and SVG Enhancements

PDF image handling has been improved with support for JPEG2000 (JPXDecode) and JBIG2 (JBIG2Decode) images, as well as blend modes. SVG export now supports variable fonts via the font-variation-settings CSS property and handles SVGs lacking a top-level xmlns attribute.

Language and Layout Changes

Baseline Alignment

In a breaking change, Typst now retains baseline information across more of the layout engine. This specifically affects box, block, and list items. For example, text within a box with an inset is now aligned with the surrounding text's baseline, and list markers are properly aligned with the first line of the item regardless of the item's vertical size.

File Path Handling

Typst has introduced a dedicated path type. This allows project-relative paths to be passed to packages and ensures that paths constructed in one file are resolved relative to their original file. Additionally, backslashes in file paths (common on Windows) are no longer supported; forward slashes must be used for cross-platform compatibility.

Math Mode Adjustments

Several adjustments have been made to mathematical typesetting:

  • The class function: Now applies only to its direct body rather than recursively (minor breaking change).
  • Delimiters: Additional symbols, such as chevron.l, can now be called as functions to produce lr elements.
  • Glyph Stretching: Ratios passed to lr.size or stretch.size are now resolved relative to the base glyph size rather than the display size.

Tooling and Removals

CLI and Diagnostics

The typst eval CLI subcommand now supersedes typst query. Additionally, layout convergence issues now provide detailed diagnostics to help developers identify the cause of infinite layout loops.

Breaking Removals

Several deprecated features have been removed:

  • The path element is replaced by curve.
  • The pattern type is replaced by tiling.
  • The pdf.embed element is replaced by pdf.attach.
  • Scoped decode functions (e.g., json.decode) are replaced by passing bytes directly to top-level functions.

Community Insights

Users in the Hacker News discussion highlighted the efficiency of Typst compared to LaTeX, particularly regarding compilation speed and programmatic generation. One user noted that Typst has "saved us thousands of dollars generating PDF documents programmatically."

However, some limitations remain. A humanities student noted that discursive footnotes containing bibliography references do not currently work well, stating:

Discursive footnotes do not really work when including bibliography references... a big caveat for anyone working in the humanities / who uses e.g. Chicago-style footnotes.

Other users mentioned that while LLMs are helpful for migrating from LaTeX, they still struggle with specific design choices like line height and layout aesthetics.

Sources