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.8.0 (September 13, 2023)

Scripting

  • Plugins (thanks to @astrale-sharp and @arnaudgolfouse)
    • Typst can now load plugins that are compiled to WebAssembly
    • Anything that can be compiled to WebAssembly can thus be loaded as a plugin
    • These plugins are fully encapsulated (no access to file system or network)
    • Plugins can be shipped as part of packages
    • Plugins work just the same in the web app
  • Types are now first-class values (Breaking change)
    • A type is now itself a value
    • Some types can be called like functions (those that have a constructor), e.g. int and str
    • Type checks are now of the form type(10) == int instead of the old type(10) == "integer". Compatibility with the old way will remain for a while to give package authors time to upgrade, but it will be removed at some point.
    • Methods are now syntax sugar for calling a function scoped to a type, meaning that "hello".len() is equivalent to str.len("hello")
  • Added support for import renaming with as
  • Added a duration type
  • Added support for CBOR encoding and decoding
  • Added encoding and decoding functions from and to bytes for data formats: json.decode, json.encode, and similar functions for other formats
  • Added array.intersperse function
  • Added str.rev function
  • Added calc.tau constant
  • Made bytes joinable and addable
  • Made array.zip function variadic
  • Fixed bug with eval when the mode was set to "math"
  • Fixed bug with ends-with function on strings
  • Fixed bug with destructuring in combination with break, continue, and return
  • Fixed argument types of hyperbolic functions, they don't allow angles anymore (Breaking change)
  • Renamed some color methods: rgba becomes to-rgba, cmyk becomes to-cmyk, and luma becomes to-luma (Breaking change)

Export

  • Added SVG export (thanks to @Enter-tainer)
  • Fixed bugs with PDF font embedding
  • Added support for page labels that reflect the page numbering style in the PDF

Text and Layout

  • Added highlight function for highlighting text with a background color
  • Added polygon.regular function for drawing a regular polygon
  • Added support for tabs in raw elements alongside tab-width parameter
  • The layout engine now tries to prevent "runts" (final lines consisting of just a single word)
  • Added Finnish translations
  • Added hyphenation support for Polish
  • Improved handling of consecutive smart quotes of different kinds
  • Fixed vertical alignments for number-align argument on page function (Breaking change)
  • Fixed weak pagebreaks after counter updates
  • Fixed missing text in SVG when the text font is set to "New Computer Modern"
  • Fixed translations for Chinese
  • Fixed crash for empty text in show rule
  • Fixed leading spaces when there's a linebreak after a number and a comma
  • Fixed placement of floating elements in columns and other containers
  • Fixed sizing of block containing just a single box

Math

  • Added support for augmented matrices
  • Removed support for automatic matching of fences like | and || as there were too many false positives. You can use functions like abs or norm or an explicit lr call instead. (Breaking change)
  • Fixed spacing after number with decimal point in math
  • Fixed bug with primes in subscript
  • Fixed weak spacing
  • Fixed crash when text within math contains a newline

Tooling and Diagnostics

  • Added hints when trying to call a function stored in a dictionary without extra parentheses
  • Fixed hint when referencing an equation without numbering
  • Added more details to some diagnostics (e.g. when SVG decoding fails)

Command line interface

  • Added typst update command for self-updating the CLI (thanks to @jimvdl)
  • Added download progress indicator for packages and updates
  • Added --format argument to explicitly specify the output format
  • The CLI now respects proxy configuration through environment variables and has a new --cert option for setting a custom CA certificate
  • Fixed crash when field wasn't present and --one is passed to typst query

Miscellaneous Improvements

  • Added page setup guide
  • Added figure.caption function that can be used for simpler figure customization (Breaking change because it.caption now renders the full caption with supplement in figure show rules and manual outlines)
  • Moved caption-pos argument to figure.caption function and renamed it to position (Breaking change)
  • Added separator argument to figure.caption function
  • Added support for combination of and/or and before/after selectors
  • Packages can now specify a minimum compiler version they require to work
  • Fixed parser bug where method calls could be moved onto their own line for #let expressions in markup (Breaking change)
  • Fixed bugs in sentence and title case conversion for bibliographies
  • Fixed supplements for alphanumeric and author-title bibliography styles
  • Fixed off-by-one error in APA bibliography style

Development

  • Made Span and FileId more type-safe so that all error conditions must be handled by World implementors

Contributors

Open official docs

Search