{"route":"/en-US-v0.13.1/changelog/0.12.0/","title":"0.12.0","description":"Changes in Typst 0.12.0","part":null,"outline":[{"id":"highlights","name":"Highlights","children":[]},{"id":"layout","name":"Layout","children":[]},{"id":"text","name":"Text","children":[]},{"id":"math","name":"Math","children":[]},{"id":"introspection","name":"Introspection","children":[]},{"id":"model","name":"Model","children":[]},{"id":"bibliography","name":"Bibliography","children":[]},{"id":"visualization","name":"Visualization","children":[]},{"id":"syntax","name":"Syntax","children":[]},{"id":"scripting","name":"Scripting","children":[]},{"id":"styling","name":"Styling","children":[]},{"id":"export","name":"Export","children":[]},{"id":"performance","name":"Performance","children":[]},{"id":"command-line-interface","name":"Command Line Interface","children":[]},{"id":"tooling-and-diagnostics","name":"Tooling and Diagnostics","children":[]},{"id":"symbols","name":"Symbols","children":[]},{"id":"deprecations","name":"Deprecations","children":[]},{"id":"development","name":"Development","children":[]},{"id":"contributors","name":"Contributors","children":[]}],"body":{"kind":"html","content":"<h1>Version 0.12.0 (October 18, 2024)</h1>\n<h2 id=\"highlights\">Highlights</h2>\n<ul>\n<li>Added support for multi-column floating <a href=\"/en-US-v0.13.1/reference/layout/place/#parameters-scope\">placement</a> and\n<a href=\"/en-US-v0.13.1/reference/model/figure/#parameters-scope\">figures</a></li>\n<li>Added support for automatic <a href=\"/en-US-v0.13.1/reference/model/par/#definitions-line\">line numbering</a> (often used in\nacademic papers)</li>\n<li>Typst's layout engine is now multithreaded. Typical speedups are 2-3x for\nlarger documents. The multithreading operates on page break boundaries, so\nexplicit page breaks are necessary for it to kick in.</li>\n<li>Paragraph justification was optimized with a new two-pass algorithm. Speedups\nare larger for shorter paragraphs and go up to 6x.</li>\n<li>Highly reduced PDF file sizes due to better font subsetting (thanks to\n<a href=\"https://github.com/LaurenzV\">@LaurenzV</a>)</li>\n<li>Emoji are now exported properly in PDF</li>\n<li>Added initial support for PDF/A. For now, only the PDF/A-2b profile is\nsupported, but more is planned for the future.</li>\n<li>Added various options for configuring the CLI's environment (fonts, package\npaths, etc.)</li>\n<li>Text show rules now match across multiple text elements</li>\n<li>Block-level equations can now optionally break over multiple pages</li>\n<li>Fixed a bug where some fonts would not print correctly on professional\nprinters</li>\n<li>Fixed a long-standing bug which could cause headings to be orphaned at the\nbottom of the page</li>\n</ul>\n<h2 id=\"layout\">Layout</h2>\n<ul>\n<li>Added support for multi-column floating placement and figures via\n<a href=\"/en-US-v0.13.1/reference/layout/place/#parameters-scope\" title=\"`place.scope`\"><code>place.scope</code></a> and <a href=\"/en-US-v0.13.1/reference/model/figure/#parameters-scope\" title=\"`figure.scope`\"><code>figure.scope</code></a>.  Two-column documents should now prefer\n<code><span class=\"typ-key\">set</span> <span class=\"typ-func\">page</span><span class=\"typ-punct\">(</span>columns<span class=\"typ-punct\">:</span> <span class=\"typ-num\">2</span><span class=\"typ-punct\">)</span></code> over <code><span class=\"typ-key\">show</span><span class=\"typ-punct\">:</span> column<span class=\"typ-punct\">.</span><span class=\"typ-func\">with</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">2</span><span class=\"typ-punct\">)</span></code> (see the\n<a href=\"/en-US-v0.13.1/guides/page-setup-guide/#columns\">page setup guide</a>).</li>\n<li>Added support for automatic <a href=\"/en-US-v0.13.1/reference/model/par/#definitions-line\">line numbering</a> (often used in\nacademic papers)</li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/model/par/#parameters-spacing\" title=\"`par.spacing`\"><code>par.spacing</code></a> property for configuring paragraph spacing. This should\nnow be used instead of <code><span class=\"typ-key\">show</span> <span class=\"typ-func\">par</span><span class=\"typ-punct\">:</span> <span class=\"typ-key\">set</span> <span class=\"typ-func\">block</span><span class=\"typ-punct\">(</span>spacing<span class=\"typ-punct\">:</span> <span class=\"typ-op\">..</span><span class=\"typ-punct\">)</span></code>\n<strong>(Breaking change)</strong></li>\n<li>Block-level elements like lists, grids, and stacks now show themselves as\nblocks and are thus affected by all block properties (e.g. <code>stroke</code>) rather\nthan just <code>spacing</code> <strong>(Breaking change)</strong></li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/layout/block/#parameters-sticky\" title=\"`block.sticky`\"><code>block.sticky</code></a> property which prevents a page break after a block</li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/layout/place/#definitions-flush\" title=\"`place.flush`\"><code>place.flush</code></a> function which forces all floating figures to be placed\nbefore any further content</li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/layout/skew/\" title=\"`skew`\"><code>skew</code></a> function</li>\n<li>Added <code><span class=\"typ-key\">auto</span></code> option for <a href=\"/en-US-v0.13.1/reference/layout/page/#parameters-header\" title=\"`page.header`\"><code>page.header</code></a> and <a href=\"/en-US-v0.13.1/reference/layout/page/#parameters-footer\" title=\"`page.footer`\"><code>page.footer</code></a> which results in\nan automatic header/footer based on the numbering (which was previously\ninaccessible after a change)</li>\n<li>Added <code>gap</code> and <code>justify</code> parameters to <a href=\"/en-US-v0.13.1/reference/layout/repeat/\" title=\"`repeat`\"><code>repeat</code></a> function</li>\n<li>Added <code>width</code> and <code>height</code> parameters to the <a href=\"/en-US-v0.13.1/reference/layout/measure/\" title=\"`measure`\"><code>measure</code></a> function to define\nthe space in which the content should be measured. Especially useful in\ncombination with <a href=\"/en-US-v0.13.1/reference/layout/layout/\" title=\"`layout`\"><code>layout</code></a>.</li>\n<li>The height of a <code>block</code>, <code>image</code>, <code>rect</code>, <code>square</code>, <code>ellipse</code>, or <code>circle</code> can\nnow be specified in <a href=\"/en-US-v0.13.1/reference/layout/fraction/\">fractional units</a></li>\n<li>The <a href=\"/en-US-v0.13.1/reference/layout/scale/\" title=\"`scale`\"><code>scale</code></a> function now supports absolute lengths for <code>x</code>, <code>y</code>, <code>factor</code>.\nThis way an element of unknown size can be scaled to a fixed size.</li>\n<li>The values of <code>block.above</code> and <code>block.below</code> can now be retrieved in context\nexpressions.</li>\n<li>Increased accuracy of conversions between absolute units (pt, mm, cm, in)</li>\n<li>Fixed a bug which could cause headings to be orphaned at the bottom of the\npage</li>\n<li>Fixed footnotes within breakable blocks appearing on the page where the\nbreakable block ends instead of at the page where the footnote marker is</li>\n<li>Fixed numbering of nested footnotes and footnotes in floats</li>\n<li>Fixed empty pages appearing when a <a href=\"/en-US-v0.13.1/reference/context/\" title=\"context\">context</a> expression wraps whole pages</li>\n<li>Fixed <code><span class=\"typ-key\">set</span> <span class=\"typ-func\">block</span><span class=\"typ-punct\">(</span>spacing<span class=\"typ-punct\">:</span> x<span class=\"typ-punct\">)</span></code> behaving differently from\n<code><span class=\"typ-key\">set</span> <span class=\"typ-func\">block</span><span class=\"typ-punct\">(</span>above<span class=\"typ-punct\">:</span> x<span class=\"typ-punct\">,</span> below<span class=\"typ-punct\">:</span> x<span class=\"typ-punct\">)</span></code></li>\n<li>Fixed behavior of <a href=\"/en-US-v0.13.1/reference/layout/rotate/\" title=\"`rotate`\"><code>rotate</code></a> and <a href=\"/en-US-v0.13.1/reference/layout/scale/\" title=\"`scale`\"><code>scale</code></a> with <code>reflow: <span class=\"typ-key\">true</span></code></li>\n<li>Fixed interaction of <code><span class=\"typ-func\">align</span><span class=\"typ-punct\">(</span>horizon<span class=\"typ-punct\">)</span></code> and <code><span class=\"typ-func\">v</span><span class=\"typ-punct\">(</span><span class=\"typ-num\">1fr</span><span class=\"typ-punct\">)</span></code></li>\n<li>Fixed various bugs where floating placement would yield overlapping results</li>\n<li>Fixed a bug where widow/orphan prevention would unnecessarily move text into\nthe next column</li>\n<li>Fixed <a href=\"/en-US-v0.13.1/reference/layout/h/#parameters-weak\">weak spacing</a> not being trimmed at the start and end of lines\nin a paragraph (only at the start and end of paragraphs)</li>\n<li>Fixed interaction of weak page break and <a href=\"/en-US-v0.13.1/reference/layout/pagebreak/#parameters-to\" title=\"`pagebreak.to`\"><code>pagebreak.to</code></a></li>\n<li>Fixed compilation output of a single weak page break</li>\n<li>Fixed crash when <a href=\"/en-US-v0.13.1/reference/layout/pad/\">padding</a> by <code><span class=\"typ-num\">100%</span></code></li>\n</ul>\n<h2 id=\"text\">Text</h2>\n<ul>\n<li>Tuned hyphenation: It is less eager by default and hyphenations close to the\nedges of words are now discouraged more strongly\n<strong>(May lead to larger layout reflows)</strong></li>\n<li>New default font: Libertinus Serif. This is the maintained successor to the\nold default font Linux Libertine. <strong>(May lead to smaller reflows)</strong></li>\n<li>Setting the font to an unavailable family will now result in a warning</li>\n<li>Implemented a new smart quote algorithm, fixing various bugs where smart\nquotes weren't all that smart</li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/text/text/#parameters-costs\" title=\"`text.costs`\"><code>text.costs</code></a> parameter for tweaking various parameters that affect the\nchoices of the layout engine during text layout</li>\n<li>Added <code>typm</code> highlighting mode for math in <a href=\"/en-US-v0.13.1/reference/text/raw/#parameters-lang\">raw blocks</a></li>\n<li>Added basic i18n for Galician, Catalan, Latin, Icelandic, Hebrew</li>\n<li>Implemented hyphenation duplication for Czech, Croatian, Lower Sorbian,\nPolish, Portuguese, Slovak, and Spanish.</li>\n<li>The <a href=\"/en-US-v0.13.1/reference/text/smallcaps/\" title=\"`smallcaps`\"><code>smallcaps</code></a> function is now an element function and can thereby be used\nin show(-set) rules.</li>\n<li>The <a href=\"/en-US-v0.13.1/reference/text/raw/#parameters-theme\" title=\"`raw.theme`\"><code>raw.theme</code></a> parameter can now be set to <code><span class=\"typ-key\">none</span></code> to disable highlighting\neven in the presence of a language tag, and to <code><span class=\"typ-key\">auto</span></code> to reset to the\ndefault</li>\n<li>Multiple <a href=\"/en-US-v0.13.1/reference/text/text/#parameters-stylistic-set\">stylistic sets</a> can now be enabled at once</li>\n<li>Fixed the Chinese translation for &quot;Equation&quot;</li>\n<li>Fixed that hyphenation could occur outside of words</li>\n<li>Fixed incorrect layout of bidirectional text in edge cases</li>\n<li>Fixed layout of paragraphs with explicit trailing whitespace</li>\n<li>Fixed bugs related to empty paragraphs created via <code>#&quot;&quot;</code></li>\n<li>Fixed accidental trailing spaces for line breaks immediately preceding an\ninline equation</li>\n<li>Fixed <a href=\"/en-US-v0.13.1/reference/text/text/#parameters-historical-ligatures\" title=\"`text.historical-ligatures`\"><code>text.historical-ligatures</code></a> not working correctly</li>\n<li>Fixed accidental repetition of Thai characters around line breaks in some\ncircumstances</li>\n<li>Fixed <a href=\"/en-US-v0.13.1/reference/text/smartquote/\">smart quotes</a> for Swiss French</li>\n<li>New font metadata exceptions for Archivo, Kaiti SC, and Kaiti TC</li>\n<li>Updated bundled New Computer Modern fonts to version 6.0</li>\n</ul>\n<h2 id=\"math\">Math</h2>\n<ul>\n<li>Block-level equations can now break over multiple pages if enabled via\n<code><span class=\"typ-key\">show</span> math<span class=\"typ-punct\">.</span><span class=\"typ-func\">equation</span><span class=\"typ-punct\">:</span> <span class=\"typ-key\">set</span> <span class=\"typ-func\">block</span><span class=\"typ-punct\">(</span>breakable<span class=\"typ-punct\">:</span> <span class=\"typ-key\">true</span><span class=\"typ-punct\">)</span></code>.</li>\n<li>Matrix and vector sizing is now more consistent across different cell contents</li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/math/stretch/\"><code>stretch</code></a> function for manually or automatically\nstretching characters like arrows or parentheses horizontally or vertically</li>\n<li>Improved layout of attachments on parenthesized as well as under- or overlined\nexpressions</li>\n<li>Improved layout of nested attachments resulting from code like\n<code><span class=\"typ-key\">#</span><span class=\"typ-key\">let</span> a0 <span class=\"typ-op\">=</span> <span class=\"typ-math-delim\">$</span>a<span class=\"typ-math-op\">_</span>0<span class=\"typ-math-delim\">$</span><span class=\"typ-punct\">;</span> <span class=\"typ-math-delim\">$</span><span class=\"typ-pol\">a0</span><span class=\"typ-math-op\">^</span>1<span class=\"typ-math-delim\">$</span></code></li>\n<li>Improved layout of primes close to superscripts</li>\n<li>Improved layout of fractions</li>\n<li>Typst now makes use of math-specific height-dependent kerning information in\nsome fonts for better attachment layout</li>\n<li>The <code>floor</code> and <code>ceil</code> functions in math are now callable symbols, such that\n<code><span class=\"typ-math-delim\">$</span> <span class=\"typ-func\">floor</span><span class=\"typ-punct\">(</span>x<span class=\"typ-punct\">)</span> = <span class=\"typ-func\">lr</span><span class=\"typ-punct\">(</span><span class=\"typ-pol\">floor</span><span class=\"typ-punct\">.</span><span class=\"typ-pol\">l</span> x <span class=\"typ-pol\">floor</span><span class=\"typ-punct\">.</span><span class=\"typ-pol\">r</span><span class=\"typ-punct\">)</span> <span class=\"typ-math-delim\">$</span></code></li>\n<li>The <a href=\"/en-US-v0.13.1/reference/math/mat/#parameters-delim\"><code>mat.delim</code></a>, <a href=\"/en-US-v0.13.1/reference/math/vec/#parameters-delim\"><code>vec.delim</code></a>, and\n<a href=\"/en-US-v0.13.1/reference/math/cases/#parameters-delim\"><code>cases.delim</code></a> parameters now allow any character that is\nconsidered a delimiter or &quot;fence&quot; (e.g. |) by Unicode. The <code>delim: <span class=\"typ-str\">&quot;||&quot;</span></code>\nnotation is <em>not</em> supported anymore and should be replaced by\n<code>delim: bar<span class=\"typ-punct\">.</span>double</code> <strong>(Minor breaking change)</strong></li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/math/vec/#parameters-align\"><code>vec.align</code></a> and <a href=\"/en-US-v0.13.1/reference/math/mat/#parameters-align\"><code>mat.align</code></a>\nparameters</li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/math/underover/#functions-underparen\"><code>underparen</code></a>, <a href=\"/en-US-v0.13.1/reference/math/underover/#functions-overparen\"><code>overparen</code></a>,\n<a href=\"/en-US-v0.13.1/reference/math/underover/#functions-undershell\"><code>undershell</code></a>, and <a href=\"/en-US-v0.13.1/reference/math/underover/#functions-overshell\"><code>overshell</code></a></li>\n<li>Added <code>~</code> shorthand for <code>tilde.op</code> in math mode <strong>(Minor breaking change)</strong></li>\n<li>Fixed baseline alignment of equation numbers</li>\n<li>Fixed positioning of corner brackets (⌜, ⌝, ⌞, ⌟)</li>\n<li>Fixed baseline of large roots</li>\n<li>Fixed multiple minor layout bugs with attachments</li>\n<li>Fixed that alignment points could affect line height in math</li>\n<li>Fixed that spaces could show up between text and invisible elements like\n<a href=\"/en-US-v0.13.1/reference/introspection/metadata/\" title=\"`metadata`\"><code>metadata</code></a> in math</li>\n<li>Fixed a crash with recursive show rules in math</li>\n<li>Fixed <a href=\"/en-US-v0.13.1/reference/math/lr/#functions-lr-size\"><code>lr.size</code></a> not affecting characters enclosed in\n<a href=\"/en-US-v0.13.1/reference/math/lr/#functions-mid\"><code>mid</code></a> in some cases</li>\n<li>Fixed resolving of em units in sub- and superscripts</li>\n<li>Fixed bounding box of inline equations when a <a href=\"/en-US-v0.13.1/reference/text/text/#parameters-top-edge\">text edge</a> is\nset to <code><span class=\"typ-str\">&quot;bounds&quot;</span></code></li>\n</ul>\n<h2 id=\"introspection\">Introspection</h2>\n<ul>\n<li>Implemented a new system by which Typst tracks where elements end up on the\npages. This may lead to subtly different behavior in introspections.\n<strong>(Breaking change)</strong></li>\n<li>Fixed various bugs with wrong counter behavior in complex layout situations,\nthrough a new, more principled implementation</li>\n<li>Counter updates can now be before the first, in between, and after the last\npage when isolated by weak page breaks. This allows, for instance, updating a\ncounter before the first page header and background.</li>\n<li>Fixed logical ordering of introspections within footnotes and figures</li>\n<li>Fixed incorrect <a href=\"/en-US-v0.13.1/reference/introspection/here/\"><code>here().position()</code></a> when <a href=\"/en-US-v0.13.1/reference/layout/place/\" title=\"`place`\"><code>place</code></a> was used in a\ncontext expression</li>\n<li>Fixed resolved positions of elements (in particular, headings) whose show rule\nemits an invisible element (like a state update) before a page break</li>\n<li>Fixed behavior of stepping a counter at a deeper level than its current state\nhas</li>\n<li>Fixed citation formatting not working in table headers and a few other places</li>\n<li>Displaying the footnote counter will now respect the footnote numbering style</li>\n</ul>\n<h2 id=\"model\">Model</h2>\n<ul>\n<li>Document set rules do not need to be at the very start of the document\nanymore. The only restriction is that they must not occur inside of layout\ncontainers.</li>\n<li>The <code>spacing</code> property of <a href=\"/en-US-v0.13.1/reference/model/list/#parameters-spacing\">lists</a>,\n<a href=\"/en-US-v0.13.1/reference/model/enum/#parameters-spacing\">enumerations</a>, and <a href=\"/en-US-v0.13.1/reference/model/terms/#parameters-spacing\">term lists</a> is now also\nrespected for tight lists</li>\n<li>Tight lists now only attach (with tighter spacing) to preceding paragraphs,\nnot arbitrary blocks</li>\n<li>The <a href=\"/en-US-v0.13.1/reference/model/quote/\" title=\"`quote`\"><code>quote</code></a> element is now locatable (can be used in queries)</li>\n<li>The bibliography heading now uses <code>depth</code> instead of <code>level</code> so that its level\ncan still be configured via a show-set rule</li>\n<li>Added support for more <a href=\"/en-US-v0.13.1/reference/model/numbering/\" title=\"numbering\">numbering</a> formats: Devanagari, Eastern Arabic,\nBengali, and circled numbers</li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/model/heading/#parameters-hanging-indent\"><code>hanging-indent</code></a> parameter to heading\nfunction to tweak the appearance of multi-line headings and improved default\nappearance of multi-line headings</li>\n<li>Improved handling of bidirectional text in outline entry</li>\n<li>Fixed document set rules being ignored in an otherwise empty document</li>\n<li>Fixed document set rules not being usable in context expressions</li>\n<li>Fixed bad interaction between <code><span class=\"typ-key\">set</span> document</code> and <code><span class=\"typ-key\">set</span> page</code></li>\n<li>Fixed <code><span class=\"typ-key\">show</span> <span class=\"typ-func\">figure</span><span class=\"typ-punct\">:</span> <span class=\"typ-key\">set</span> <span class=\"typ-func\">align</span><span class=\"typ-punct\">(</span><span class=\"typ-op\">..</span><span class=\"typ-punct\">)</span></code>. Since the default figure alignment is\nnow a show-set rule, it is not revoked by <code><span class=\"typ-key\">show</span> <span class=\"typ-func\">figure</span><span class=\"typ-punct\">:</span> it <span class=\"typ-op\">=&gt;</span> it<span class=\"typ-punct\">.</span>body</code>\nanymore. <strong>(Minor breaking change)</strong></li>\n<li>Fixed numbering of footnote references</li>\n<li>Fixed spacing after bibliography heading</li>\n</ul>\n<h2 id=\"bibliography\">Bibliography</h2>\n<ul>\n<li>The Hayagriva YAML <code>publisher</code> field can now accept a dictionary with a\n<code>location</code> key. The top-level <code>location</code> key is now primarily intended for\nevent and item locations.</li>\n<li>Multiple page ranges with prefixes and suffixes are now allowed</li>\n<li>Added <code>director</code> and catch-all editor types to BibLaTeX parsing</li>\n<li>Added support for disambiguation to alphanumeric citation style</li>\n<li>The year 0 will now render as 1BC</li>\n<li>Fixes for sorting of bibliography entries</li>\n<li>Fixed pluralization of page range labels</li>\n<li>Fixed sorting of citations by their number</li>\n<li>Fixed how citation number ranges collapse</li>\n<li>Fixed when the short form of a title is used</li>\n<li>Fixed parsing of unbalanced dollars in BibLaTeX <code>url</code> field</li>\n<li>Updated built-in citation styles</li>\n</ul>\n<h2 id=\"visualization\">Visualization</h2>\n<ul>\n<li>Added <code>fill-rule</code> parameter to <a href=\"/en-US-v0.13.1/reference/visualize/path/#parameters-fill-rule\"><code>path</code></a> and\n<a href=\"/en-US-v0.13.1/reference/visualize/polygon/#parameters-fill-rule\"><code>polygon</code></a> functions</li>\n<li>Fixed color mixing and gradients for <a href=\"/en-US-v0.13.1/reference/visualize/color/#definitions-luma\">Luma colors</a></li>\n<li>Fixed conversion from Luma to CMYK colors</li>\n<li>Fixed offset gradient strokes in PNG export</li>\n<li>Fixed unintended cropping of some SVGs</li>\n<li>SVGs with foreign objects now produce a warning as they will likely not render\ncorrectly in Typst</li>\n</ul>\n<h2 id=\"syntax\">Syntax</h2>\n<ul>\n<li>Added support for nested imports like <code><span class=\"typ-key\">import</span> <span class=\"typ-str\">&quot;file.typ&quot;</span><span class=\"typ-punct\">:</span> module<span class=\"typ-punct\">.</span>item</code></li>\n<li>Added support for parenthesized imports like <code><span class=\"typ-key\">import</span> <span class=\"typ-str\">&quot;file.typ&quot;</span><span class=\"typ-punct\">:</span> <span class=\"typ-punct\">(</span>a<span class=\"typ-punct\">,</span> b<span class=\"typ-punct\">,</span> c<span class=\"typ-punct\">)</span></code>.\nWith those, the import list can break over multiple lines.</li>\n<li>Fixed edge case in parsing of reference syntax</li>\n<li>Fixed edge case in parsing of heading, list, enum, and term markers\nimmediately followed by comments</li>\n<li>Fixed rare crash in parsing of parenthesized expressions</li>\n</ul>\n<h2 id=\"scripting\">Scripting</h2>\n<ul>\n<li>Added new fixed-point <a href=\"/en-US-v0.13.1/reference/foundations/decimal/\" title=\"`decimal`\"><code>decimal</code></a> number type for highly precise arithmetic on\nnumbers in base 10, as needed for finance</li>\n<li>Added <code>std</code> module for accessing standard library definitions even when a\nvariable with the same name shadows/overwrites it</li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/foundations/array/#definitions-to-dict\" title=\"`array.to-dict`\"><code>array.to-dict</code></a>, <a href=\"/en-US-v0.13.1/reference/foundations/array/#definitions-reduce\" title=\"`array.reduce`\"><code>array.reduce</code></a>, <a href=\"/en-US-v0.13.1/reference/foundations/array/#definitions-windows\" title=\"`array.windows`\"><code>array.windows</code></a> methods</li>\n<li>Added <code>exact</code> argument to <a href=\"/en-US-v0.13.1/reference/foundations/array/#definitions-zip\" title=\"`array.zip`\"><code>array.zip</code></a></li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/foundations/arguments/#definitions-at\" title=\"`arguments.at`\"><code>arguments.at</code></a> method</li>\n<li>Added <a href=\"/en-US-v0.13.1/reference/foundations/int/#definitions-from-bytes\" title=\"`int.from-bytes`\"><code>int.from-bytes</code></a>, <a href=\"/en-US-v0.13.1/reference/foundations/int/#definitions-to-bytes\" title=\"`int.to-bytes`\"><code>int.to-bytes</code></a>, <a href=\"/en-US-v0.13.1/reference/foundations/float/#definitions-from-bytes\" title=\"`float.from-bytes`\"><code>float.from-bytes</code></a>, and\n<a href=\"/en-US-v0.13.1/reference/foundations/float/#definitions-to-bytes\" title=\"`float.to-bytes`\"><code>float.to-bytes</code></a></li>\n<li>Added proper support for negative values of the <code>digits</code> parameter of\n<a href=\"/en-US-v0.13.1/reference/foundations/calc/#functions-round\" title=\"`calc.round`\"><code>calc.round</code></a> (the behaviour existed before but was subtly broken)</li>\n<li>Conversions from <a href=\"/en-US-v0.13.1/reference/foundations/int/\" title=\"`int`\"><code>int</code></a> to <a href=\"/en-US-v0.13.1/reference/foundations/float/\" title=\"`float`\"><code>float</code></a> will now error instead of saturating if\nthe float is too large <strong>(Minor breaking change)</strong></li>\n<li>Added <code>float.nan</code> and <code>float.inf</code>, removed <code>calc.nan</code>\n<strong>(Minor breaking change)</strong></li>\n<li>Certain symbols are now generally callable like functions and not only\nspecifically in math. Examples are accents or <a href=\"/en-US-v0.13.1/reference/math/lr/#functions-floor\"><code>floor</code></a> and\n<a href=\"/en-US-v0.13.1/reference/math/lr/#functions-ceil\"><code>ceil</code></a>.</li>\n<li>Improved <a href=\"/en-US-v0.13.1/reference/foundations/repr/\" title=\"`repr`\"><code>repr</code></a> of relative values, sequences, infinities, NaN,\n<code><span class=\"typ-func\">type</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">none</span><span class=\"typ-punct\">)</span></code> and <code><span class=\"typ-func\">type</span><span class=\"typ-punct\">(</span><span class=\"typ-key\">auto</span><span class=\"typ-punct\">)</span></code></li>\n<li>Fixed crash on whole packages (rather than just files) cyclically importing\neach other</li>\n<li>Fixed return type of <a href=\"/en-US-v0.13.1/reference/foundations/calc/#functions-round\" title=\"`calc.round`\"><code>calc.round</code></a> on integers when a non-zero value is\nprovided for <code>digits</code></li>\n</ul>\n<h2 id=\"styling\">Styling</h2>\n<ul>\n<li>Text show rules now match across multiple text elements</li>\n<li>The string <code>&quot;</code> in a text show rule now matches smart quotes</li>\n<li>Fixed a long-standing styling bug where the header and footer would\nincorrectly inherit styles from a lone element on the page (e.g. a heading)</li>\n<li>Fixed <code><span class=\"typ-key\">set</span> page</code> not working directly after a counter/state update</li>\n<li>Page fields configured via an explicit <code><span class=\"typ-func\">page</span><span class=\"typ-punct\">(</span><span class=\"typ-op\">..</span><span class=\"typ-punct\">)</span><span class=\"typ-punct\">[</span>..<span class=\"typ-punct\">]</span></code> call can now be\nproperly retrieved in context expressions</li>\n</ul>\n<h2 id=\"export\">Export</h2>\n<ul>\n<li>Highly reduced PDF file sizes due to better font subsetting</li>\n<li>Emoji are now exported properly in PDF</li>\n<li>Added initial support for PDF/A. For now, only the standard PDF/A-2b is\nsupported, but more is planned for the future. Enabled via <code>--pdf-standard a-2b</code> in the CLI and via the UI in File &gt; Export as &gt; PDF in the web app.</li>\n<li>Setting <a href=\"/en-US-v0.13.1/reference/layout/page/#parameters-fill\" title=\"`page.fill`\"><code>page.fill</code></a> to <code><span class=\"typ-key\">none</span></code> will now lead to transparent pages instead\nof white ones in PNG and SVG. The new default of <code><span class=\"typ-key\">auto</span></code> means transparent\nfor PDF and white for PNG and SVG.</li>\n<li>Improved text copy-paste from PDF in complex scenarios</li>\n<li>Exported SVGs now contain the <code>data-typst-label</code> attribute on groups resulting\nfrom labelled <a href=\"/en-US-v0.13.1/reference/layout/box/\">boxes</a> and <a href=\"/en-US-v0.13.1/reference/layout/block/\">blocks</a></li>\n<li>Fixed a bug where some fonts would not print correctly on professional\nprinters</li>\n<li>Fixed a bug where transparency could leak from one PDF object to another</li>\n<li>Fixed a bug with CMYK gradients in PDF</li>\n<li>Fixed various bugs with export of Oklab gradients in PDF</li>\n<li>Fixed crashes related to rendering of non-outline glyphs</li>\n<li>Two small fixes for PDF standard conformance</li>\n</ul>\n<h2 id=\"performance\">Performance</h2>\n<ul>\n<li>Typst's layout engine is now multithreaded. Typical speedups are 2-3x for\nlarger documents. The multithreading operates on page break boundaries, so\nexplicit page breaks are necessary for it to kick in.</li>\n<li>Paragraph justification was optimized with a new two-pass algorithm. Speedups\nare larger for shorter paragraphs and range from 1-6x.</li>\n</ul>\n<h2 id=\"command-line-interface\">Command Line Interface</h2>\n<ul>\n<li>Added <code>--pages</code> option to select specific page ranges to export</li>\n<li>Added <code>--package-path</code> and <code>--package-cache-path</code> as well as\n<code>TYPST_PACKAGE_PATH</code> and <code>TYPST_PACKAGE_CACHE_PATH</code> environment variables for\nconfiguring where packages are loaded from and cached in, respectively</li>\n<li>Added <code>--ignore-system-fonts</code> flag to disable system fonts fully for better\nreproducibility</li>\n<li>Added <code>--make-deps</code> argument for outputting the dependencies of the current\ncompilation as a Makefile</li>\n<li>Added <code>--pretty</code> option to <code>typst query</code>, with the default now being to minify\n(only applies to JSON format)</li>\n<li>Added <code>--backup-path</code> to <code>typst update</code> to configure where the previous\nversion is backed up</li>\n<li>Added useful links to help output</li>\n<li>The CLI will now greet users who invoke just <code>typst</code> for the first time</li>\n<li>The document can now be written to stdout by passing <code>-</code> as the output\nfilename (for PDF or single-page image export)</li>\n<li>Typst will now emit a proper error message instead of failing silently when\nthe certificate specified by <code>--cert</code> or <code>TYPST_CERT</code> could not be loaded</li>\n<li>The CLI now respects the <code>SOURCE_DATE_EPOCH</code> environment variable for better\nreproducibility</li>\n<li>When exporting multiple images, you can now use <code>t</code> (total pages), <code>p</code>\n(current page), and <code>0p</code> (zero-padded current page, same as current <code>n</code>)\nin the output path</li>\n<li>The input and output paths now allow non-UTF-8 values</li>\n<li>Times are now formatted more consistently across the CLI</li>\n<li>Fixed a bug related to the <code>--open</code> flag</li>\n<li>Fixed path completions for <code>typst</code> not working in zsh</li>\n</ul>\n<h2 id=\"tooling-and-diagnostics\">Tooling and Diagnostics</h2>\n<ul>\n<li>The &quot;compiler&quot; field for specifying the minimum Typst version required by a\npackage now supports imprecise bounds like 0.11 instead of 0.11.0</li>\n<li>Added warning when a label is ignored by Typst because no preceding labellable\nelement exists</li>\n<li>Added hint when trying to apply labels in code mode</li>\n<li>Added hint when trying to call a standard library function that has been\nshadowed/overwritten by a local definition</li>\n<li>Added hint when trying to set both the language and the region in the <code>lang</code>\nparameter</li>\n<li>Added hints when trying to compile non-Typst files (e.g. after having typed\n<code>typst c file.pdf</code> by accident)</li>\n<li>Added hint when a string is used where a label is expected</li>\n<li>Added hint when a stray end of a block comment (<code>*/</code>) is encountered</li>\n<li>Added hints when destructuring arrays with the wrong number of elements</li>\n<li>Improved error message when trying to use a keyword as an identifier in a let\nbinding</li>\n<li>Improved error messages when accessing nonexistent fields</li>\n<li>Improved error message when a package exists, but not the specified version</li>\n<li>Improved hints for unknown variables</li>\n<li>Improved hint when trying to convert a length with non-zero em component to an\nabsolute unit</li>\n<li>Fixed a crash that could be triggered by certain hover tooltips</li>\n<li>Fixed an off-by-one error in to-source jumps when first-line-indent is enabled</li>\n<li>Fixed suggestions for <code>.</code> after the end of an inline code expressions</li>\n<li>Fixed autocompletions being duplicated in a specific case</li>\n</ul>\n<h2 id=\"symbols\">Symbols</h2>\n<ul>\n<li>New: <code>parallelogram</code>, <code>original</code>, <code>image</code>, <code>crossmark</code>, <code>rest</code>, <code>natural</code>,\n<code>flat</code>, <code>sharp</code>, <code>tiny</code>, <code>miny</code>, <code>copyleft</code>, <code>trademark</code>, <code>emoji.beet</code>,\n<code>emoji.fingerprint</code>, <code>emoji.harp</code>, <code>emoji.shovel</code>, <code>emoji.splatter</code>,\n<code>emoji.tree.leafless</code>,</li>\n<li>New variants: <code>club.stroked</code>, <code>diamond.stroked</code>, <code>heart.stroked</code>,\n<code>spade.stroked</code>, <code>gt.neq</code>, <code>lt.neq</code>, <code>checkmark.heavy</code>, <code>paren.double</code>,\n<code>brace.double</code>, <code>shell.double</code>, <code>arrow.turn</code>, <code>plus.double</code>, <code>plus.triple</code>,\n<code>infinity.bar</code>, <code>infinity.incomplete</code>, <code>infinity.tie</code>, <code>multimap.double</code>,\n<code>ballot.check</code>, <code>ballot.check.heavy</code>, <code>emptyset.bar</code>, <code>emptyset.circle</code>,\n<code>emptyset.arrow.l</code>, <code>emptyset.arrow.r</code>, <code>parallel.struck</code>, <code>parallel.eq</code>,\n<code>parallel.equiv</code>, <code>parallel.slanted</code>, <code>parallel.tilde</code>, <code>angle.l.curly</code>,\n<code>angle.l.dot</code>, <code>angle.r.curly</code>, <code>angle.r.dot</code>, <code>angle.oblique</code>, <code>angle.s</code>,\n<code>em.two</code>, <code>em.three</code></li>\n<li>Renamed: <code>turtle</code> to <code>shell</code>, <code>notes</code> to <code>note</code>, <code>ballot.x</code> to <code>ballot.cross</code>,\n<code>succ.eq</code> to <code>succ.curly.eq</code>, <code>prec.eq</code> to <code>prec.curly.eq</code>, <code>servicemark</code> to\n<code>trademark.service</code>, <code>emoji.face.tired</code> to <code>emoji.face.distress</code>\n<strong>(Breaking change)</strong></li>\n<li>Changed codepoint: <code>prec.eq</code>, <code>prec.neq</code>, <code>succ.eq</code>, <code>succ.neq</code>, <code>triangle</code>\nfrom ▷ to △, <code>emoji.face.tired</code> <strong>(Breaking change)</strong></li>\n<li>Removed: <code>lt.curly</code> in favor of <code>prec</code>, <code>gt.curly</code> in favor of <code>succ</code>\n<strong>(Breaking change)</strong></li>\n</ul>\n<h2 id=\"deprecations\">Deprecations</h2>\n<ul>\n<li><a href=\"/en-US-v0.13.1/reference/introspection/counter/#definitions-display\" title=\"`counter.display`\"><code>counter.display</code></a> without an established context</li>\n<li><a href=\"/en-US-v0.13.1/reference/introspection/counter/#definitions-final\" title=\"`counter.final`\"><code>counter.final</code></a> with a location</li>\n<li><a href=\"/en-US-v0.13.1/reference/introspection/state/#definitions-final\" title=\"`state.final`\"><code>state.final</code></a> with a location</li>\n<li><code>state.display</code></li>\n<li><a href=\"/en-US-v0.13.1/reference/introspection/query/\" title=\"`query`\"><code>query</code></a> with a location as the second argument</li>\n<li><a href=\"/en-US-v0.13.1/reference/introspection/locate/\" title=\"`locate`\"><code>locate</code></a> with a callback function</li>\n<li><a href=\"/en-US-v0.13.1/reference/layout/measure/\" title=\"`measure`\"><code>measure</code></a> with styles</li>\n<li><code>style</code></li>\n</ul>\n<h2 id=\"development\">Development</h2>\n<ul>\n<li>Added <code>typst-kit</code> crate which provides useful APIs for <code>World</code> implementors</li>\n<li>Added go-to-definition API in <code>typst-ide</code></li>\n<li>Added package manifest parsing APIs to <code>typst-syntax</code></li>\n<li>As the compiler is now capable of multithreading, <code>World</code> implementations must\nsatisfy <code>Send</code> and <code>Sync</code></li>\n<li>Changed signature of <code>World::main</code> to allow for the scenario where the main\nfile could not be loaded</li>\n<li>Removed <code>Tracer</code> in favor of <code>Warned&lt;T&gt;</code> and <code>typst::trace</code> function</li>\n<li>The <code>xz2</code> dependency used by the self-updater is now statically linked</li>\n<li>The Dockerfile now has an <code>ENTRYPOINT</code> directive</li>\n</ul>\n<h2 id=\"contributors\">Contributors</h2>"}}