Skip to content

Version 0.7.0 (August 7, 2023)

Compare
Choose a tag to compare
@laurmaedje laurmaedje released this 07 Aug 16:20
· 871 commits to main since this release
  • Text and Layout

    • Added support for floating figures through the placement argument on the figure function
    • Added support for arbitrary floating content through the float argument on the place function
    • Added support for loading .sublime-syntax files as highlighting syntaxes for raw blocks
    • Added support for loading .tmTheme files as highlighting themes for raw blocks
    • Added bounds option to top-edge and 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 argument to text function
    • Added 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 in containers (Breaking change)
    • Fixed overflowing containers due to optimized line breaks
  • Export

    • Greatly improved export of SVG images to PDF. Many thanks to @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
    • Changed relations to show attachments as limits by default (e.g. in $a ->^x b$)
    • Large operators and delimiters are now always vertically centered
    • Boxes in equations now sit on the baseline instead of being vertically centered by default. Notably, this does not affect blocks because they are not inline elements.
    • Added support for weak spacing
    • Added support for OpenType character variants
    • Added support for customizing the 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
      • 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
      • Added ratio and length field to relative lengths
      • Added x and y field to 2d alignments
      • Added paint, thickness, cap, join, dash, and miter-limit field to strokes
    • Accessor and utility methods
      • Added dedup method to arrays
      • Added pt, mm, cm, and inches method to lengths
      • Added deg and rad method to angles
      • Added kind, hex, rgba, cmyk, and luma method to colors
      • Added axis, start, end, and inv method to directions
      • Added axis and inv method to alignments
      • Added inv method to 2d alignments
      • Added start argument to enumerate method on arrays
    • Added color.mix function
    • Added mode and scope arguments to eval function
    • Added bytes type for holding large byte buffers
      • Added encoding argument to read function to read a file as bytes instead of a string
      • Added 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 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 argument to heading to control whether a heading becomes part of the PDF outline
    • Added caption-pos 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. 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 dependants may need fixing if they have the same bug that the CLI world had

Thanks to everyone who contributed to this release: @damaxwell, @bluebear94, @PgBiel, @Beiri22, @Dherse, @LaurenzV, @Mafii, @adriandelgado, @lolstork, @AlistairKeiller, @DVDTSB, @Enter-tainer, @EpicEricEE, @Liamolucko, @LingMan, @MDLC01, @Myriad-Dreamin, @StrangeGirlMurph, @T0mstone, @TheLukeGuy, @antonWetzel, @epbuennig, @jeffa5, @kg583, @lynn, @mattfbacon, @mavaddat, @neunenak, @pineapplehunter, @raphCode, @sitandr, @sudormrfbin, @tretre91.