summaryrefslogtreecommitdiff
path: root/docs/changelog/0.7.0.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/changelog/0.7.0.md')
-rw-r--r--docs/changelog/0.7.0.md142
1 files changed, 142 insertions, 0 deletions
diff --git a/docs/changelog/0.7.0.md b/docs/changelog/0.7.0.md
new file mode 100644
index 00000000..9ea2ec21
--- /dev/null
+++ b/docs/changelog/0.7.0.md
@@ -0,0 +1,142 @@
+---
+title: 0.7.0
+description: Changes in Typst 0.7.0
+---
+
+# Version 0.7.0 (August 7, 2023)
+
+## Text and Layout
+- Added support for floating figures through the
+ [`placement`]($figure.placement) argument on the figure function
+- Added support for arbitrary floating content through the
+ [`float`]($place.float) argument on the place function
+- Added support for loading `.sublime-syntax` files as highlighting
+ [syntaxes]($raw.syntaxes) for raw blocks
+- Added support for loading `.tmTheme` files as highlighting
+ [themes]($raw.theme) for raw blocks
+- Added _bounds_ option to [`top-edge`]($text.top-edge) and
+ [`bottom-edge`]($text.bottom-edge) arguments of text function for tight
+ bounding boxes
+- Removed nonsensical top- and bottom-edge options, e.g. _ascender_ for the
+ bottom edge **(Breaking change)**
+- Added [`script`]($text.script) argument to text function
+- Added [`alternative`]($smartquote.alternative) argument to smart quote
+ function
+- Added basic i18n for Japanese
+- Added hyphenation support for `nb` and `nn` language codes in addition to `no`
+- Fixed positioning of [placed elements]($place) in containers
+- Fixed overflowing containers due to optimized line breaks
+
+## Export
+- Greatly improved export of SVG images to PDF. Many thanks to
+ [@LaurenzV](https://github.com/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]($math.root)
+- Changed relations to show attachments as [limits]($math.limits) by default
+ (e.g. in `[$a ->^x b$]`)
+- Large operators and delimiters are now always vertically centered
+- [Boxes]($box) in equations now sit on the baseline instead of being vertically
+ centered by default. Notably, this does not affect [blocks]($block) because
+ they are not inline elements.
+- Added support for [weak spacing]($h.weak)
+- Added support for OpenType character variants
+- Added support for customizing the [math class]($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`, and `tr` text [operators]($math.op)
+ - Renamed `ident` to `equiv` with alias `eq.triple` and removed `ident.strict`
+ in favor of `eq.quad`
+ - Renamed `ast.sq` to `ast.square` and `integral.sq` to `integral.square`
+ - Renamed `.eqq` modifier to `.equiv` (and `.neqq` to `.nequiv`) for `tilde`,
+ `gt`, `lt`, `prec`, and `succ`
+ - Added `emptyset` as alias for `nothing`
+ - Added `lt.curly` and `gt.curly` as aliases for `prec` and `succ`
+ - Added `aleph`, `beth`, and `gimmel` as alias for `alef`, `bet`, and `gimel`
+
+## Scripting
+- Fields
+ - Added `abs` and `em` field to [lengths]($length)
+ - Added `ratio` and `length` field to [relative lengths]($relative)
+ - Added `x` and `y` field to [2d alignments]($align.alignment)
+ - Added `paint`, `thickness`, `cap`, `join`, `dash`, and `miter-limit` field
+ to [strokes]($stroke)
+- Accessor and utility methods
+ - Added [`dedup`]($array.dedup) method to arrays
+ - Added `pt`, `mm`, `cm`, and `inches` method to [lengths]($length)
+ - Added `deg` and `rad` method to [angles]($angle)
+ - Added `kind`, `hex`, `rgba`, `cmyk`, and `luma` method to [colors]($color)
+ - Added `axis`, `start`, `end`, and `inv` method to [directions]($stack.dir)
+ - Added `axis` and `inv` method to [alignments]($align.alignment)
+ - Added `inv` method to [2d alignments]($align.alignment)
+ - Added `start` argument to [`enumerate`]($array.enumerate) method on arrays
+- Added [`color.mix`]($color.mix) function
+- Added `mode` and `scope` arguments to [`eval`] function
+- Added [`bytes`] type for holding large byte buffers
+ - Added [`encoding`]($read.encoding) argument to read function to read a file
+ as bytes instead of a string
+ - Added [`image.decode`]($image.decode) function for decoding an image
+ directly from a string or bytes
+ - Added [`bytes`] function for converting a string or an array of integers to
+ bytes
+ - Added [`array`] function for converting bytes to an array of integers
+ - Added support for converting bytes to a string with the [`str`] function
+
+## 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 `for` loops
+
+## Command line interface
+- Added `typst query` subcommand to execute a
+ [query]($reference/introspection/query/#command-line-queries) on the command
+ line
+- The `--root` and `--font-paths` arguments 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 watch` not working with some text editors
+- Fixed displayed compilation time (now includes export)
+
+## Miscellaneous Improvements
+- Added [`bookmarked`]($heading.bookmarked) argument to heading to control
+ whether a heading becomes part of the PDF outline
+- Added [`caption-pos`]($figure.caption.position) argument to control the
+ position of a figure's caption
+- Added [`metadata`] function for exposing an arbitrary value to the
+ introspection system
+- Fixed that a [`state`] was identified by the pair `(key, init)` instead of
+ just its `key`
+- Improved indent logic of [enumerations]($enum). 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 [`raw`] blocks
+- Fixed a parsing bug with dictionaries
+
+## Development
+- Extracted parser and syntax tree into `typst-syntax` crate
+- The `World::today` implementation of Typst dependents may need fixing if they
+ have the same [bug](https://github.com/typst/typst/issues/1842) that the CLI
+ world had
+
+## Contributors
+<contributors from="v0.6.0" to="v0.7.0" />