Version 0.8.0 (September 13, 2023)
Scripting
- Plugins (thanks to @astrale-sharp and @arnaudgolfouse)
- 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
andstr
- Type checks are now of the form
type(10) == int
instead of the oldtype(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 tostr.len("hello")
- Added support for
import
renaming withas
- 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 themode
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
becomesto-rgba
,cmyk
becomesto-cmyk
, andluma
becomesto-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 alongsidetab-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 likeabs
ornorm
or an explicitlr
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 totypst query
Miscellaneous Improvements
- Added page setup guide
- Added
figure.caption
function that can be used for simpler figure customization (Breaking change becauseit.caption
now renders the full caption with supplement in figure show rules and manual outlines) - Moved
caption-pos
argument tofigure.caption
function and renamed it toposition
(Breaking change) - Added
separator
argument tofigure.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
andFileId
more type-safe so that all error conditions must be handled byWorld
implementors