Text and Layout
Added support for floating figures through the
placementargument on the figure functionAdded support for arbitrary floating content through the
floatargument on the place functionAdded support for loading
.sublime-syntaxfiles as highlighting syntaxes for raw blocksAdded support for loading
.tmThemefiles as highlighting themes for raw blocksAdded bounds option to
top-edgeandbottom-edgearguments of text function for tight bounding boxesRemoved nonsensical top- and bottom-edge options, e.g. ascender for the bottom edge (Breaking change)
Added
scriptargument to text functionAdded
alternativeargument to smart quote functionAdded basic i18n for Japanese
Added hyphenation support for
nbandnnlanguage codes in addition tonoFixed positioning of placed elements in containers
Fixed overflowing containers due to optimized line breaks
Export
Greatly improved export of SVG images to PDF. Many thanks to https://github.com/LaurenzV for their work on this.
Added support for the alpha channel of RGBA colors in PDF export
Fixed a bug with PPI (pixels per inch) for PNG export
Math
Improved layout of primes (e.g. in
[$a'_1$])Improved display of multi-primes (e.g. in
[$a''$])Improved layout of roots
Changed relations to show attachments as limits by default (e.g. in
[$a ->^x b$])Large operators and delimiters are now always vertically centered
Boxes in equations now sit on the baseline instead of being vertically centered by default. Notably, this does not affect blocks because they are not inline elements.
Added support for weak spacing
Added support for OpenType character variants
Added support for customizing the math class of content
Fixed spacing around
.,\/, and...Fixed spacing between closing delimiters and large operators
Fixed a bug with math font weight selection
Symbols and Operators (Breaking changes)
Added
id,im, andtrtext operatorsRenamed
identtoequivwith aliaseq.tripleand removedident.strictin favor ofeq.quadRenamed
ast.sqtoast.squareandintegral.sqtointegral.squareRenamed
.eqqmodifier to.equiv(and.neqqto.nequiv) fortilde,gt,lt,prec, andsuccAdded
emptysetas alias fornothingAdded
lt.curlyandgt.curlyas aliases forprecandsuccAdded
aleph,beth, andgimmelas alias foralef,bet, andgimel
Scripting
Fields
Added
absandemfield to lengthsAdded
ratioandlengthfield to relative lengthsAdded
xandyfield to 2d alignmentsAdded
paint,thickness,cap,join,dash, andmiter-limitfield to strokes
Accessor and utility methods
Added
dedupmethod to arraysAdded
pt,mm,cm, andinchesmethod to lengthsAdded
degandradmethod to anglesAdded
kind,hex,rgba,cmyk, andlumamethod to colorsAdded
axis,start,end, andinvmethod to directionsAdded
axisandinvmethod to alignmentsAdded
invmethod to 2d alignmentsAdded
startargument toenumeratemethod on arrays
Added
color.mixfunctionAdded
modeandscopearguments toevalfunctionAdded
bytestype for holding large byte buffersAdded
encodingargument to read function to read a file as bytes instead of a stringAdded
image.decodefunction for decoding an image directly from a string or bytesAdded
bytesfunction for converting a string or an array of integers to bytesAdded
arrayfunction for converting bytes to an array of integersAdded support for converting bytes to a string with the
strfunction
Tooling and Diagnostics
Added support for compiler warnings
Added warning when compilation does not converge within five attempts due to intense use of introspection features
Added warnings for empty emphasis (
__and**)Improved error message for invalid field assignments
Improved error message after single
#Improved error message when a keyword is used where an identifier is expected
Fixed parameter autocompletion for functions that are in modules
Import autocompletion now only shows the latest package version until a colon is typed
Fixed autocompletion for dictionary key containing a space
Fixed autocompletion for
forloops
Command line interface
Added
typst querysubcommand to execute a query on the command lineThe
--rootand--font-patharguments cannot appear in front of the command anymore (Breaking change)Local and cached packages are now stored in directories of the form
[{namespace}/{name}/{version}]instead of[{namespace}/{name}-{version}](Breaking change)Now prioritizes explicitly given fonts (via
--font-path) over system and embedded fonts when both existFixed
typst watchnot working with some text editorsFixed displayed compilation time (now includes export)
Miscellaneous Improvements
Added
bookmarkedargument to heading to control whether a heading becomes part of the PDF outlineAdded
caption-posargument to control the position of a figure's captionAdded
metadatafunction for exposing an arbitrary value to the introspection systemFixed that a
statewas identified by the pair(key, init)instead of just itskeyImproved indent logic of enumerations. Instead of requiring at least as much indent as the end of the marker, they now require only one more space indent than the start of the marker. As a result, even long markers like
12.work with just 2 spaces of indent.Fixed bug with indent logic of
rawblocksFixed a parsing bug with dictionaries
Development
Extracted parser and syntax tree into
typst-syntaxcrateThe
World::todayimplementation of Typst dependents may need fixing if they have the same bug that the CLI world had