diff options
Diffstat (limited to 'docs/changelog.md')
| -rw-r--r-- | docs/changelog.md | 726 |
1 files changed, 726 insertions, 0 deletions
diff --git a/docs/changelog.md b/docs/changelog.md new file mode 100644 index 00000000..95808fab --- /dev/null +++ b/docs/changelog.md @@ -0,0 +1,726 @@ +--- +description: | + Learn what has changed in the latest Typst releases and move your documents + forward. +--- + +# Changelog +## Version 0.6.0 (June 30, 2023) { #v0.6.0 } +- Package Management + - Typst now has built-in [package management]($scripting/#packages) + - You can import [published]($packages) community packages or create and use + [system-local](https://github.com/typst/packages#local-packages) ones + - Published packages are also supported in the web app + +- Math + - Added support for optical size variants of glyphs in math mode + - Added argument to enable [`limits`]($func/math.limits) conditionally + depending on whether the equation is set in [`display`]($func/math.display) + or [`inline`]($func/math.inline) style + - Added `gt.eq.slant` and `lt.eq.slant` symbols + - Increased precedence of factorials in math mode (`[$1/n!$]` works correctly + now) + - Improved [underlines]($func/math.underline) and + [overlines]($func/math.overline) in math mode + - Fixed usage of [`limits`]($func/math.limits) function in show rules + - Fixed bugs with line breaks in equations + +- Text and Layout + - Added support for alternating page [margins]($func/page.margin) with the + `inside` and `outside` keys + - Added support for specifying the page [`binding`]($func/page.binding) + - Added [`to`]($func/pagebreak.to) argument to pagebreak function to skip to + the next even or odd page + - Added basic i18n for a few more languages (TR, SQ, TL) + - Fixed bug with missing table row at page break + - Fixed bug with [underlines]($func/underline) + - Fixed bug superfluous table lines + - Fixed smart quotes after line breaks + - Fixed a crash related to text layout + +- Command line interface + - **Breaking change:** Added requirement for `--root`/`TYPST_ROOT` directory + to contain the input file because it designates the _project_ root. Existing + setups that use `TYPST_ROOT` to emulate package management should switch to + [local packages](https://github.com/typst/packages#local-packages) + - **Breaking change:** Now denies file access outside of the project root + - Added support for local packages and on-demand package download + - Now watches all relevant files, within the root and all packages + - Now displays compilation time + +- Miscellaneous Improvements + - Added [`outline.entry`]($func/outline.entry) to customize outline entries + with show rules + - Added some hints for error messages + - Added some missing syntaxes for [`raw`]($func/raw) highlighting + - Improved rendering of rotated images in PNG export and web app + - Made [footnotes]($func/footnote) reusable and referenceable + - Fixed bug with citations and bibliographies in [`locate`]($func/locate) + - Fixed inconsistent tense in documentation + +- Development + - Added [contribution guide](https://github.com/typst/typst/blob/main/CONTRIBUTING.md) + - Reworked `World` interface to accommodate for package management and make + it a bit simpler to implement _(Breaking change for implementors)_ + +<contributors from="v0.5.0" to="v0.6.0" /> + +## Version 0.5.0 (June 9, 2023) { #v0.5.0 } +- Text and Layout + - Added [`raw`]($func/raw) syntax highlighting for many more languages + - Added support for Korean [numbering]($func/numbering) + - Added basic i18n for a few more languages (NL, SV, DA) + - Improved linebreaking for East Asian languages + - Expanded functionality of outline [`indent`]($func/outline.indent) property + - Fixed footnotes in columns + - Fixed page breaking bugs with [footnotes]($func/footnote) + - Fixed bug with handling of footnotes in lists, tables, and figures + - Fixed a bug with CJK punctuation adjustment + - Fixed a crash with rounded rectangles + - Fixed alignment of [`line`]($func/line) elements + +- Math + - **Breaking change:** The syntax rules for mathematical + [attachments]($func/math.attach) were improved: `[$f^abs(3)$]` now parses as + `[$f^(abs(3))$]` instead of `[$(f^abs)(3)$]`. To disambiguate, add a space: + `[$f^zeta (3)$]`. + - Added [forced size]($category/math/sizes) commands for math + (e.g., [`display`]($func/math.display)) + - Added [`supplement`]($func/math.equation.supplement) parameter to + [`equation`]($func/math.equation), used by [references]($func/ref) + - New [symbols]($category/symbols/sym): `bullet`, `xor`, `slash.big`, + `sigma.alt`, `tack.r.not`, `tack.r.short`, `tack.r.double.not` + - Fixed a bug with symbols in matrices + - Fixed a crash in the [`attach`]($func/math.attach) function + +- Scripting + - Added new [`datetime`]($type/datetime) type and + [`datetime.today()`]($func/datetime.today) to retrieve the current date + - Added [`str.from-unicode`]($func/str.from-unicode) and + [`str.to-unicode`]($func/str.to-unicode) functions + - Added [`fields`]($type/content.fields) method on content + - Added `base` parameter to [`str`]($func/str) function + - Added [`calc.exp`]($func/calc.exp) and [`calc.ln`]($func/calc.ln) + - Improved accuracy of [`calc.pow`]($func/calc.pow) and + [`calc.log`]($func/calc.log) for specific bases + - Fixed [removal]($type/dictionary.remove) order for dictionary + - Fixed `.at(default: ..)` for [strings]($type/string.at) and + [content]($type/content.at) + - Fixed field access on styled elements + - Removed deprecated `calc.mod` function + +- Command line interface + - Added PNG export via `typst compile source.typ output-{n}.png`. The output + path must contain `[{n}]` if the document has multiple pages. + - Added `--diagnostic-format=short` for Unix-style short diagnostics + - Doesn't emit color codes anymore if stderr isn't a TTY + - Now sets the correct exit when invoked with a non-existent file + - Now ignores UTF-8 BOM in Typst files + +- Miscellaneous Improvements + - Improved errors for mismatched delimiters + - Improved error message for failed length comparisons + - Fixed a bug with images not showing up in Apple Preview + - Fixed multiple bugs with the PDF outline + - Fixed citations and other searchable elements in [`hide`]($func/hide) + - Fixed bugs with [reference supplements]($func/ref.supplement) + - Fixed Nix flake + +<contributors from="v0.4.0" to="v0.5.0" /> + +## Version 0.4.0 (May 20, 2023) { #v0.4.0 } +- Footnotes + - Implemented support for footnotes + - The [`footnote`]($func/footnote) function inserts a footnote + - The [`footnote.entry`]($func/footnote.entry) function can be used to + customize the footnote listing + - The `{"chicago-notes"}` [citation style]($func/cite.style) is now available + +- Documentation + - Added a [Guide for LaTeX users]($guides/guide-for-latex-users) + - Now shows default values for optional arguments + - Added richer outlines in "On this Page" + - Added initial support for search keywords: "Table of Contents" will now find + the [outline]($func/outline) function. Suggestions for more keywords are + welcome! + - Fixed issue with search result ranking + - Fixed many more small issues + +- Math + - **Breaking change**: Alignment points (`&`) in equations now alternate + between left and right alignment + - Added support for writing roots with Unicode: + For example, `[$root(x+y)$]` can now also be written as `[$√(x+y)$]` + - Fixed uneven vertical [`attachment`]($func/math.attach) alignment + - Fixed spacing on decorated elements + (e.g., spacing around a [canceled]($func/math.cancel) operator) + - Fixed styling for stretchable symbols + - Added `tack.r.double`, `tack.l.double`, `dotless.i` and `dotless.j` + [symbols]($category/symbols/sym) + - Fixed show rules on symbols (e.g. `{show sym.tack: set text(blue)}`) + - Fixed missing rename from `ast.op` to `ast` that should have been in the + previous release + +- Scripting + - Added function scopes: A function can now hold related definitions in its + own scope, similar to a module. The new [`assert.eq`]($func/assert.eq) + function, for instance, is part of the [`assert`]($func/assert) function's + scope. Note that function scopes are currently only available for built-in + functions. + - Added [`assert.eq`]($func/assert.eq) and [`assert.ne`]($func/assert.ne) + functions for simpler equality and inequality assertions with more helpful + error messages + - Exposed [list]($func/list.item), [enum]($func/enum.item), and + [term list]($func/terms.item) items in their respective functions' scope + - The `at` methods on [strings]($type/string.at), [arrays]($type/array.at), + [dictionaries]($type/dictionary.at), and [content]($type/content.at) now support + specifying a default value + - Added support for passing a function to [`replace`]($type/string.replace) + that is called with each match. + - Fixed [replacement]($type/string.replace) strings: They are now inserted + completely verbatim instead of supporting the previous (unintended) magic + dollar syntax for capture groups + - Fixed bug with trailing placeholders in destructuring patterns + - Fixed bug with underscore in parameter destructuring + - Fixed crash with nested patterns and when hovering over an invalid pattern + - Better error messages when casting to an [integer]($func/int) or + [float]($func/float) fails + +- Text and Layout + - Implemented sophisticated CJK punctuation adjustment + - Disabled [overhang]($func/text.overhang) for CJK punctuation + - Added basic translations for Traditional Chinese + - Fixed [alignment]($func/raw.align) of text inside raw blocks (centering a + raw block, e.g. through a figure, will now keep the text itself + left-aligned) + - Added support for passing a array instead of a function to configure table + cell [alignment]($func/table.align) and [fill]($func/table.fill) per column + - Fixed automatic figure [`kind`]($func/figure.kind) detection + - Made alignment of [enum numbers]($func/enum.number-align) configurable, + defaulting to `end` + - Figures can now be made breakable with a show-set rule for blocks in figure + - Initial fix for smart quotes in RTL languages + +- Export + - Fixed ligatures in PDF export: They are now copyable and searchable + - Exported PDFs now embed ICC profiles for images that have them + - Fixed export of strokes with zero thickness + +- Web app + - Projects can now contain folders + - Added upload by drag-and-drop into the file panel + - Files from the file panel can now be dragged into the editor to insert them + into a Typst file + - You can now copy-paste images and other files from your computer directly + into the editor + - Added a button to resend confirmation email + - Added an option to invert preview colors in dark mode + - Added tips to the loading screen and the Help menu. Feel free to propose + more! + - Added syntax highlighting for YAML files + - Allowed middle mouse button click on many buttons to navigate into a new tab + - Allowed more project names + - Fixed overridden Vim mode keybindings + - Fixed many bugs regarding file upload and more + +- Miscellaneous Improvements + - Improved performance of counters, state, and queries + - Improved incremental parsing for more efficient recompilations + - Added support for `.yaml` extension in addition to `.yml` for bibliographies + - The CLI now emits escape codes only if the output is a TTY + - For users of the `typst` crate: The `Document` is now `Sync` again and + the `World` doesn't have to be `'static` anymore + +<contributors from="v0.3.0" to="v0.4.0" /> + +## Version 0.3.0 (April 26, 2023) { #v0.3.0 } +- **Breaking changes:** + - Renamed a few symbols: What was previous `dot.op` is now just `dot` and the + basic dot is `dot.basic`. The same applies to `ast` and `tilde`. + - Renamed `mod` to [`rem`]($func/calc.rem) to more accurately reflect + the behaviour. It will remain available as `mod` until the next update as a + grace period. + - A lone underscore is not a valid identifier anymore, it can now only be used + in patterns + - Removed `before` and `after` arguments from [`query`]($func/query). This is + now handled through flexible [selectors]($type/selector) combinator methods + - Added support for [attachments]($func/math.attach) (sub-, superscripts) that + precede the base symbol. The `top` and `bottom` arguments have been renamed + to `t` and `b`. + +- New features + - Added support for more complex [strokes]($func/line.stroke) + (configurable caps, joins, and dash patterns) + - Added [`cancel`]($func/math.cancel) function for equations + - Added support for [destructuring]($scripting/#bindings) in argument lists + and assignments + - Added [`alt`]($func/image.alt) text argument to image function + - Added [`toml`]($func/toml) function for loading data from a TOML file + - Added [`zip`]($type/array.zip), [`sum`]($type/array.sum), and + [`product`]($type/array.product) methods for arrays + - Added `fact`, `perm`, `binom`, `gcd`, `lcm`, `atan2`, `quo`, `trunc`, and + `fract` [calculation]($category/calculate) + +- Improvements + - Text in SVGs now displays properly + - Typst now generates a PDF heading outline + - [References]($func/ref) now provides the referenced element as a field in + show rules + - Refined linebreak algorithm for better Chinese justification + - Locations are now a valid kind of selector + - Added a few symbols for algebra + - Added Spanish smart quote support + - Added [`selector`]($func/selector) function to turn a selector-like value + into a selector on which combinator methods can be called + - Improved some error messages + - The outline and bibliography headings can now be styled with show-set rules + - Operations on numbers now produce an error instead of overflowing + +- Bug fixes + - Fixed wrong linebreak before punctuation that follows inline equations, + citations, and other elements + - Fixed a bug with [argument sinks]($type/arguments) + - Fixed strokes with thickness zero + - Fixed hiding and show rules in math + - Fixed alignment in matrices + - Fixed some alignment bugs in equations + - Fixed grid cell alignment + - Fixed alignment of list marker and enum markers in presence of global + alignment settings + - Fixed [path]($func/path) closing + - Fixed compiler crash with figure references + - A single trailing line breaks is now ignored in math, just like in text + +- Command line interface + - Font path and compilation root can now be set with the environment + variables `TYPST_FONT_PATHS` and `TYPST_ROOT` + - The output of `typst fonts` now includes the embedded fonts + +- Development + - Added instrumentation for debugging and optimization + - Added `--update` flag and `UPDATE_EXPECT` environment variable to update + reference images for tests + - You can now run a specific subtest with `--subtest` + - Tests now run on multiple threads + +<contributors from="v0.2.0" to="v0.3.0" /> + +## Version 0.2.0 (April 11, 2023) { #v0.2.0 } +- **Breaking changes:** + - Removed support for iterating over index and value in + [for loops]($scripting/#loops). This is now handled via unpacking and + enumerating. Same goes for the [`map()`]($type/array.map) method. + - [Dictionaries]($type/dictionary) now iterate in insertion order instead of + alphabetical order. + +- New features + - Added [unpacking syntax]($scripting/#bindings) for let bindings, which + allows things like `{let (1, 2) = array}` + - Added [`enumerate()`]($type/array.enumerate) method + - Added [`path`]($func/path) function for drawing Bézier paths + - Added [`layout`]($func/layout) function to access the size of the + surrounding page or container + - Added `key` parameter to [`sorted()`]($type/array.sorted) method + +- Command line interface + - Fixed `--open` flag blocking the program + - New Computer Modern font is now embedded into the binary + - Shell completions and man pages can now be generated by setting the + `GEN_ARTIFACTS` environment variable to a target directory and then building + Typst + +- Miscellaneous improvements + - Fixed page numbering in outline + - Added basic i18n for a few more languages + (AR, NB, CS, NN, PL, SL, ES, UA, VI) + - Added a few numbering patterns (Ihora, Chinese) + - Added `sinc` [operator]($func/math.op) + - Fixed bug where math could not be hidden with [`hide`]($func/hide) + - Fixed sizing issues with box, block, and shapes + - Fixed some translations + - Fixed inversion of "R" in [`cal`]($func/math.cal) and + [`frak`]($func/math.frak) styles + - Fixed some styling issues in math + - Fixed supplements of references to headings + - Fixed syntax highlighting of identifiers in certain scenarios + - [Ratios]($type/ratio) can now be multiplied with more types and be converted + to [floats]($type/float) with the [`float`]($func/float) function + +<contributors from="v0.1.0" to="v0.2.0" /> + +## Version 0.1.0 (April 04, 2023) { #v0.1.0 } +- **Breaking changes:** + - When using the CLI, you now have to use subcommands: + - `typst compile file.typ` or `typst c file.typ` to create a PDF + - `typst watch file.typ` or `typst w file.typ` to compile and watch + - `typst fonts` to list all fonts + - Manual counters now start at zero. Read the "How to step" section + [here]($func/counter) for more details + - The [bibliography styles]($func/bibliography.style) + `{"author-date"}` and `{"author-title"}` were renamed to + `{"chicago-author-date"}` and `{"chicago-author-title"}` + +- Figure improvements + - Figures now automatically detect their content and adapt their + behaviour. Figures containing tables, for instance, are automatically + prefixed with "Table X" and have a separate counter + - The figure's supplement (e.g. "Figure" or "Table") can now be customized + - In addition, figures can now be completely customized because the show rule + gives access to the automatically resolved kind, supplement, and counter + +- Bibliography improvements + - The [`bibliography`]($func/bibliography) now also accepts multiple + bibliography paths (as an array) + - Parsing of BibLaTeX files is now more permissive (accepts non-numeric + edition, pages, volumes, dates, and Jabref-style comments; fixed + abbreviation parsing) + - Labels and references can now include `:` and `.` except at the end + - Fixed APA bibliography ordering + +- Drawing additions + - Added [`polygon`]($func/polygon) function for drawing polygons + - Added support for clipping in [boxes]($func/box.clip) and + [blocks]($func/block.clip) + +- Command line interface + - Now returns with non-zero status code if there is an error + - Now watches the root directory instead of the current one + - Now puts the PDF file next to input file by default + - Now accepts more kinds of input files (e.g. `/dev/stdin`) + - Added `--open` flag to directly open the PDF + +- Miscellaneous improvements + - Added [`yaml`]($func/yaml) function to load data from YAML files + - Added basic i18n for a few more languages (IT, RU, ZH, FR, PT) + - Added numbering support for Hebrew + - Added support for [integers]($type/integer) with base 2, 8, and 16 + - Added symbols for double bracket and laplace operator + - The [`link`]($func/link) function now accepts [labels]($func/label) + - The link syntax now allows more characters + - Improved justification of Japanese and Chinese text + - Calculation functions behave more consistently w.r.t to non-real results + - Replaced deprecated angle brackets + - Reduced maximum function call depth from 256 to 64 + - Fixed [`first-line-indent`]($func/par.first-line-indent) being not applied + when a paragraph starts with styled text + - Fixed extraneous spacing in unary operators in equations + - Fixed block spacing, e.g. in `{block(above: 1cm, below: 1cm, ..)}` + - Fixed styling of text operators in math + - Fixed invalid parsing of language tag in raw block with a single backtick + - Fixed bugs with displaying counters and state + - Fixed crash related to page counter + - Fixed crash when [`symbol`]($func/symbol) function was called without + arguments + - Fixed crash in bibliography generation + - Fixed access to label of certain content elements + - Fixed line number in error message for CSV parsing + - Fixed invalid autocompletion after certain markup elements + +<contributors from="v23-03-28" to="v0.1.0" /> + +## March 28, 2023 +- **Breaking changes:** + - Enumerations now require a space after their marker, that is, `[1.ok]` must + now be written as `[1. ok]` + - Changed default style for [term lists]($func/terms): Does not include a + colon anymore and has a bit more indent + +- Command line interface + - Added `--font-path` argument for CLI + - Embedded default fonts in CLI binary + - Fixed build of CLI if `git` is not installed + +- Miscellaneous improvements + - Added support for disabling [matrix]($func/math.mat) and + [vector]($func/math.vec) delimiters. Generally with + `[#set math.mat(delim: none)]` or one-off with + `[$mat(delim: #none, 1, 2; 3, 4)$]`. + - Added [`separator`]($func/terms.separator) argument to term lists + - Added [`round`]($func/math.round) function for equations + - Numberings now allow zeros. To reset a counter, you can write + `[#counter(..).update(0)]` + - Added documentation for `{page()}` and `{position()}` methods on + [`location`]($func/locate) type + - Added symbols for double, triple, and quadruple dot accent + - Added smart quotes for Norwegian Bokmål + - Added Nix flake + - Fixed bibliography ordering in IEEE style + - Fixed parsing of decimals in math: `[$1.2/3.4$]` + - Fixed parsing of unbalanced delimiters in fractions: `[$1/(2 (x)$]` + - Fixed unexpected parsing of numbers as enumerations, e.g. in `[1.2]` + - Fixed combination of page fill and header + - Fixed compiler crash if [`repeat`]($func/repeat) is used in page with + automatic width + - Fixed [matrices]($func/math.mat) with explicit delimiter + - Fixed [`indent`]($func/terms.indent) property of term lists + - Numerous documentation fixes + - Links in bibliographies are now affected by link styling + - Fixed hovering over comments in web app + +<contributors from="v23-03-21" to="v23-03-28" /> + +## March 21, 2023 +- Reference and bibliography management + - [Bibliographies]($func/bibliography) and [citations]($func/cite) (currently + supported styles are APA, Chicago Author Date, IEEE, and MLA) + - You can now [reference]($func/ref) sections, figures, formulas, and works + from the bibliography with `[@label]` + - You can make an element referenceable with a label: + - `[= Introduction <intro>]` + - `[$ A = pi r^2 $ <area>]` + +- Introspection system for interactions between different parts of the document + - [`counter`]($func/counter) function + - Access and modify counters for pages, headings, figures, and equations + - Define and use your own custom counters + - Time travel: Find out what the counter value was or will be at some other + point in the document (e.g. when you're building a list of figures, you + can determine the value of the figure counter at any given figure). + - Counters count in layout order and not in code order + - [`state`]($func/state) function + - Manage arbitrary state across your document + - Time travel: Find out the value of your state at any position in the + document + - State is modified in layout order and not in code order + - [`query`]($func/query) function + - Find all occurrences of an element or a label, either in the whole document + or before/after some location + - Link to elements, find out their position on the pages and access their + fields + - Example use cases: Custom list of figures or page header with current + chapter title + - [`locate`]($func/locate) function + - Determines the location of itself in the final layout + - Can be accessed to get the `page` and `x`, `y` coordinates + - Can be used with counters and state to find out their values at that + location + - Can be used with queries to find elements before or after its location + +- New [`measure`]($func/measure) function + - Measure the layouted size of elements + - To be used in combination with the new [`style`]($func/style) function that + lets you generate different content based on the style context something is + inserted into (because that affects the measured size of content) + +- Exposed content representation + - Content is not opaque anymore + - Content can be compared for equality + - The tree of content elements can be traversed with code + - Can be observed in hover tooltips or with [`repr`]($func/repr) + - New [methods]($type/content) on content: `func`, `has`, `at`, and `location` + - All optional fields on elements are now settable + - More uniform field names (`heading.title` becomes `heading.body`, + `list.items` becomes `list.children`, and a few more changes) + +- Further improvements + - Added [`figure`]($func/figure) function + - Added [`numbering`]($func/math.equation.numbering) parameter on equation function + - Added [`numbering`]($func/page.numbering) and + [`number-align`]($func/page.number-align) parameters on page function + - The page function's [`header`]($func/page.header) and + [`footer`]($func/page.footer) parameters do not take functions anymore. If + you want to customize them based on the page number, use the new + [`numbering`]($func/page.numbering) parameter or [`counter`]($func/counter) + function instead. + - Added [`footer-descent`]($func/page.footer-descent) and + [`header-ascent`]($func/page.header-ascent) parameters + - Better default alignment in header and footer + - Fixed Arabic vowel placement + - Fixed PDF font embedding issues + - Renamed `math.formula` to [`math.equation`]($func/math.equation) + - Font family must be a named argument now: `[#set text(font: "..")]` + - Added support for [hanging indent]($func/par.hanging-indent) + - Renamed paragraph `indent` to + [`first-line-indent`]($func/par.first-line-indent) + - More accurate [logarithm]($func/calc.log) when base is `2` or `10` + - Improved some error messages + - Fixed layout of [`terms`]($func/terms) list + +- Web app improvements + - Added template gallery + - Added buttons to insert headings, equations, raw blocks, and references + - Jump to the source of something by clicking on it in the preview panel + (works for text, equations, images, and more) + - You can now upload your own fonts and use them in your project + - Hover debugging and autocompletion now takes multiple files into account and + works in show rules + - Hover tooltips now automatically collapse multiple consecutive equal values + - The preview now automatically scrolls to the right place when you type + - Links are now clickable in the preview area + - Toolbar, preview, and editor can now all be hidden + - Added autocompletion for raw block language tags + - Added autocompletion in SVG files + - New back button instead of four-dots button + - Lots of bug fixes + +## February 25, 2023 +- Font changes + - New default font: Linux Libertine + - New default font for raw blocks: DejaVu Sans Mono + - New default font for math: Book weight of New Computer Modern Math + - Lots of new math fonts available + - Removed Latin Modern fonts in favor of New Computer Modern family + - Removed unnecessary smallcaps fonts which are already accessible through + the corresponding main font and the [`smallcaps`]($func/smallcaps) function +- Improved default spacing for headings +- Added [`panic`]($func/panic) function +- Added [`clusters`]($type/string.clusters) and + [`codepoints`]($type/string.codepoints) + methods for strings +- Support for multiple authors in [`set document`]($func/document.author) +- Fixed crash when string is accessed at a position that is not a char boundary +- Fixed semicolon parsing in `[#var ;]` +- Fixed incremental parsing when inserting backslash at end of `[#"abc"]` +- Fixed names of a few font families + (including Noto Sans Symbols and New Computer Modern families) +- Fixed autocompletion for font families +- Improved incremental compilation for user-defined functions + +## February 15, 2023 +- [Box]($func/box) and [block]($func/block) have gained `fill`, `stroke`, + `radius`, and `inset` properties +- Blocks may now be explicitly sized, fixed-height blocks can still break + across pages +- Blocks can now be configured to be [`breakable`]($func/block.breakable) or not +- [Numbering style]($func/enum.numbering) can now be configured for nested enums +- [Markers]($func/list.marker) can now be configured for nested lists +- The [`eval`]($func/eval) function now expects code instead of markup and + returns an arbitrary value. Markup can still be evaluated by surrounding the + string with brackets. +- PDFs generated by Typst now contain XMP metadata +- Link boxes are now disabled in PDF output +- Tables don't produce small empty cells before a pagebreak anymore +- Fixed raw block highlighting bug + +## February 12, 2023 +- Shapes, images, and transformations (move/rotate/scale/repeat) are now + block-level. To integrate them into a paragraph, use a [`box`]($func/box) as + with other elements. +- A colon is now required in an "everything" show rule: Write `{show: it => ..}` + instead of `{show it => ..}`. This prevents intermediate states that ruin + your whole document. +- Non-math content like a shape or table in a math formula is now centered + vertically +- Support for widow and orphan prevention within containers +- Support for [RTL]($func/text.dir) in lists, grids, and tables +- Support for explicit `{auto}` sizing for boxes and shapes +- Support for fractional (i.e. `{1fr}`) widths for boxes +- Fixed bug where columns jump to next page +- Fixed bug where list items have no leading +- Fixed relative sizing in lists, squares and grid auto columns +- Fixed relative displacement in [`place`]($func/place) function +- Fixed that lines don't have a size +- Fixed bug where `{set document(..)}` complains about being after content +- Fixed parsing of `{not in}` operation +- Fixed hover tooltips in math +- Fixed bug where a heading show rule may not contain a pagebreak when an + outline is present +- Added [`baseline`]($func/box.baseline) property on [`box`]($func/box) +- Added [`tg`]($func/math.op) and [`ctg`]($func/math.op) operators in math +- Added delimiter setting for [`cases`]($func/math.cases) function +- Parentheses are now included when accepting a function autocompletion + +## February 2, 2023 +- Merged text and math symbols, renamed a few symbols + (including `infty` to `infinity` with the alias `oo`) +- Fixed missing italic mappings +- Math italics correction is now applied properly +- Parentheses now scale in `[$zeta(x/2)$]` +- Fixed placement of large root index +- Fixed spacing in `[$abs(-x)$]` +- Fixed inconsistency between text and identifiers in math +- Accents are now ignored when positioning superscripts +- Fixed vertical alignment in matrices +- Fixed `text` set rule in `raw` show rule +- Heading and list markers now parse consistently +- Allow arbitrary math directly in content + +## January 30, 2023 +[Go to the announcement blog post.](https://typst.app/blog/2023/january-update) +- New expression syntax in markup/math + - Blocks cannot be directly embedded in markup anymore + - Like other expressions, they now require a leading hashtag + - More expressions available with hashtag, including literals + (`[#"string"]`) as well as field access and method call + without space: `[#emoji.face]` +- New import syntax + - `[#import "module.typ"]` creates binding named `module` + - `[#import "module.typ": a, b]` or `[#import "module.typ": *]` to import items + - `[#import emoji: face, turtle]` to import from already bound module +- New symbol handling + - Removed symbol notation + - Symbols are now in modules: `{sym}`, `{emoji}`, and `{math}` + - Math module also reexports all of `{sym}` + - Modified through field access, still order-independent + - Unknown modifiers are not allowed anymore + - Support for custom symbol definitions with `symbol` function + - Symbols now listed in documentation +- New `{math}` module + - Contains all math-related functions + - Variables and function calls directly in math (without hashtag) access this + module instead of the global scope, but can also access local variables + - Can be explicitly used in code, e.g. `[#set math.vec(delim: "[")]` +- Delimiter matching in math + - Any opening delimiters matches any closing one + - When matched, they automatically scale + - To prevent scaling, escape them + - To forcibly match two delimiters, use `lr` function + - Line breaks may occur between matched delimiters + - Delimiters may also be unbalanced + - You can also use the `lr` function to scale the brackets + (or just one bracket) to a specific size manually +- Multi-line math with alignment + - The `\` character inserts a line break + - The `&` character defines an alignment point + - Alignment points also work for underbraces, vectors, cases, and matrices + - Multiple alignment points are supported +- More capable math function calls + - Function calls directly in math can now take code expressions with hashtag + - They can now also take named arguments + - Within math function calls, semicolons turn preceding arguments to arrays to + support matrices: `[$mat(1, 2; 3, 4)$]` +- Arbitrary content in math + - Text, images, and other arbitrary content can now be embedded in math + - Math now also supports font fallback to support e.g. CJK and emoji +- More math features + - New text operators: `op` function, `lim`, `max`, etc. + - New matrix function: `mat` + - New n-ary roots with `root` function: `[$root(3, x)$]` + - New under- and overbraces, -brackets, and -lines + - New `abs` and `norm` functions + - New shorthands: `[|`, `|]`, and `||` + - New `attach` function, overridable attachments with `script` and `limit` + - Manual spacing in math, with `h`, `thin`, `med`, `thick` and `quad` + - Symbols and other content may now be used like a function, e.g. `[$zeta(x)$]` + - Added Fira Math font, removed Noto Sans Math font + - Support for alternative math fonts through + `[#show math.formula: set text("Fira Math")]` +- More library improvements + - New `calc` module, `abs`, `min`, `max`, `even`, `odd` and `mod` moved there + - New `message` argument on `{assert}` function + - The `pairs` method on dictionaries now returns an array of length-2 arrays + instead of taking a closure + - The method call `{dict.at("key")}` now always fails if `"key"` doesn't exist + Previously, it was allowed in assignments. Alternatives are `{dict.key = x}` + and `{dict.insert("key", x)}`. +- Smarter editor functionality + - Autocompletion for local variables + - Autocompletion for methods available on a value + - Autocompletion for symbols and modules + - Autocompletion for imports + - Hover over an identifier to see its value(s) +- Further editor improvements + - New Font menu with previews + - Single projects may now be shared with share links + - New dashboard experience if projects are shared with you + - Keyboard Shortcuts are now listed in the menus and there are more of them + - New Offline indicator + - Tooltips for all buttons + - Improved account protection + - Moved Status indicator into the error list button +- Further fixes + - Multiple bug fixes for incremental parser + - Fixed closure parameter capturing + - Fixed tons of math bugs + - Bugfixes for performance, file management, editing reliability + - Added redirection to the page originally navigated to after signin |
