Typstry.jl is the interface to convert the computational power of Julia into beautifully formatted Typst documents.
Typst is an open-source and relatively new typesetting system (written in Rust 🦀🚀), designed to improve upon the performance and usability of LaTeX. See also the Typst repository and documentation for examples and how to get started.
julia> using Pkg: add
julia> add("Typstry")
julia> using Typstry
julia> show(stdout, "text/typst", Typst([true 1; 1.0 [Any[true 1; 1.0 nothing]]]))
$mat(
"true", 1;
1.0, mat(
"true", 1;
1.0, #none
)
)$
julia> TypstString(1 // 2; block = true)
typst"$ 1 / 2 $"
julia> typst"$ \(1 + 2im; mode = math) $"
typst"$ (1 + 2i) $"
julia> TypstCommand(["help"])
typst`help`
julia> typst`compile input.typ output.pdf`
typst`compile input.typ output.pdf`
julia> render(1:4);
- Print Julia values in Typst format
- Specify Julia settings and Typst parameters
- Implement formatting for custom types
- Construct Typst strings
- Interpolate formatted values
- Construct Typst commands
- Render documents using the Typst compiler
- Display in IJulia.jl, Pluto.jl, and QuartoRunner.jl notebooks
- Use the JuliaMono typeface
- Seperate the choice of Typst representation from the
mode
- Default
auto::Mode
?- Automatically determine the Typst syntactic context
- Use a tree-sitter grammar or jll package
- Implement Typst formatting for more types
Base
AbstractDict
AbstractIrrational
AbstractSet
Enum
Mode
Expr
Symbol
- Package extensions
- Standard Library
- LinearAlgebra.jl
- DataFrames.jl
- Standard Library
- Partial Julia to Typst transpilation
-
@typst(a * b) == TypstString(:(a * b)) == TypstString(TypstFunction(*, :a, :b)) == typst"$ a b $"
-
- Labelyst.jl
- TypstGenerator.jl
- TypstJlyFish.jl
- Interoperable with Typstry.jl
- Typst_jll.jl
- Dependency of Typstry.jl
- MakieTeX.jl
- Dependent of Typstry.jl
- SummaryTables.jl