Version 0.7.0 (August 7, 2023)
Text and Layout
- Added support for floating figures through the
placementargument on the figure function - Added support for arbitrary floating content through the
floatargument on the place function - Added support for loading 
.sublime-syntaxfiles as highlighting syntaxes for raw blocks - Added support for loading 
.tmThemefiles as highlighting themes for raw blocks - Added bounds option to 
top-edgeandbottom-edgearguments of text function for tight bounding boxes - Removed nonsensical top- and bottom-edge options, e.g. ascender for the bottom edge (Breaking change)
 - Added 
scriptargument to text function - Added 
alternativeargument to smart quote function - Added basic i18n for Japanese
 - Added hyphenation support for 
nbandnnlanguage codes in addition tono - Fixed 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 @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 operators - Renamed 
identtoequivwith aliaseq.tripleand removedident.strictin favor ofeq.quad - Renamed 
ast.sqtoast.squareandintegral.sqtointegral.square - Renamed 
.eqqmodifier to.equiv(and.neqqto.nequiv) fortilde,gt,lt,prec, andsucc - Added 
emptysetas alias fornothing - Added 
lt.curlyandgt.curlyas aliases forprecandsucc - Added 
aleph,beth, andgimmelas alias foralef,bet, andgimel 
 - Added 
 
Scripting
- Fields
- Added 
absandemfield to lengths - Added 
ratioandlengthfield to relative lengths - Added 
xandyfield to 2d alignments - Added 
paint,thickness,cap,join,dash, andmiter-limitfield to strokes 
 - Added 
 - Accessor and utility methods
- Added 
dedupmethod to arrays - Added 
pt,mm,cm, andinchesmethod to lengths - Added 
degandradmethod to angles - Added 
kind,hex,rgba,cmyk, andlumamethod to colors - Added 
axis,start,end, andinvmethod to directions - Added 
axisandinvmethod to alignments - Added 
invmethod to 2d alignments - Added 
startargument toenumeratemethod on arrays 
 - Added 
 - Added 
color.mixfunction - Added 
modeandscopearguments toevalfunction - Added 
bytestype for holding large byte buffers- Added 
encodingargument to read function to read a file as bytes instead of a string - Added 
image.decodefunction for decoding an image directly from a string or bytes - Added 
bytesfunction for converting a string or an array of integers to bytes - Added 
arrayfunction for converting bytes to an array of integers - Added support for converting bytes to a string with the 
strfunction 
 - Added 
 
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 line - The 
--rootand--font-pathsarguments 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-paths) over system and embedded fonts when both exist - Fixed 
typst watchnot working with some text editors - Fixed displayed compilation time (now includes export)
 
Miscellaneous Improvements
- Added 
bookmarkedargument to heading to control whether a heading becomes part of the PDF outline - Added 
caption-posargument to control the position of a figure's caption - Added 
metadatafunction for exposing an arbitrary value to the introspection system - Fixed that a 
statewas identified by the pair(key, init)instead of just itskey - Improved 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 
rawblocks - Fixed a parsing bug with dictionaries
 
Development
- Extracted parser and syntax tree into 
typst-syntaxcrate - The 
World::todayimplementation of Typst dependents may need fixing if they have the same bug that the CLI world had