Bibliography management
New bibliography engine based on CSL (Citation Style Language). Ships with about 100 commonly used citation styles and can load custom
.cslfiles.Added new
formargument to thecitefunction to produce different forms of citations (e.g. for producing a citation suitable for inclusion in prose)The
citefunction now takes only a single label/key instead of allowing multiple. Adjacent citations are merged and formatted according to the citation style's rules automatically. This works both with the reference syntax and explicit calls to thecitefunction. (Breaking change)The
citefunction now takes a label instead of a string (Breaking change)Added
fullargument to bibliography function to print the full bibliography even if not all works were citedBibliography entries can now contain Typst equations (wrapped in
[$..$]just like in markup), this works both for.yamland.bibbibliographiesThe hayagriva YAML format was improved. See its changelog for more details. (Breaking change)
A few bugs with
.bibfile parsing were fixedRemoved
bracketsargument ofcitefunction in favor ofform
Visualization
Gradients and colors (thanks to https://github.com/Dherse)
Added support for gradients on shapes and text
Supports linear, radial, and conic gradients
Added support for defining colors in more color spaces, including Oklab, Linear RGB(A), HSL, and HSV
Added
saturate,desaturate, androtatefunctions on colorsAdded
color.mapmodule with predefined color maps that can be used with gradientsRename
kindfunction on colors tospaceRemoved
to-rgba,to-cmyk, andto-lumafunctions in favor of a newcomponentsfunction
Improved rendering of rectangles with corner radius and varying stroke widths
Added support for properly clipping boxes and blocks with a border radius
Added
backgroundparameter tooverline,underline, andstrikefunctionsFixed inaccurate color embedding in PDFs
Fixed ICC profile handling for images embedded in PDFs
Text and Layout
Added support for automatically adding proper spacing between CJK and Latin text (enabled by default)
Added support for automatic adjustment of more CJK punctuation
Added
quoteelement for inserting inline and block quotes with optional attributionsAdded
raw.lineelement for customizing the display of individual lines of raw text, e.g. to add line numbers while keeping proper syntax highlightingAdded support for per-side inset customization to table function
Added Hungarian and Romanian translations
Added support for Czech hyphenation
Added support for setting custom smart quotes
The default figure separator now reacts to the currently set language and region
Improved line breaking of links / URLs (especially helpful for bibliographies with many URLs)
Improved handling of consecutive hyphens in justification algorithm
Fixed interaction of justification and hanging indent
Fixed a bug with line breaking of short lines without spaces when justification is enabled
Fixed font fallback for hyphen generated by hyphenation
Fixed handling of word joiner and other no-break characters during hyphenation
Fixed crash when hyphenating after an empty line
Fixed line breaking of composite emoji like 🏳️🌈
Fixed missing text in some SVGs
Fixed font fallback in SVGs
Fixed behavior of
toargument onpagebreakfunctionFixed
{set align(..)}for equationsFixed spacing around placed elements
Fixed coalescing of
aboveandbelowspacing if given in em units and the font sizes differFixed handling of
extentparameter ofunderline,overline, andstrikefunctionsFixed crash for floating placed elements with no specified vertical alignment
Partially fixed a bug with citations in footnotes
Math
Added
gapargument forvec,mat, andcasesfunctionAdded
sizeargument forabs,norm,floor,ceil, androundfunctionsAdded
reverseparameter to cases functionAdded support for multinomial coefficients to
binomfunctionRemoved
rotationargument oncancelfunction in favor of a new and more flexibleangleargument (Breaking change)Added
wideconstant, which inserts twice the spacing ofquadAdded
cschandsechoperators↼,⇀,↔, and⟷can now be used as accentsAdded
integral.dash,integral.dash.double, andintegral.slashsymbolsAdded support for specifying negative indices for augmentation lines to position the line from the back
Fixed default color of matrix augmentation lines
Fixed attachment of primes to inline expressions
Math content now respects the text baseline setting
Performance
Fixed a bug related to show rules in templates which would effectively disable incremental compilation in affected documents
Micro-optimized code in several hot paths, which brings substantial performance gains, in particular in incremental compilations
Improved incremental parsing, which affects the whole incremental compilation pipeline
Added support for incremental parsing in the CLI
Added support for incremental SVG encoding during PDF export, which greatly improves export performance for documents with many SVG
Tooling and Diagnostics
Improved autocompletion for variables that are in-scope
Added autocompletion for package imports
Added autocompletion for labels
Added tooltip that shows which variables a function captures (when hovering over the equals sign or arrow of the function)
Diagnostics are now deduplicated
Improved diagnostics when trying to apply unary
+or-to types that only support binary+and-Error messages now state which label or citation key isn't present in the document or its bibliography
Fixed a bug where function argument parsing errors were shadowed by function execution errors (e.g. when trying to call
array.sortedand passing the key function as a positional argument instead of a named one).
Export
Added support for configuring the document's creation
date. If thedateis set to{auto}(the default), the PDF's creation date will be set to the current date and time.Added support for configuring document
keywordsGenerated PDFs now contain PDF document IDs
The PDF creator tool metadata now includes the Typst version
Web app
Added version picker to pin a project to an older compiler version (with support for Typst 0.6.0+)
Fixed desyncs between editor and compiler and improved overall stability
The app now continues to highlight the document when typing while the document is being compiled
Command line interface
Added support for discovering fonts through fontconfig
Now clears the screen instead of resetting the terminal
Now automatically picks correct file extension for selected output format
Now only regenerates images for changed pages when using
typst watchwith PNG or SVG export
Miscellaneous Improvements
Added
versiontype andsys.versionconstant specifying the current compiler version. Can be used to gracefully support multiple versions.The U+2212 MINUS SIGN is now used when displaying a numeric value, in the
reprof any numeric value and to replace a normal hyphen in text mode when before a digit. This improves, in particular, how negative integer values are displayed in math mode.Added support for specifying a default value instead of failing for
removefunction in array and dictionarySimplified Page Setup Guide examples
Switched the documentation from using the word "hashtag" to the word "hash" where appropriate
Added support for
array.zipwithout any further argumentsFixed crash when a plugin tried to read out of bounds memory
Fixed crashes when handling infinite lengths
Fixed introspection (mostly bibliography) bugs due to weak page break close to the end of the document
Development
Extracted
typst::ideinto separatetypst_idecrateRemoved a few remaining
'staticbounds on&dyn WorldRemoved unnecessary dependency, which reduces the binary size
Fixed compilation of
typstby itself (withouttypst-library)Fixed warnings with Nix flake when using
lib.getExe