docs/changelog/0.12.0.md
place.scope] and [figure.scope]. Two-column documents should now prefer
{set page(columns: 2)} over {show: column.with(2)} (see the
Page Setup Guide).par.spacing] property for configuring paragraph spacing. This should
now be used instead of {show par: set block(spacing: ..)}
(Breaking change)stroke) rather
than just spacing (Breaking change)block.sticky] property which prevents a page break after a blockplace.flush] function which forces all floating figures to be placed
before any further contentskew] function{auto} option for [page.header] and [page.footer] which results in
an automatic header/footer based on the numbering (which was previously
inaccessible after a change)gap and justify parameters to [repeat] functionwidth and height parameters to the [measure] function to define
the space in which the content should be measured. Especially useful in
combination with [layout].block, image, rect, square, ellipse, or circle can
now be specified in fractional unitsscale] function now supports absolute lengths for x, y, factor.
This way an element of unknown size can be scaled to a fixed size.block.above and block.below can now be retrieved in context
expressions.{set block(spacing: x)} behaving differently from
{set block(above: x, below: x)}rotate] and [scale] with {reflow: true}{align(horizon)} and {v(1fr)}pagebreak.to]{100%}text.costs] parameter for tweaking various parameters that affect the
choices of the layout engine during text layouttypm highlighting mode for math in raw blockssmallcaps] function is now an element function and can thereby be used
in show(-set) rules.raw.theme] parameter can now be set to {none} to disable highlighting
even in the presence of a language tag, and to {auto} to reset to the
default#""text.historical-ligatures] not working correctly{show math.equation: set block(breakable: true)}.stretch function for manually or automatically
stretching characters like arrows or parentheses horizontally or vertically[#let a0 = $a_0$; $a0^1$]floor and ceil functions in math are now callable symbols, such that
[$ floor(x) = lr(floor.l x floor.r) $]mat.delim, vec.delim, and
cases.delim parameters now allow any character that is
considered a delimiter or "fence" (e.g. |) by Unicode. The {delim: "||"}
notation is not supported anymore and should be replaced by
{delim: bar.double} (Minor breaking change)vec.align and mat.align
parametersunderparen, overparen,
undershell, and overshell~ shorthand for tilde.op in math mode (Minor breaking change)metadata] in mathlr.size not affecting characters enclosed in
mid in some cases{"bounds"}here().position() when [place] was used in a
context expressionspacing property of lists,
enumerations, and term lists is now also
respected for tight listsquote] element is now locatable (can be used in queries)depth instead of level so that its level
can still be configured via a show-set rulehanging-indent parameter to heading
function to tweak the appearance of multi-line headings and improved default
appearance of multi-line headings{set document} and {set page}{show figure: set align(..)}. Since the default figure alignment is
now a show-set rule, it is not revoked by {show figure: it => it.body}
anymore. (Minor breaking change)publisher field can now accept a dictionary with a
location key. The top-level location key is now primarily intended for
event and item locations.director and catch-all editor types to BibLaTeX parsingurl fieldfill-rule parameter to path and polygon
functions{import "file.typ": module.item}{import "file.typ": (a, b, c)}.
With those, the import list can break over multiple lines.decimal] number type for highly precise arithmetic on
numbers in base 10, as needed for financestd module for accessing standard library definitions even when a
variable with the same name shadows/overwrites itarray.to-dict], [array.reduce], [array.windows] methodsexact argument to [array.zip]arguments.at] methodint.from-bytes], [int.to-bytes], [float.from-bytes], and
[float.to-bytes]digits parameter of
[calc.round] (the behaviour existed before but was subtly broken)int] to [float] will now error instead of saturating if
the float is too large (Minor breaking change)float.nan and float.inf, removed calc.nan
(Minor breaking change)floor and
ceil.repr] of relative values, sequences, infinities, NaN,
{type(none)} and {type(auto)}calc.round] on integers when a non-zero value is
provided for digits{"} in a text show rule now matches smart quotes{set page} not working directly after a counter/state update{page(..)[..]} call can now be
properly retrieved in context expressions--pdf-standard a-2b in the CLI and via the UI in File > Export as > PDF in the web app.page.fill] to {none} will now lead to transparent pages instead
of white ones in PNG and SVG. The new default of {auto} means transparent
for PDF and white for PNG and SVG.data-typst-label attribute on groups resulting
from labelled boxes and blocks--pages option to select specific page ranges to export--package-path and --package-cache-path as well as
TYPST_PACKAGE_PATH and TYPST_PACKAGE_CACHE_PATH environment variables for
configuring where packages are loaded from and cached in, respectively--ignore-system-fonts flag to disable system fonts fully for better
reproducibility--make-deps argument for outputting the dependencies of the current
compilation as a Makefile--pretty option to typst query, with the default now being to minify
(only applies to JSON format)--backup-path to typst update to configure where the previous
version is backed uptypst for the first time- as the output
filename (for PDF or single-page image export)--cert or TYPST_CERT could not be loadedSOURCE_DATE_EPOCH environment variable for better
reproducibility{t} (total pages), {p}
(current page), and {0p} (zero-padded current page, same as current {n})
in the output path--open flagtypst not working in zshlang
parametertypst c file.pdf by accident)*/) is encountered. after the end of an inline code expressionsparallelogram, original, image, crossmark, rest, natural,
flat, sharp, tiny, miny, copyleft, trademark, emoji.beet,
emoji.fingerprint, emoji.harp, emoji.shovel, emoji.splatter,
emoji.tree.leafless,club.stroked, diamond.stroked, heart.stroked,
spade.stroked, gt.neq, lt.neq, checkmark.heavy, paren.double,
brace.double, shell.double, arrow.turn, plus.double, plus.triple,
infinity.bar, infinity.incomplete, infinity.tie, multimap.double,
ballot.check, ballot.check.heavy, emptyset.bar, emptyset.circle,
emptyset.arrow.l, emptyset.arrow.r, parallel.struck, parallel.eq,
parallel.equiv, parallel.slanted, parallel.tilde, angle.l.curly,
angle.l.dot, angle.r.curly, angle.r.dot, angle.oblique, angle.s,
em.two, em.threeturtle to shell, notes to note, ballot.x to ballot.cross,
succ.eq to succ.curly.eq, prec.eq to prec.curly.eq, servicemark to
trademark.service, emoji.face.tired to emoji.face.distress
(Breaking change)prec.eq, prec.neq, succ.eq, succ.neq, triangle
from ▷ to △, emoji.face.tired (Breaking change)lt.curly in favor of prec, gt.curly in favor of succ
(Breaking change)counter.display] without an established contextcounter.final] with a locationstate.final] with a locationstate.displayquery] with a location as the second argumentlocate] with a callback functionmeasure] with stylesstyletypst-kit crate which provides useful APIs for World implementorstypst-idetypst-syntaxWorld implementations must
satisfy Send and SyncWorld::main to allow for the scenario where the main
file could not be loadedTracer in favor of Warned<T> and typst::trace functionxz2 dependency used by the self-updater is now statically linkedENTRYPOINT directive