Scripting
Plugins (thanks to https://github.com/astrale-sharp and https://github.com/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.
intandstrType 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
importrenaming withasAdded a
durationtypeAdded 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 formatsAdded
array.interspersefunctionAdded
str.revfunctionAdded
calc.tauconstantMade bytes joinable and addable
Made
array.zipfunction variadicFixed bug with
evalwhen themodewas set to{"math"}Fixed bug with
ends-withfunction on stringsFixed 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:
rgbabecomesto-rgba,cmykbecomesto-cmyk, andlumabecomesto-luma(Breaking change)
Export
Added SVG export (thanks to https://github.com/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
highlightfunction for highlighting text with a background colorAdded
polygon.regularfunction for drawing a regular polygonAdded support for tabs in
rawelements alongsidetab-widthparameterThe 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-alignargument 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 likeabsornormor an explicitlrcall 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 updatecommand for self-updating the CLI (thanks to https://github.com/jimvdl)Added download progress indicator for packages and updates
Added
--formatargument to explicitly specify the output formatThe CLI now respects proxy configuration through environment variables and has a new
--certoption for setting a custom CA certificateFixed crash when field wasn't present and
--oneis passed totypst query
Miscellaneous Improvements
Added Page Setup Guide
Added
figure.captionfunction that can be used for simpler figure customization (Breaking change becauseit.captionnow renders the full caption with supplement in figure show rules and manual outlines)Moved
caption-posargument tofigure.captionfunction and renamed it toposition(Breaking change)Added
separatorargument tofigure.captionfunctionAdded 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
SpanandFileIdmore type-safe so that all error conditions must be handled byWorldimplementors