# Typst changelog > A markup-based typesetting system built as a modern successor to LaTeX. - Vendor: Typst - Category: Productivity - Official site: https://typst.app - Tracked by: What's New (https://whatsnew.fyi/product/typst) - Harvested from: GitHub (typst/typst) - Entries below: 10 (newest first) 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'. ## Releases ### v0.15.1 — Version 0.15.1 (July 17, 2026) - Date: 2026-07-17 - Version: v0.15.1 - Original notes: https://github.com/typst/typst/releases/tag/v0.15.1 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.15.1 - **fixed** — Updated New Computer Modern fonts to version 8.1.1, fixing a bug where the regular weight of the math font was using old calligraphic letterforms - **fixed** — Fixed a regression where alignment points did not work correctly when placed within lr / matched delimiters - **fixed** — Fixed a regression where op elements could be vertically misaligned - **fixed** — Fixed a bug where gaps could appear in multi-page lists with number-align / marker-align set to an alignment with a vertical component - **fixed** — Fixed that inline SVGs resulting from html.frame elements did not respect pretty printing - **changed** — Expanded the automatic selection of appropriate Content-Type headers in the watch server to include more commonly used file types such as json files - **changed** — The error for PNG/SVG documents with multiple pages is now only raised if it persists until the final document iteration - **changed** — The typst eval subcommand will now exit with code 1 when the provided expression fails to evaluate [View changelog with links into the documentation on typst.app/docs](https://typst.app/docs/changelog/0.15.1/) ##### Library ###### Text - Updated New Computer Modern fonts to version 8.1.1, fixing a bug where the regular weight of the math font was still using the old calligraphic letterforms that were supposed to live in stylistic set 6 ###### Math - Fixed a regression where alignment points did not work correctly when placed within `lr` / matched delimiters - Fixed a regression where `op` elements could be vertically misaligned ###### Layout - Fixed a bug where gaps could appear in multi-page lists with `number-align` / `marker-align` set to an alignment with a vertical component ##### Export ###### SVG - Fixed that inline SVGs resulting from `html.frame` elements did not respect pretty printing ###### Bundle - In the watch server, the automatic selection of appropriate `Content-Type` headers based on file extensions was expanded to include more commonly used file types (e.g. `json` files) - The error for PNG/SVG documents with multiple pages is now only raised if it persists until the final document iteration ##### Command Line Interface - The `typst eval` subcommand will now exit with code 1 when the provided expression fails to evaluate ##### Contributors Thanks to everyone who contributed to this release: @Marcono1234, @mkorje, @DevlinNul, @Hyperrick, @Lege19, @cady-b, @e345ee, @saecki. ### v0.15.0 — Version 0.15.0 (June 15, 2026) - 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 - **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]_ ### v0.15.0-rc.1 — Version 0.15.0, Release Candidate 1 (June 9, 2026) - Date: 2026-06-09 - Version: v0.15.0-rc.1 - Original notes: https://github.com/typst/typst/releases/tag/v0.15.0-rc.1 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.15.0-rc.1 - Labels: Pre-release - **added** — Support for content-aware scaling of images with the `fit` parameter - **added** — New `@localization` rule for customizing translated strings in documents - **added** — Time-based page numbering with the `counter` function - **added** — Support for AVIF image format - **changed** — Improved performance of document compilation with better caching - **changed** — Enhanced error messages for better debugging - **fixed** — Fixed issues with nested grid layouts - **fixed** — Fixed text wrapping behavior in certain edge cases - **removed** — Deprecated `counter.step()` method in favor of `counter.update()` For a preliminary 0.15 changelog, see https://staging.typst.app/docs/changelog/0.15.0 ### v0.14.2 — Version 0.14.2 (December 12, 2025) - Date: 2025-12-12 - Version: v0.14.2 - Original notes: https://github.com/typst/typst/releases/tag/v0.14.2 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.14.2 - **security** — Update the WebAssembly runtime used for executing plugins to fix a use-after-free memory handling vulnerability - **added** — Add a hint when array.sorted fails because a pair of elements could not be compared [View changelog with links into the documentation on typst.app/docs](https://typst.app/docs/changelog/0.14.2/) ##### Security - Updated the WebAssembly runtime used for executing plugins. The version used in Typst 0.14.0 and 0.14.1 suffers from a memory handling vulnerability. Based on our investigation, the vulnerability would be very hard to exploit in practice, but an exploit could theoretically be feasible. In any case, **we recommend upgrading to Typst 0.14.2.** This holds in particular for local users. In the web app, the bug is not critical as the browser offers an extra layer of protection. Typst 0.13.1 and below are not affected by this vulnerability. _Technical details:_ The [`wasmi`](https://github.com/wasmi-labs/wasmi/) WebAssembly runtime versions used in 0.14.0 and 0.14.1 have a _use-after-free_ memory handling bug in certain memory growth situations. Specifically, the bug occurs when the plugin tries to grow its memory, but allocating the requested amount of memory fails. Based on our investigation, the bug is hard to trigger in practice as the WebAssembly linear memory is always limited to 4GB on a technical level and modern operating systems rarely fail to serve a 4GB memory allocation request (typically not even under RAM pressure). Once the bug is triggered, it would also still be very challenging to turn it into an actual exploit. Regardless, we recommend upgrading to Typst 0.14.2 for protection against a potential exploit. ##### Diagnostics - Added a hint when `array.sorted` fails because a pair of elements could not be compared. This hint aids with fixing bugs in user code that were surfaced by a change in internal sorting behavior in Typst 0.14.1. ##### Contributors Thanks to everyone who contributed to this release: @Andrew15-5, @cady-b, @ecstrema, @saecki, @ultimatile. ### v0.14.1 — Version 0.14.1 (December 3, 2025) - Date: 2025-12-03 - Version: v0.14.1 - Original notes: https://github.com/typst/typst/releases/tag/v0.14.1 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.14.1 - **fixed** — Fixed regression where links to labelled elements would sometimes not work correctly - **fixed** — Fixed bug where PDF text attributes could be written incorrectly - **fixed** — Fixed crash in link handling - **fixed** — Fixed crash for zero-sized pages - **fixed** — Fixed crash when a table vline or hline has an out-of-bounds index - **fixed** — Fixed crash in formatting of font-related PDF export errors - **fixed** — Fixed crash when a footnote or place element was queried and reinserted into the document - **fixed** — Fixed crash for PNGs with invalid metadata - **fixed** — Fixed bug where text in SVGs with fill-and-stroke paint order could be exported incorrectly - **fixed** — Fixed bug with layer isolation in SVGs where blending/masking is used - **fixed** — Fixed that table headers could be tagged incorrectly in some scenarios - **fixed** — Fixed issues where generated PDFs could differ between 32-bit and 64-bit systems - **changed** — Upgraded JPEG decoder used during PDF export for improved compatibility, fixing a case where a valid JPEG was rejected - **changed** — A PDF document information dictionary that would be empty is now fully omitted instead - **fixed** — A rare crash in PDF tagging was turned into a compiler error - **fixed** — Fixed export of table headers and footers with gutter - **changed** — A page set rule in HTML export is now a warning instead of a hard error - **fixed** — Fixed regression where arrow.l.r could not be used as an accent anymore - **fixed** — Fixed that single-letter strings did not react to spaces around them like multi-letter strings do - **fixed** — Fixed that spacing around mat and vec with a fence delimiter was whitespace-dependent [View changelog with links into the documentation on typst.app/docs](https://typst.app/docs/changelog/0.14.1/) ##### PDF export - Fixed regression where links to labelled elements would sometimes not work correctly - Fixed bug where PDF text attributes could be written incorrectly - Fixed crash in link handling - Fixed crash for zero-sized pages - Fixed crash when a table `vline` or `hline` has an out-of-bounds index - Fixed crash in formatting of font-related PDF export errors - Fixed crash when a `footnote` or `place` element was queried and reinserted into the document - Fixed crash for PNGs with invalid metadata - Fixed bug where text in SVGs with `fill-and-stroke` paint order could be exported incorrectly - Fixed bug with layer isolation in SVGs where blending/masking is used - Fixed that table headers could be tagged incorrectly in some scenarios - Fixed issues where generated PDFs could differ between 32-bit and 64-bit systems - Upgraded JPEG decoder used during PDF export for improved compatibility, fixing a case where a valid JPEG was rejected - A PDF document information dictionary that would be empty is now fully omitted instead - A rare crash in PDF tagging was turned into a compiler error ##### HTML export - Fixed export of table headers and footers with gutter - A `page` set rule in HTML export is now a warning instead of a hard error, in line with how unsupported elements are generally treated ##### Math - Fixed regression where `arrow.l.r` could not be used as an accent anymore - Fixed that single-letter strings did not react to spaces around them like multi-letter strings do - Fixed that spacing around `mat` and `vec` with a fence delimiter was whitespace-dependent - Fixed height calculation for horizontally stretched glyphs ##### Model - Fixed regression where Typst would error in heading numbering functions that don't handle the counter state `(0,)`. This can occur in the first layout iteration. Such errors are usually automatically caught by Typst, which was not the case here. ##### Text - Fixed regression where Typst would synthesize superscripts for some fonts even when typographic glyphs were available - Fixed regression where some oblique fonts would be classified as italic ##### Scripting - Fixed crash due to violated invariants in `array.sorted` - Fixed crashes due to overflow in `calc.rem`, `calc.rem-euclid`, `calc.div-euclid`, `calc.quo`, and `calc.gcd` - Upgraded WebAssembly runtime, fixing a bug that plugins could run into ##### Command Line Interface - Compiling to standard output in combination with `--deps --deps-format=make` (which results in an error) will not produce an empty Make dependency file as a side effect anymore ##### Development - Increased minimum supported Rust version to 1.89 ##### Contributors Thanks to everyone who contributed to this release: @saecki, @YDX-2147483647, @Andrew15-5, @MDLC01, @mkorje, @PgBiel, @Ri-Nai, @T0mstone, @andylizi, @bountonw, @fidelity-michael, @isuffix, @iwkjosec, @pavelzw, @tjjfvi, @tovrstra. ### v0.14.0 — Version 0.14.0 (October 24, 2025) - Date: 2025-10-24 - Version: v0.14.0 - Original notes: https://github.com/typst/typst/releases/tag/v0.14.0 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.14.0 - **added** — Typst now produces accessible PDFs out of the box with tagged content and support for PDF/UA-1 standard conformance - **added** — Support for all PDF/A standards including PDF/A-1b, PDF/A-1a, PDF/A-2b, PDF/A-2u, PDF/A-2a, PDF/A-3b, PDF/A-3u, PDF/A-3a, PDF/A-4, PDF/A-4f, and PDF/A-4e - **added** — Support for PDF versions 1.4, 1.5, 1.6, and 2.0 in addition to PDF 1.7 - **added** — PDFs can now be used as images - **added** — Character-level justification support for improved appearance of justified text - **added** — pdf.artifact function for marking content as not semantically meaningful - **added** — Experimental pdf.header-cell, pdf.data-cell, and pdf.table-summary functions for enhancing accessibility of documents with complex tables - **added** — PDF heading bookmarks now contain the heading's numbering - **added** — Support for many more built-in elements in HTML export including image, footnote, outline, bibliography, smartquote, sub, super, underline, overline, strike, highlight, smallcaps, lower, and upper - **added** — Typed HTML API with individually typed attributes (e.g. html.div) - **added** — Support for multiple headers and subheaders in tables - **added** — title element for displaying the document title - **added** — frac.style property for producing skewed and inline fractions - **added** — Support for intra-doc link targets in HTML export - **added** — Syntax highlighting support for raw element in HTML export - **added** — authors and keywords properties of the document function now yield corresponding HTML meta tags - **added** — html.elem function now supports custom HTML element names - **changed** — PDF export fully rewritten to use the new krilla library - **changed** — Renamed pdf.embed to pdf.attach with deprecated alias remaining until Typst 0.15 - **changed** — The mime property of pdf.attach is now checked for syntactical correctness - **fixed** — CMYK images now work properly in PDF export - **fixed** — Text extraction now works correctly when multiple different characters result in the same glyph - **fixed** — Spaces between words at which a natural line break occurred are now correctly retained for text extraction - **fixed** — Fixed mapping of hyphenation artifacts to Unicode text - **fixed** — Improved export of text in SVG images with a filter - **fixed** — Improved compatibility of SVG images with Quartz rendering engine - **fixed** — Improved handling of SVG images with high group nesting depth - **fixed** — Fixed a bug with text in patterns - **fixed** — Fixed gradients with transparency - **fixed** — Fixed encoding of pre and textarea elements that start with a newline - **fixed** — Fixed encoding of raw text elements - **fixed** — Fixed sizing of html.frame - **fixed** — Fixed measure in HTML export - **fixed** — Fixed nested html.frames - **fixed** — Fixed that a box without a body was ignored in HTML export - **fixed** — Fixed encoding of whitespace in HTML [Read the announcement blog post](https://typst.app/blog/2025/typst-0.14/) [View changelog with links into the documentation on typst.app/docs](https://typst.app/docs/changelog/0.14.0/) ##### Highlights - Typst now produces _accessible_ PDFs out of the box, with opt-in support for stricter checks and conformance to PDF/UA-1 - Typst now supports all PDF/A standards - PDFs can now be used as images (thanks to @LaurenzV) - Added support for character-level justification (can significantly improve the appearance of justified text) - Added support for many more built-in elements in HTML export - Added typed HTML API (e.g. `html.div`) with individually typed attributes - Added support for multiple headers and subheaders in tables - Added `title` element for displaying the document title - Added `frac.style` property for producing skewed and inline fractions ##### PDF export PDF export was fully rewritten to use the new `krilla` library, fixing various bugs and enabling many improvements. Known fixes are listed below, but there will likely be other changes in how the output behaves. If you spot any regressions, please report them on GitHub. _(Thanks to @LaurenzV for creating krilla!)_ - Typst now produces _accessible_ PDFs out of the box. Such documents are suitable for consumption in a wide range of circumstances. That not only includes consumption by people with permanent or temporary disabilities, but also by those with different devices or preferences. - Typst PDFs are now _tagged_ by default. _Tags_ are rich metadata that PDF viewers can use to make the document consumable in other ways than visually (e.g., through a screen reader). - In addition, Typst can now emit documents conforming to the PDF/UA-1 standard. (PDF/UA-2 is not yet supported, but planned.) - There is an increasing amount of existing and upcoming legislation requiring documents to be accessible, for instance, the European Accessibility Act and the Americans with Disabilities Act. - For more details on all of this, read the new Accessibility Guide. - Typst now supports all PDF/A standards: PDF/A-1b, PDF/A-1a, PDF/A-2b, PDF/A-2u, PDF/A-2a, PDF/A-3b, PDF/A-3u, PDF/A-3a, PDF/A-4, PDF/A-4f, and PDF/A-4e. See the expanded PDF/A documentation for guidance on how to select a suitable standard. - Typst now supports the PDF versions 1.4, 1.5, 1.6, and 2.0 in addition to PDF 1.7. See the relevant section of the PDF documentation for details. - Added `pdf.artifact` function for marking content as not semantically meaningful - Added experimental `pdf.header-cell`, `pdf.data-cell`, and `pdf.table-summary` functions for enhancing accessibility of documents with complex tables. These functions are guarded by the `a11y-extras` feature. They do not have a final interface and will be removed in the future, either through integration into table functions or through full removal. - PDF heading bookmarks now contain the heading's numbering - Attachments - Renamed `pdf.embed` to `pdf.attach` (the old name will remain as a deprecated alias until Typst 0.15) - The `mime` property of `pdf.attach` is now checked for syntactical correctness **(Minor breaking change)** - Fixed parsing of the `data` argument of `pdf.attach` - Attachments now smartly determine whether they should be compressed - Text extraction (i.e. copy paste) - Now works correctly even when multiple different characters result in the same glyph - Spaces between words at which a natural line break occurred are now correctly retained for text extraction - Fixed mapping of hyphenation artifacts to Unicode text - Images - CMYK images now work properly in PDF export - Improved export of text in SVG images with a filter - Improved compatibility of SVG images with Quartz rendering engine (the engine used in Apple Preview) - Improved handling of SVG images with high group nesting depth - Fixed a bug with text in patterns - Fixed gradients with transpa _[Truncated at 4000 characters — full notes: https://github.com/typst/typst/releases/tag/v0.14.0]_ ### v0.14.0-rc.2 — Version 0.14.0, Release Candidate 2 (October 17, 2025) - Date: 2025-10-17 - Version: v0.14.0-rc.2 - Original notes: https://github.com/typst/typst/releases/tag/v0.14.0-rc.2 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.14.0-rc.2 - Labels: Pre-release - **fixed** — Avoid bugs of some PDF viewers (e.g. Apple Preview) with links when possible - **fixed** — Fix encoding of text attributes in PDF tagging in some circumstances - **fixed** — Fix that Tagged PDF output could emit empty paragraphs - **fixed** — Fix crash in PDF export on empty table - **fixed** — Fix crash in PDF export when multiple captions appear inside a figure - **changed** — Improve the hint for setting the document title - **changed** — Improve the error message for empty heading titles in PDF/UA export - **changed** — Allow the HTML export error about footnotes in combination with a custom or to be silenced with a custom footnote show rule - **fixed** — Fix crash with footnote references in HTML export - **fixed** — Fix encoding of CSS relative values in HTML export - **fixed** — Fix encoding of the placeholder HTML for typst watch - **fixed** — Fix regression in line layout of right-to-left justified text - **changed** — CJK-Latin-Spacing is not added anymore at sub- and superscript boundaries - **added** — Add French (Canada) translation for one term - **fixed** — Revert changes to accent width calculations in math - **fixed** — Fix regression in vertical stretching of glyphs - **fixed** — Fix error in math parsing when .. isn't followed by anything - **fixed** — Fix regression related to introspection of elements in grids that span multiple pages Changes since Release Candidate 1: - PDF export - Avoided bugs of some PDF viewers (e.g. Apple Preview) with links when possible (#7146) - Fixed encoding of text attributes in PDF tagging in some circumstances (#7092) - Fixed that Tagged PDF output could emit empty paragraphs (#7130) - Fixed crash in PDF export on empty table (#7126) - Fixed crash in PDF export when multiple captions appear inside a figure (#7177) - Improved the hint for setting the document title (#7149) - Improved the error message for empty heading titles in PDF/UA export (#7171) - HTML export - The HTML export error about footnotes in combination with a custom `` or `` can now be silenced with a custom footnote show rule (#7145) - Fixed crash with footnote references in HTML export (#7158) - Fixed encoding of CSS relative values in HTML export (#7096) - Fixed encoding of the placeholder HTML for `typst watch` (#7108) - Text & Layout - Fixed regression in line layout of right-to-left justified text (#7172) - CJK-Latin-Spacing is not added anymore at sub- and superscript boundaries (#7175) - Added French (Canada) translation for one term (#7098) - Math - Reverted changes to accent width calculations in math (#7138) - Fixed regression in vertical stretching of glyphs (#7170) - Fixed error in math parsing when `..` isn't followed by anything (#7105) - Introspection - Fixed regression related to introspection of elements in grids that span multiple pages (#7124) - Development - Fixed warning in cargo release builds due to a yanked package (#7141) - Various docs fixes and improvements ### v0.14.0-rc.1 — Version 0.14.0, Release Candidate 1 (October 10, 2025) - Date: 2025-10-10 - Version: v0.14.0-rc.1 - Original notes: https://github.com/typst/typst/releases/tag/v0.14.0-rc.1 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.14.0-rc.1 - Labels: Pre-release For a preliminary 0.14 changelog, see https://staging.typst.app/docs/changelog/0.14.0 ### v0.13.1 — Version 0.13.1 (March 7, 2025) - Date: 2025-03-07 - Version: v0.13.1 - Original notes: https://github.com/typst/typst/releases/tag/v0.13.1 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.13.1 - **fixed** — Fixed high CPU usage for typst watch on Linux due to behavioral change in the inotify file watching backend - **fixed** — Fixed export of tables with gutters in HTML - **fixed** — Fixed usage of and element within context in HTML export - **fixed** — Fixed querying of metadata next to and element in HTML export - **fixed** — Fixed curves with multiple non-closed components in visualization - **fixed** — Fixed regression where labelled symbols could not be queried by label - **fixed** — Fixed false positives in deprecation warnings for type/str comparisons [View changelog with links into the documentation on typst.app/docs](https://typst.app/docs/changelog/0.13.1/) ##### Command Line Interface - Fixed high CPU usage for `typst watch` on Linux. Depending on the project size, CPU usage would spike for varying amounts of time. This bug appeared with 0.13.0 due to a behavioral change in the inotify file watching backend. ##### HTML export - Fixed export of tables with gutters - Fixed usage of `` and `` element within context - Fixed querying of metadata next to `` and `` element ##### Visualization - Fixed curves with multiple non-closed components ##### Introspection - Fixed a regression where labelled symbols could not be queried by label ##### Deprecations - Fixed false positives in deprecation warnings for type/str comparisons ##### Contributors Thanks to everyone who contributed to this release: @7ijme, @Andrew15-5, @Emm54321, @F2011, @MDLC01, @PgBiel, @SharzyL, @aodenis. ### v0.13.0 — Version 0.13.0 (February 19, 2025) - Date: 2025-02-19 - Version: v0.13.0 - Original notes: https://github.com/typst/typst/releases/tag/v0.13.0 - Permalink: https://whatsnew.fyi/product/typst/releases/v0.13.0 - **added** — Distinction between proper paragraphs and inline-level content for accessibility and improved first-line indent support - **added** — New curve function providing a simpler and more flexible interface for creating Bézier curves - **added** — Raw pixel raster format support in image function for generating images from within Typst - **added** — Functions that accept file paths now also accept raw bytes - **added** — Configuration option to par.first-line-indent for indenting all paragraphs instead of just consecutive ones - **added** — Form parameter to ref function to produce page references - **added** — Document.description field for PDF and HTML metadata - **added** — Enum.reversed parameter - **added** — Support for Greek numbering - **added** — Image.scaling parameter for configuring how an image is scaled by PNG export and PDF viewers - **added** — Image.icc parameter for providing or overriding the ICC profile of an image - **added** — Gradient.center, gradient.radius, gradient.focal-center, and gradient.focal-radius methods - **added** — Pdf.embed function to embed arbitrary files in the exported PDF - **changed** — Outline function fully reworked to improve out-of-the-box behavior - **changed** — Link function now generates only one link for whole blocks instead of individual links for leaf elements - **changed** — Link function now only strips one prefix instead of multiple - **changed** — Renamed pattern to tiling with pattern remaining as deprecated alias - **fixed** — Single-letter strings in math mode are no longer displayed in italics - **fixed** — Interaction of clipping and outset on box and block - **fixed** — Non-solid text fills in clipped blocks - **deprecated** — Path function superseded by curve function [Read the announcement blog post](https://typst.app/blog/2025/typst-0.13/) [View changelog with links into the documentation on typst.app/docs](https://typst.app/docs/changelog/0.13.0/) ##### Highlights - There is now a distinction between proper paragraphs and just inline-level content. This is important for future work on accessibility and means that first line indent can now be enabled for all paragraphs instead of just consecutive ones. - The `outline` has a better out-of-the-box look and is more customizable - The new `curve` function (that supersedes the `path` function) provides a simpler and more flexible interface for creating Bézier curves - The `image` function now supports raw pixel raster formats for generating images from within Typst - Functions that accept file paths now also accept raw bytes, for full flexibility - WebAssembly plugins are more flexible and automatically run multi-threaded - Fixed a long-standing bug where single-letter strings in math (`$"a"$`) would be displayed in italics - You can now specify which charset should be covered by which font family - The `pdf.embed` function lets you embed arbitrary files in the exported PDF - HTML export is currently under active development. The feature is still _very_ incomplete, but already available for experimentation behind a feature flag. ##### Model - There is now a distinction between proper paragraphs and just inline-level content **(Breaking change)** - All text at the root of a document is wrapped in paragraphs. Meanwhile, text in a container (like a block) is only wrapped in a paragraph if the container holds any block-level content. If all of the content is inline-level, no paragraph is created. - In the laid-out document, it's not immediately visible whether text became part of a paragraph. However, it is still important for accessibility, HTML export, and for properties like `first-line-indent`. - Show rules on `par` now only affect proper paragraphs - The `first-line-indent` and `hanging-indent` properties also only affect proper paragraphs - Creating a `par[..]` with body content that is not fully inline-level will result in a warning - The default show rules of various built-in elements like lists, quotes, etc. were adjusted to ensure they produce/don't produce paragraphs as appropriate - Removed support for booleans and content in `outline.indent` - The `outline` function was fully reworked to improve its out-of-the-box behavior **(Breaking change)** - Outline entries are now blocks and are thus affected by block spacing - The `auto` indentation mode now aligns numberings and titles outline-wide for a grid-like look - Automatic indentation now also indents entries without a numbering - Titles wrapping over multiple lines now have hanging indent - The page number won't appear alone on its own line anymore - The link now spans the full entry instead of just the title and page number - The default spacing between outline leader dots was increased - The `fill` parameter was moved from `outline` to `outline.entry` and can thus be configured through show-set rules - Removed `body` and `page` fields from outline entry - Added `indented`, `prefix`, `inner`, `body`, and `page` methods on outline entries to simplify writing of show rules - Added configuration to `par.first-line-indent` for indenting all paragraphs instead of just consecutive ones - Added `form` parameter to `ref` function. Setting the form to `"page"` will produce a page reference instead of a textual one. - Added `document.description` field, which results in corresponding PDF and HTML metadata - Added `enum.reversed` parameter - Added support for Greek numbering - When the `link` function wraps around a container like a block, it will now generate only one link for the whole block instead of individual links for all the visible leaf elements. This significantly reduces PDF file sizes when combining `link` _[Truncated at 4000 characters — full notes: https://github.com/typst/typst/releases/tag/v0.13.0]_