Aquí hi ha 19 versions de Typst, des de 11 d’abril del 2023 fins a l’actual, 0.15.1. Cadascuna enllaça amb els instal·ladors del mateix desenvolupador.
19 versions en 3 anys · unes 5,8 per any
| Versió | Data | Mida | Fitxers |
|---|---|---|---|
| 0.15.1Darrera versió | 17 de juliol del 2026 | — | 64 bits ZIPARM64 ZIP Notes de la versióLibrary
Text
- Updated New Computer Modern fonts to version 8.1.1, fixing a bug where the regular weight of the math font was still using the old calligraphic letterforms that were supposed to live in stylistic set 6
Math
- Fixed a regression where alignment points did not work correctly when placed within lr / matched delimiters
- Fixed a regression where op elements could be vertically misaligned
Layout
- Fixed a bug where gaps could appear in multi-page lists with number-align / marker-align set to an alignment with a vertical component
Export
SVG
- Fixed that inline SVGs resulting from html.frame elements did not respect pretty printing
Bundle
- In the watch server, the automatic selection of appropriate Content-Type headers based on file extensions was expanded to include more commonly used file types (e.g. json files)
- The error for PNG/SVG documents with multiple pages is now only raised if it persists until the final document iteration
Command Line Interface
- The typst eval subcommand will now exit with code 1 when the provided expression fails to evaluate
Contributors
Thanks to everyone who contributed to this release: @Marcono1234, @mkorje, @DevlinNul, @Hyperrick, @Lege19, @cady-b, @e345ee, @saecki. |
| 0.15.0 | 15 de juny del 2026 | — | 64 bits ZIPARM64 ZIP |
| 0.14.2 | 12 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versióSecurity
- Updated the WebAssembly runtime used for executing plugins. The version used in Typst 0.14.0 and 0.14.1 suffers from a memory handling vulnerability. Based on our investigation, the vulnerability would be very hard to exploit in practice, but an exploit could theoretically be feasible. In any case, we recommend upgrading to Typst 0.14.2. This holds in particular for local users. In the web app, the bug is not critical as the browser offers an extra layer of protection.
Typst 0.13.1 and below are not affected by this vulnerability.
Technical details: The wasmi WebAssembly runtime versions used in 0.14.0 and 0.14.1 have a use-after-free memory handling bug in certain memory growth situations. Specifically, the bug occurs when the plugin tries to grow its memory, but allocating the requested amount of memory fails. Based on our investigation, the bug is hard to trigger in practice as the WebAssembly linear memory is always limited to 4GB on a technical level and modern operating systems rarely fail to serve a 4GB memory allocation request (typically not even under RAM pressure). Once the bug is triggered, it would also still be very challenging to turn it into an actual exploit. Regardless, we recommend upgrading to Typst 0.14.2 for protection against a potential exploit.
Diagnostics
- Added a hint when array.sorted fails because a pair of elements could not be compared. This hint aids with fixing bugs in user code that were surfaced by a change in internal sorting behavior in Typst 0.14.1.
Contributors
Thanks to everyone who contributed to this release: @Andrew15-5, @cady-b, @ecstrema, @saecki, @ultimatile. |
| 0.14.1 | 3 de desembre del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versióPDF export
- Fixed regression where links to labelled elements would sometimes not work correctly
- Fixed bug where PDF text attributes could be written incorrectly
- Fixed crash in link handling
- Fixed crash for zero-sized pages
- Fixed crash when a table vline or hline has an out-of-bounds index
- Fixed crash in formatting of font-related PDF export errors
- Fixed crash when a footnote or place element was queried and reinserted into the document
- Fixed crash for PNGs with invalid metadata
- Fixed bug where text in SVGs with fill-and-stroke paint order could be exported incorrectly
- Fixed bug with layer isolation in SVGs where blending/masking is used
- Fixed that table headers could be tagged incorrectly in some scenarios
- Fixed issues where generated PDFs could differ between 32-bit and 64-bit systems
- Upgraded JPEG decoder used during PDF export for improved compatibility, fixing a case where a valid JPEG was rejected
- A PDF document information dictionary that would be empty is now fully omitted instead
- A rare crash in PDF tagging was turned into a compiler error
HTML export
- Fixed export of table headers and footers with gutter
- A page set rule in HTML export is now a warning instead of a hard error, in line with how unsupported elements are generally treated
Math
- Fixed regression where arrow.l.r could not be used as an accent anymore
- Fixed that single-letter strings did not react to spaces around them like multi-letter strings do
- Fixed that spacing around mat and vec with a fence delimiter was whitespace-dependent
- Fixed height calculation for horizontally stretched glyphs
Model
- Fixed regression where Typst would error in heading numbering functions that don't handle the counter state (0,). This can occur in the first layout iteration. Such errors are usually automatically caught by Typst, which was not the case here.
Text
- Fixed regression where Typst would synthesize superscripts for some fonts even when typographic glyphs were available
- Fixed regression where some oblique fonts would be classified as italic
Scripting
- Fixed crash due to violated invariants in array.sorted
- Fixed crashes due to overflow in calc.rem, calc.rem-euclid, calc.div-euclid, calc.quo, and calc.gcd
- Upgraded WebAssembly runtime, fixing a bug that plugins could run into
Command Line Interface
- Compiling to standard output in combination with --deps --deps-format=make (which results in an error) will not produce an empty Make dependency file as a side effect anymore
Development
- Increased minimum supported Rust version to 1.89
Contributors
Thanks to everyone who contributed to this release: @saecki, @YDX-2147483647, @Andrew15-5, @MDLC01, @mkorje, @PgBiel, @Ri-Nai, @T0mstone, @andylizi, @bountonw, @fidelity-michael, @isuffix, @iwkjosec, @pavelzw, @tjjfvi, @tovrstra. |
| 0.14.0 | 24 d’octubre del 2025 | — | 64 bits ZIPARM64 ZIP |
| 0.13.1 | 7 de març del 2025 | — | 64 bits ZIPARM64 ZIP Notes de la versióCommand Line Interface
- Fixed high CPU usage for typst watch on Linux. Depending on the project size, CPU usage would spike for varying amounts of time. This bug appeared with 0.13.0 due to a behavioral change in the inotify file watching backend.
HTML export
- Fixed export of tables with gutters
- Fixed usage of <html> and <body> element within context
- Fixed querying of metadata next to <html> and <body> element
Visualization
- Fixed curves with multiple non-closed components
Introspection
- Fixed a regression where labelled symbols could not be queried by label
Deprecations
- Fixed false positives in deprecation warnings for type/str comparisons
Contributors
Thanks to everyone who contributed to this release: @7ijme, @Andrew15-5, @Emm54321, @F2011, @MDLC01, @PgBiel, @SharzyL, @aodenis. |
| 0.13.0 | 19 de febrer del 2025 | — | 64 bits ZIPARM64 ZIP |
| 0.12.0 | 18 d’octubre del 2024 | — | 64 bits ZIPARM64 ZIP Notes de la versióHighlights
- Added support for multi-column floating placement and figures
- Added support for automatic line numbering (often used in academic papers)
- Typst's layout engine is now multithreaded. Typical speedups are 2-3x for larger documents. The multithreading operates on page break boundaries, so explicit page breaks are necessary for it to kick in.
- Paragraph justification was optimized with a new two-pass algorithm. Speedups are larger for shorter paragraphs and go up to 6x.
- Highly reduced PDF file sizes due to better font subsetting (thanks to @LaurenzV)
- Emoji are now exported properly in PDF
- Added initial support for PDF/A. For now, only the PDF/A-2b profile is supported, but more is planned for the future.
- Added various options for configuring the CLI's environment (fonts, package paths, etc.)
- Text show rules now match across multiple text elements
- Block-level equations can now optionally break over multiple pages
- Fixed a bug where some fonts would not print correctly on professional printers
- Fixed a long-standing bug which could cause headings to be orphaned at the bottom of the page
Layout
- Added support for multi-column floating placement and figures via 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).
- Added support for automatic line numbering (often used in academic papers)
- Added par.spacing property for configuring paragraph spacing. This should now be used instead of show par: set block(spacing: ..) (Breaking change)
- Block-level elements like lists, grids, and stacks now show themselves as blocks and are thus affected by all block properties (e.g. stroke) rather than just spacing (Breaking change)
- Added block.sticky property which prevents a page break after a block
- Added place.flush function which forces all floating figures to be placed before any further content
- Added skew function
- Added 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)
- Added gap and justify parameters to repeat function
- Added width and height parameters to the measure function to define the space in which the content should be measured. Especially useful in combination with layout.
- The height of a block, image, rect, square, ellipse, or circle can now be specified in fractional units
- The scale function now supports absolute lengths for x, y, factor. This way an element of unknown size can be scaled to a fixed size.
- The values of block.above and block.below can now be retrieved in context expressions.
- Increased accuracy of conversions between absolute units (pt, mm, cm, in)
- Fixed a bug which could cause headings to be orphaned at the bottom of the page
- Fixed footnotes within breakable blocks appearing on the page where the breakable block ends instead of at the page where the footnote marker is
- Fixed numbering of nested footnotes and footnotes in floats
- Fixed empty pages appearing when a context expression wraps whole pages
- Fixed set block(spacing: x) behaving differently from set block(above: x, below: x)
- Fixed behavior of rotate and scale with reflow: true
- Fixed interaction of align(horizon) and v(1fr)
- Fixed various bugs where floating placement would yield overlapping results
- Fixed a bug where widow/orphan prevention would unnecessarily move text into the next column
- Fixed weak spacing not being trimmed at the start and end of lines in a paragraph (only at the start and end of paragraphs)
- Fixed interaction of weak page break and pagebreak.to
- Fixed compilation output of a single weak page break
- Fixed crash when padding by 100%
Text
- Tuned hyphenation: It is less eager by default and hyphenations close to the edges of words are now discouraged more strongly (May lead to larger layout reflows)
- New default font: Libertinus Serif. This is the maintained successor to t |
| 0.11.1 | 17 de maig del 2024 | — | 64 bits ZIP Notes de la versió- Security- Fixed a vulnerability where image files at known paths could be embedded into the PDF even if they were outside of the project directory
- Bibliography- Fixed et-al handling in subsequent citations
- Fixed suppression of title for citations and bibliography references with no author
- Fixed handling of initials in citation styles without a delimiter
- Fixed bug with citations in footnotes
- Text and Layout- Fixed interaction of first-line-indent and outline
- Fixed compression of CJK punctuation marks at line start and end
- Fixed handling of rectangles with negative dimensions
- Fixed layout of path in explicitly sized container
- Fixed broken raw text in right-to-left paragraphs
- Fixed tab rendering in raw text with language typ or typc
- Fixed highlighting of multi-line raw text enclosed by single backticks
- Fixed indentation of overflowing lines in raw blocks
- Fixed extra space when raw text ends with a backtick
- Math- Fixed broken equations in right-to-left paragraphs
- Fixed missing blackboard bold letters
- Fixed error on empty arguments in 2D math argument list
- Fixed stretching via mid for various characters
- Fixed that alignment points in equations were affected by set align(..)
- Export- Fixed smart quotes in PDF outline
- Fixed patterns with spacing in PDF
- Fixed wrong PDF page labels when page numbering was disabled after being previously enabled
- Scripting- Fixed overflow for large numbers in external data files (by converting to floats instead)
- Fixed str.trim(regex, at: end) when the whole string is matched
- Miscellaneous- Fixed deformed strokes for specific shapes and thicknesses
- Fixed newline handling in code mode: There can now be comments within chained method calls and between an if branch and the else keyword
- Fixed inefficiency with incremental reparsing
- Fixed autocompletions for relative file imports
- Fixed crash in autocompletion handler
- Fixed a bug where the path and entrypoint printed by typst init were not properly escaped
- Fixed various documentation errors
Thanks to everyone who contributed to this release: @Leedehai, @elegaanz, @frozolotl, @A-Walrus, @MDLC01, @Myriad-Dreamin, @3w36zj6, @Enter-tainer, @EpicEricEE, @Jocs, @PgBiel, @QuarticCat, @Tom4sCruz, @bluebear94, @etiennecollin, @gabriel-araujjo, @joserlopes, @rikhuijzer, @wrzian. |
| 0.11.0 | 15 de març del 2024 | — | 64 bits ZIP Notes de la versióView changelog with more links on typst.app- Tables (thanks to @PgBiel)
- Tables are now much more flexible, read the new table guide to get started
- Added table.cell element for per-cell configuration
- Cells can now span multiple columns or rows
- The stroke of individual cells can now be customized
- The align and inset arguments of the table function now also take (x, y) => .. functions
- Added table.hline and table.vline for convenient line customization
- Added table.header element for table headers that repeat on every page
- Added table.footer element for table footers that repeat on every page
- All the new table functionality is also available for grids
- Fixed gutter-related bugs
- Templates
- You can now use template packages to get started with new projects. Click Start from template on the web app's dashboard and choose your preferred template or run the typst init <template> command in the CLI. You can browse the available templates here.
- Switching templates after the fact has become easier. You can just import a styling function from a different template package.
- Package authors can now submit their own templates to the package repository. Share a template for a paper, your institution, or an original work to help the community get a head start on their projects.
- Templates and packages are now organized by category and discipline. Filter packages by either taxonomy in the Start from template wizard. If you are a package author, take a look at the new documentation for categories and disciplines.
- Context
- Added context expressions: Read the chapter on context to get started
- With context, you can access settable properties, e.g. context text.lang to access the language set via set text(lang: "..")
- The following existing functions have been made contextual: query, locate, measure, counter.display, counter.at, counter.final, state.at, and state.final
- Added contextual methods counter.get and state.get to retrieve the value of a counter or state in the current context
- Added contextual function here to retrieve the location of the current context
- The locate function now returns the location of a selector's unique match. Its old behavior has been replaced by context expressions and only remains temporarily available for compatibility.
- The counter.at and state.at methods are now more flexible: They directly accept any kind of locatable selector with a unique match (e.g. a label) instead of just locations
- When context is available, counter.display now directly returns the result of applying the numbering instead of yielding opaque content. It should not be used anymore without context. (Deprecation planned)
- The state.display function should not be used anymore, use state.get instead (Deprecation planned)
- The location argument of query, counter.final, and state.final should not be used anymore (Deprecation planned)
- The styles argument of the measure function should not be used anymore (Deprecation planned)
- The style function should not be used anymore, use context instead (Deprecation planned)
- The correct context is now also provided in various other places where it is available, e.g. in show rules, layout callbacks, and numbering functions in the outline
- Styling
- Fixed priority of multiple show-set rules: They now apply in the same order as normal set rules would
- Show-set rules on the same element (e.g. show heading.where(level: 1): set heading(numbering: "1.")) now work properly
- Setting properties on an element within a transformational show rule (e.g. show heading: it => { set heading(..); it }) is not supported anymore (previously it also only worked sometimes); use show-set rules instead (Breaking change)
- Text show rules that match their own output now work properly (e.g. show "cmd": `cmd`)
- The elements passed to show rules and returned by queries now contain all fields of their respective element functions rather than just specific ones
- All settable properties can now b |
| 0.10.0 | 4 de desembre del 2023 | — | 64 bits ZIP Notes de la versió- Bibliography management
- Added support for citation collapsing (e.g. [1]-[3] instead of [1], [2], [3]) if requested by a CSL style
- Fixed bug where an additional space would appear after a group of citations
- Fixed link show rules for links in the bibliography
- Fixed show-set rules on citations
- Fixed bibliography-related crashes that happened on some systems
- Corrected name of the GB/T 7714 family of styles from 7114 to 7714
- Fixed missing title in some bibliography styles
- Fixed printing of volumes in some styles
- Fixed delimiter order for contributors in some styles (e.g. APA)
- Fixed behavior of alphanumeric style
- Fixed multiple bugs with GB/T 7714 style
- Fixed escaping in Hayagriva values
- Fixed crashes with empty dates in Hayagriva files
- Fixed bug with spacing around math blocks
- Fixed title case formatting after verbatim text and apostrophes
- Page ranges in .bib files can now be arbitrary strings
- Multi-line values in .bib files are now parsed correctly
- Entry keys in .bib files now allow more characters
- Fixed error message for empty dates in .bib files
- Added support for years of lengths other than 4 without leading zeros in .bib files
- More LaTeX commands (e.g. for quotes) are now respected in .bib files
- Visualization
- Added support for patterns as fills and strokes
- The alpha parameter of the components function on colors is now a named parameter (Breaking change)
- Added support for the Oklch color space
- Improved conversions between colors in different color spaces
- Removed restrictions on Oklab chroma component
- Fixed clipping on blocks and boxes without a stroke
- Fixed bug with gradients on math
- Fixed bug with gradient rotation on text
- Fixed bug with gradient colors in PDF
- Fixed relative base of Oklab chroma ratios
- Fixed Oklab color negation
- Text and Layout
- CJK text can now be emphasized with the * and _ syntax even when there are no spaces
- Added basic i18n for Greek and Estonian
- Improved default figure caption separator for Chinese, French, and Russian
- Changed default figure supplement for Russian to short form
- Fixed CJK-Latin-spacing before line breaks and in locate calls
- Fixed line breaking at the end of links
- Math
- Added mid function for scaling a delimiter up to the height of the surrounding lr group
- The op function can now take any content, not just strings
- Improved documentation for math alignment
- Fixed swallowing of trailing comma when a symbol is used in a function-like way (e.g. pi(a,b,))
- Scripting
- Any non-identifier dictionary key is now interpreted as an expression: For instance, ((key): value) will create a dictionary with a dynamic key
- The stroke type now has a constructor that converts a value to a stroke or creates one from its parts
- Added constructor for arguments type
- Added calc.div-euclid and calc.rem-euclid functions
- Fixed equality of arguments
- Fixed repr of cmyk colors
- Fixed crashes with provided elements like figure captions, outline entries, and footnote entries
- Tooling and Diagnostics
- Show rules that match on their own output now produce an appropriate error message instead of a crash (this is a first step, in the future they will just work)
- Too highly or infinitely nested layouts now produce error messages instead of crashes
- Added hints for invalid identifiers
- Added hint when trying to use a manually constructed footnote or outline entry
- Added missing details to autocompletions for types
- Improved error message when passing a named argument where a positional one is expected
- Jump from click now works on raw blocks
- Export
- PDF compilation output is now again fully byte-by-byte reproducible if the document's date is set manually
- Fixed color export in SVG
- Fixed PDF metadata encoding of multiple authors
- Command line interface
- Fixed a major bug where typst watch would confuse files and fail to pick up updates
- Fetching of the release metadata in typst update now respects proxies
- Fixed b |
| 0.9.0 | 31 d’octubre del 2023 | — | 64 bits ZIP Notes de la versió- Bibliography management
- New bibliography engine based on CSL (Citation Style Language).
Ships with about 100 commonly used citation styles and can load custom .csl files
- Added new form argument to the cite function to produce different forms of citations (e.g. for producing a citation suitable for inclusion in prose)
- The cite function now takes only a single label/key instead of allowing multiple.
Adjacent citations are merged and formatted according to the citation style's rules automatically.
This works both with the reference syntax and explicit calls to the cite function. (Breaking change)
- The cite function now takes a label instead of a string (Breaking change)
- Added full argument to bibliography function to print the full bibliography even if not all works were cited
- Bibliography entries can now contain Typst equations (wrapped in $..$ just like in markup), this works both for .yml and .bib bibliographies
- The hayagriva YAML format was improved.
See its changelog for more details. (Breaking change)
- A few bugs with .bib file parsing were fixed
- Removed brackets argument of cite function in favor of form
- Visualization
- Gradients and colors (thanks to @Dherse)
- Added support for gradients on shapes and text
- Supports linear, radial, and conic gradients
- Added support for defining colors in more color spaces, including Oklab, Linear RGB(A), HSL, and HSV
- Added saturate, desaturate, and rotate functions on colors
- Added color.map module with predefined color maps that can be used with gradients
- Rename kind function on colors to space
- Removed to-rgba, to-cmyk, and to-luma functions in favor of a new components function
- Improved rendering of rectangles with corner radius and varying stroke widths
- Added support for properly clipping boxes and blocks with a border radius
- Added background parameter to overline, underline, and strike functions
- Fixed inaccurate color embedding in PDFs
- Fixed ICC profile handling for images embedded in PDFs
- Text and Layout
- Added support for automatically adding proper pacing between CJK and Latin text (enabled by default)
- Added support for automatic adjustment of more CJK punctuation
- Added quote element for inserting inline and block quotes with optional attributions
- Added raw.line element for customizing the display of individual lines of raw text, e.g. to add line numbers while keeping proper syntax highlighting
- Added support for per-side inset customization to table function
- Added Hungarian and Romanian translations
- Added support for Czech hyphenation
- Added support for setting custom smart quotes
- The default figure separator now reacts to the currently set language and region
- Improved line breaking of links / URLs (especially helpful for bibliographies with many URLs)
- Improved handling of consecutive hyphens in justification algorithm
- Fixed interaction of justification and hanging indent
- Fixed a bug with line breaking of short lines without spaces when justification is enabled
- Fixed font fallback for hyphen generated by hyphenation
- Fixed handling of word joiner and other no-break characters during hyphenation
- Fixed crash when hyphenating after an empty line
- Fixed line breaking of composite emoji like 🏳️🌈
- Fixed missing text in some SVGs
- Fixed font fallback in SVGs
- Fixed behaviour of to argument on pagebreak function
- Fixed set align(..) for equations
- Fixed spacing around placed elements
- Fixed coalescing of above and below spacing if given in em units and the font sizes differ
- Fixed handling of extent parameter of underline, overline, and strike functions
- Fixed crash for floating placed elements with no specified vertical alignment
- Partially fixed a bug with citations in footnotes
- Math
- Added gap argument for vec, mat, and cases function
- Added size argument for abs, norm, floor, ceil, and round functions
- Added reverse parameter to cases function
- Added support for multinomial coefficients to binom |
| 0.8.0 | 13 de setembre del 2023 | — | 64 bits ZIP Notes de la versió- Scripting
- Plugins (thanks to @astrale-sharp and @arnaudgolfouse)
- Typst can now load plugins that are compiled to WebAssembly
- Anything that can be compiled to WebAssembly can thus be loaded as a plugin
- These plugins are fully encapsulated (no access to file system or network)
- Plugins can be shipped as part of packages
- Plugins work just the same in the web app
- Types are now first-class values (Breaking change)
- A type is now itself a value
- Some types can be called like functions (those that have a constructor), e.g. int and str
- Type checks are now of the form type(10) == int instead of the old type(10) == "integer".
Compatibility with the old way will remain for a while to give package authors time to upgrade, but it will be removed at some point.
- Methods are now syntax sugar for calling a function scoped to a type, meaning that "hello".len() is equivalent to str.len("hello")
- Added support for import renaming with as
- Added a duration type
- Added support for CBOR encoding and decoding
- Added encoding and decoding functions from and to bytes for data formats: json.decode, json.encode, and similar functions for other formats
- Added array.intersperse function
- Added str.rev function
- Added calc.tau constant
- Made bytes joinable and addable
- Made array.zip function variadic
- Fixed bug with eval when the mode was set to "math"
- Fixed bug with ends-with function on strings
- Fixed bug with destructuring in combination with break, continue, and return
- Fixed argument types of hyperbolic functions, they don't allow angles anymore (Breaking change)
- Renamed some color methods: rgba becomes to-rgba, cmyk becomes to-cmyk, and luma becomes to-luma (Breaking change)
- Export
- Added SVG export (thanks to @Enter-tainer)
- Fixed bugs with PDF font embedding
- Added support for page labels that reflect the page numbering style in the PDF
- Text and Layout
- Added highlight function for highlighting text with a background color
- Added polygon.regular function for drawing a regular polygon
- Added support for tabs in raw elements alongside tab-width parameter
- The layout engine now tries to prevent "runts" (final lines consisting of just a single word)
- Added Finnish translations
- Added hyphenation support for Polish
- Improved handling of consecutive smart quotes of different kinds
- Fixed vertical alignments for number-align argument on page function (Breaking change)
- Fixed weak pagebreaks after counter updates
- Fixed missing text in SVG when the text font is set to "New Computer Modern"
- Fixed translations for Chinese
- Fixed crash for empty text in show rule
- Fixed leading spaces when there's a linebreak after a number and a comma
- Fixed placement of floating elements in columns and other containers
- Fixed sizing of block containing just a single box
- Math
- Added support for augmented matrices
- Removed support for automatic matching of fences like | and || as there were too many false positives.
You can use functions like abs or norm or an explicit lr call instead. (Breaking change)
- Fixed spacing after number with decimal point in math
- Fixed bug with primes in subscript
- Fixed weak spacing
- Fixed crash when text within math contains a newline
- Tooling and Diagnostics
- Added hints when trying to call a function stored in a dictionary without extra parentheses
- Fixed hint when referencing an equation without numbering
- Added more details to some diagnostics (e.g. when SVG decoding fails)
- Command line interface
- Added typst update command for self-updating the CLI (thanks to @jimvdl)
- Added download progress indicator for packages and updates
- Added --format argument to explicitly specify the output format
- The CLI now respects proxy configuration through environment variables and has a new --cert option for setting a custom CA certificate
- Fixed crash when field wasn't present and --one is passed to typst query
- Miscellaneous Improvements
- Added page setup guide
- Added figur |
| 0.7.0 | 7 d’agost del 2023 | — | 64 bits ZIP Notes de la versió- 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
- 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 |
| 0.6.0 | 30 de juny del 2023 | — | 64 bits ZIP Notes de la versióPackage Management
- Typst now has built-in package management
- You can import published community packages or create and use system-local 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 conditionally depending on whether the equation is set in display or 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 and overlines in math mode
- Fixed usage of limits function in show rules
- Fixed bugs with line breaks in equations
Text and Layout
- Added support for alternating page margins with the inside and outside keys
- Added support for specifying the page binding
- Added 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
- 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
- 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 to customize outline entries with show rules
- Added some hints for error messages
- Added some missing syntaxes for raw highlighting
- Improved rendering of rotated images in PNG export and web app
- Made footnotes reusable and referenceable
- Fixed bug with citations and bibliographies in locate
- Fixed inconsistent tense in documentation
Development
- Added contribution guide
- Reworked World interface to accommodate for package management and make it a bit simpler to implement (Breaking change for implementors) |
| 0.5.0 | 9 de juny del 2023 | — | 64 bits ZIP Notes de la versióText and Layout
- Added raw syntax highlighting for many more languages
- Added support for Korean numbering
- Added basic i18n for a few more languages (NL, SV, DA)
- Improved linebreaking for East Asian languages
- Expanded functionality of outline indent property
- Fixed footnotes in columns
- Fixed page breaking bugs with footnotes
- 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 elements
Math
- Breaking change: The syntax rules for mathematical attachments 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 commands for math (e.g., display)
- Added supplement parameter to equation, used by references
- New symbols: 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 function
Scripting
- Added new datetime type and datetime.today() to retrieve the current date
- Added str.from-unicode and str.to-unicode functions
- Added fields method on content
- Added base parameter to str function
- Added calc.exp and calc.ln
- Improved accuracy of calc.pow and calc.log for specific bases
- Fixed removal order for dictionary
- Fixed .at(default: ..) for strings and content
- 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
- Fixed bugs with reference supplements
- Fixed Nix flake |
| 0.4.0 | 20 de maig del 2023 | — | 64 bits ZIP Notes de la versióFootnotes
- Implemented support for footnotes
- The footnote function inserts a footnote
- The footnote.entry function can be used to customize the footnote listing
- The "chicago-notes" citation style is now available
Documentation
- Added a 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 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 alignment
- Fixed spacing on decorated elements (e.g., spacing around a canceled operator)
- Fixed styling for stretchable symbols
- Added tack.r.double, tack.l.double, dotless.i and dotless.j symbols
- 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 function, for instance, is part of the assert function's scope. Note that function scopes are currently only available for built-in functions.
- Added assert.eq and assert.ne functions for simpler equality and inequality assertions with more helpful error messages
- Exposed list, enum, and term list items in their respective functions' scope
- The at methods on strings, arrays, dictionaries, and content now support specifying a default value
- Added support for passing a function to replace that is called with each match.
- Fixed replacement 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 or float fails
Text and Layout
- Implemented sophisticated CJK punctuation adjustment
- Disabled overhang for CJK punctuation
- Added basic translations for Traditional Chinese
- Fixed alignment 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 and fill per column
- Fixed automatic figure kind detection
- Made alignment of enum numbers 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 t |
| 0.3.0 | 26 d’abril del 2023 | — | 64 bits ZIP Notes de la versió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 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. This is now handled through flexible selectors combinator methods
- Added support for attachments (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 (configurable caps, joins, and dash patterns)
- Added cancel function for equations
- Added support for destructuring in argument lists and assignments
- Added alt text argument to image function
- Added toml function for loading data from a TOML file
- Added zip, sum, and product methods for arrays
- Added fact, perm, binom, gcd, lcm, atan2, quo, trunc, and fract calculation
Improvements
- Text in SVGs now displays properly
- Typst now generates a PDF heading outline
- References 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 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
- 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 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 subset with --subtest
- Tests now run on multiple threads |
| 0.2.0 | 11 d’abril del 2023 | — | 64 bits ZIP Notes de la versióBreaking changes:
- Removed support for iterating over index and value in for loops. This is now handled via unpacking and enumerating. Same goes for the map() method.
- Dictionaries now iterate in insertion order instead of alphabetical order.
New features
- Added unpacking syntax for let bindings, which allows things like let (1, 2) = array
- Added enumerate() method
- Added path function for drawing Bézier paths
- Added layout function to access the size of the surrounding page or container
- Added key parameter to 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
- Fixed bug where math could not be hidden with hide
- Fixed sizing issues with box, block, and shapes
- Fixed some translations
- Fixed inversion of "R" in cal and frak styles
- Fixed some styling issues in math
- Fixed supplements of references to headings
- Fixed syntax highlighting of identifiers in certain scenarios
- Ratios can now be multiplied with more types and be converted to floats with the float function |