2025-07-24 –, Main Room 2
Typst is an open-source and relatively new typesetting system, designed to improve upon the performance and usability of LaTeX. Typstry.jl was inspired by LaTeXStrings.jl and Latexify.jl, implementing similar features and expanding upon them for Typst. This package implements Typst strings, formatting, and commands. Together, these provide a robust system to write and generate Typst code, run the Typst command-line interface, and render Julia values.
Typst is a powerful and easy-to-learn typesetting system. Since its release of version 0.1.0 in April of 2023, it has earned over 37,000 stars on GitHub and is, anecdotaly, well on its way to becoming as powerful as LaTeX. Typst supports exporting to PDF, PNG, and SVG, with HTML being a focus of active development. It provides incremental compilation to improve performance, a simple markup and intuitive mathematical syntax, an integrated scripting language, and friendly error messages.
Typstry.jl is the interface to write, generate, and render Typst from Julia. It provides a custom string and corresponding macro to facilitate writing Typst code. Further, it implements configurable formatting of Julia values, which may be extended for custom types. This Typst string is integrated with the formatting capabilities such that Julia values may be formatted directly by the string constructor and through interpolation within the string macro. The Typst command-line interface can also be ran through the use of a custom command and corresponding macro. These features are composed to enable rendering Julia values with a single function call. Several packages are interoperable with Typstry.jl, improving the ability to render Julia values within notebooks, Makie.jl plots, and even Typst source code.
The current use of Typst within the Julia ecosystem is relatively small, but has a promising and exciting future. Future work includes improving Typst support in packages and implementing formatting for additional types, including partial Julia-to-Typst transpilation.
Jakob is a software developer based in Portland, Oregon who loves programming in Julia, Rust, and Typst. They have registered three Julia packages, are attending JuliaCon for the third time, is an organizer with Julia Gender Inclusive, and is the administrator of the Humans of Julia Discord server. When Jakob is away-from-keyboard, they enjoy watching movies, training for triathlons, and trying new vegan foods.