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_typst(IOContext(stdout, :mode => code), true)
true
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`
- 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
- 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
- Standard Library
- Partial Julia to Typst transpilation
-
@typst(a * b) == TypstString(:(a * b)) == TypstString(TypstFunction(*, :a, :b)) == typst"(a b)"
-
- Labelyst.jl
- SummaryTables.jl
- TypstGenerator.jl
- TypstJlyFish.jl
- Interoperable with Typstry.jl
- Typst_jll.jl
- Dependency of Typstry.jl