# Typst v0.15.0 — Version 0.15.0 (June 15, 2026) - Product: Typst (https://whatsnew.fyi/product/typst) - Vendor: Typst - Date: 2026-06-15 - Version: v0.15.0 - Original notes: https://github.com/typst/typst/releases/tag/v0.15.0 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.15.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Support for variable fonts - **added** — HTML export now supports equations out of the box via MathML - **added** — New experimental bundle export target to output multiple files from a single Typst project - **added** — Support for multiple bibliographies in a single document - **added** — Ability to target multiple PDF standards at once - **added** — New within selector to simplify introspection use cases - **added** — New divider element representing a thematic break that templates can style - **added** — Spot colors enable use of custom pigments in offset printing - **added** — New file path type for passing project-relative paths to packages - **added** — New typst eval CLI subcommand supersedes typst query - **added** — Added hints for invalid characters in code mode - **added** — Added hint when trying to use a unary operator directly in an embedded expression using a hash - **added** — Added map and filter functions on dictionaries and arguments - **added** — Named arguments on arguments values are now accessible with field access syntax - **added** — Added inclusive parameter to range function - **added** — Added asinh, acosh, atanh, and erf functions to calc module - **added** — Added int.min and int.max constants for the minimum and maximum representable integer - **added** — Added base parameter to int constructor to configure in which base to parse a string - **added** — Layout convergence issues now result in detailed diagnostics - **fixed** — Fixed two long-standing list layout issues with marker alignment and centering [Read the announcement blog post](https://typst.app/blog/2026/typst-0.15/) [View changelog with links into the documentation on typst.app/docs](https://typst.app/docs/changelog/0.15.0/) ##### Highlights - Typst now supports variable fonts - HTML export now supports equations out of the box via MathML - With the new, experimental *bundle* export target, a single Typst project can output multiple files (e.g. a multi-page website) - A single document can now contain multiple bibliographies - Typst can now target multiple PDF standards at once - The new `within` selector simplifies many introspection use cases - The new `divider` element represents a thematic break that templates can style - Spot colors enable use of custom pigments in offset printing - With the new file `path` type, project-relative paths can be passed to packages - The new, more general `typst eval` CLI subcommand supersedes `typst query` - Layout convergence issues now result in detailed diagnostics - Two long-standing list layout issues with marker alignment and centering were fixed - Paragraph handling in HTML export is improved, preventing unexpected paragraphs from appearing - The Typst documentation now has a [print version](https://github.com/typst/typst/releases/download/v0.15.0/typst-documentation.pdf) ##### Language ###### Syntax - File paths (e.g. in imports or `image` function calls) may not contain backslashes anymore; instead forward slashes must be used **(Breaking change)** - Added hints for invalid characters in code mode - Added hint when trying to use a unary operator directly in an embedded expression using a hash (e.g. `#-30deg`) - Fixed potential stack overflow crashes by enforcing a maximum parsing depth - Fixed incremental parsing of unclosed strings ###### Styling - Text show rules now have tracebacks that include the matched text - Fixed a crash with text show rules that match on multi-character symbols ###### Scripting - Extended hint when built-in definitions are shadowed to set and show rules - Added hint when trying to spread one or multiple dictionaries into an array - Improved diagnostics for invalid method calls - Improved hint for unknown variables in math that are available in `std` - Fixed a misleading error message when trying to assign to a temporary return value ##### Library ###### Foundations - Added file `path` type that is now accepted in all places where paths were previously only represented as strings - A path constructed in one file can be used in another file, but will be resolved relative to its original file - Likewise, paths can be passed across package boundaries - The initial path type is very minimal, but additional features like file existence checks or directory walking are planned - Collections - Added `map` and `filter` functions on dictionaries and arguments - Named arguments on `arguments` values are now accessible with field access syntax - The `slice` functions on strings and arrays will now error if passing both an `end` and a `count` **(Minor breaking change)** - Added `inclusive` parameter to `range` function - Calculation - Added `asinh`, `acosh`, `atanh`, and `erf` functions to `calc` module - Added `int.min` and `int.max` constants for the minimum and maximum representable integer, respectively - Fixed behavior of `quo` for negative integers - Fixed potential overflows in `norm`, `abs`, `gcd`, and `lcm` - Floating-point calculations are now consistently deterministic across platforms - Date & time handling - The `offset` parameter of `datetime.today` now accepts durations as an alternative to integers, allowing for sub-hour precision offsets - Addition and subtraction of datetimes and durations now retains precision instead of clamping to full days in some cases - The `d _[Truncated at 4000 characters — full notes: https://github.com/typst/typst/releases/tag/v0.15.0]_