Info
This site is generated using the static site generator developed by the Typst Community. Please adjust the text content of this banner according to your usage requirements. At Typst GmbH's request, when publishing documentation, you must clearly indicate that it is non-official and display the version of Typst being documented. For details, refer to Issue #874 on typst/typst.
TypstDocumentEnglish
v0.dev.2025-09-12

Version 0.4.0 (May 20, 2023)

Footnotes

  • Implemented support for footnotes
  • The footnote function inserts a footnote
  • The footnote.entry function can be used to customize the footnote listing
  • The "chicago-notes" citation style is now available

Documentation

  • Added a Guide for LaTeX users
  • Now shows default values for optional arguments
  • Added richer outlines in "On this Page"
  • Added initial support for search keywords: "Table of Contents" will now find the outline function. Suggestions for more keywords are welcome!
  • Fixed issue with search result ranking
  • Fixed many more small issues

Math

  • Breaking change: Alignment points (&) in equations now alternate between left and right alignment
  • Added support for writing roots with Unicode: For example, $root(x+y)$ can now also be written as $(x+y)$
  • Fixed uneven vertical attachment alignment
  • Fixed spacing on decorated elements (e.g., spacing around a canceled operator)
  • Fixed styling for stretchable symbols
  • Added tack.r.double, tack.l.double, dotless.i and dotless.j symbols
  • Fixed show rules on symbols (e.g. show sym.tack: set text(blue))
  • Fixed missing rename from ast.op to ast that should have been in the previous release

Scripting

  • Added function scopes: A function can now hold related definitions in its own scope, similar to a module. The new assert.eq function, for instance, is part of the assert function's scope. Note that function scopes are currently only available for built-in functions.
  • Added assert.eq and assert.ne functions for simpler equality and inequality assertions with more helpful error messages
  • Exposed list, enum, and term list items in their respective functions' scope
  • The at methods on strings, arrays, dictionaries, and content now support specifying a default value
  • Added support for passing a function to replace that is called with each match.
  • Fixed replacement strings: They are now inserted completely verbatim instead of supporting the previous (unintended) magic dollar syntax for capture groups
  • Fixed bug with trailing placeholders in destructuring patterns
  • Fixed bug with underscore in parameter destructuring
  • Fixed crash with nested patterns and when hovering over an invalid pattern
  • Better error messages when casting to an integer or float fails

Text and Layout

  • Implemented sophisticated CJK punctuation adjustment
  • Disabled overhang for CJK punctuation
  • Added basic translations for Traditional Chinese
  • Fixed alignment of text inside raw blocks (centering a raw block, e.g. through a figure, will now keep the text itself left-aligned)
  • Added support for passing a array instead of a function to configure table cell alignment and fill per column
  • Fixed automatic figure kind detection
  • Made alignment of enum numbers configurable, defaulting to end
  • Figures can now be made breakable with a show-set rule for blocks in figure
  • Initial fix for smart quotes in RTL languages

Export

  • Fixed ligatures in PDF export: They are now copyable and searchable
  • Exported PDFs now embed ICC profiles for images that have them
  • Fixed export of strokes with zero thickness

Web app

  • Projects can now contain folders
  • Added upload by drag-and-drop into the file panel
  • Files from the file panel can now be dragged into the editor to insert them into a Typst file
  • You can now copy-paste images and other files from your computer directly into the editor
  • Added a button to resend confirmation email
  • Added an option to invert preview colors in dark mode
  • Added tips to the loading screen and the Help menu. Feel free to propose more!
  • Added syntax highlighting for YAML files
  • Allowed middle mouse button click on many buttons to navigate into a new tab
  • Allowed more project names
  • Fixed overridden Vim mode keybindings
  • Fixed many bugs regarding file upload and more

Miscellaneous Improvements

  • Improved performance of counters, state, and queries
  • Improved incremental parsing for more efficient recompilations
  • Added support for .yaml extension in addition to .yml for bibliographies
  • The CLI now emits escape codes only if the output is a TTY
  • For users of the typst crate: The Document is now Sync again and the World doesn't have to be 'static anymore

Contributors

Open official docs

Search