Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jakobjpeters/Typstry.jl
The Julia to Typst interface
https://github.com/jakobjpeters/Typstry.jl
julia julialang typesetting typst
Last synced: 6 days ago
JSON representation
The Julia to Typst interface
- Host: GitHub
- URL: https://github.com/jakobjpeters/Typstry.jl
- Owner: jakobjpeters
- License: mit
- Created: 2023-07-29T13:48:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-23T00:00:12.000Z (6 months ago)
- Last Synced: 2024-05-23T01:06:45.369Z (6 months ago)
- Topics: julia, julialang, typesetting, typst
- Language: Julia
- Homepage: https://jakobjpeters.github.io/Typstry.jl/
- Size: 2.69 MB
- Stars: 28
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: HISTORY.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-typst - Typstry.jl - The Julia to Typst interface (Integrations & Tools / Programming)
README
# Typstry.jl
[![Documentation Stable](https://img.shields.io/badge/Documentation-stable-blue.svg)](https://jakobjpeters.github.io/Typstry.jl/)
[![Documentation Development](https://img.shields.io/badge/Documentation-development-blue.svg)](https://jakobjpeters.github.io/Typstry.jl/development/)[![Continuous Integration Workflow](https://github.com/jakobjpeters/Typstry.jl/workflows/Continuous%20Integration/badge.svg)](https://github.com/jakobjpeters/Typstry.jl/actions/workflows/continuous_integration.yml)
[![Documentation Workflow](https://github.com/jakobjpeters/Typstry.jl/workflows/Documentation/badge.svg)](https://github.com/jakobjpeters/Typstry.jl/actions/workflows/documentation.yml)[![Codecov](https://codecov.io/gh/jakobjpeters/Typstry.jl/branch/main/graph/badge.svg?token=XFWU66WSD7)](https://codecov.io/gh/jakobjpeters/Typstry.jl)
[![Downloads Per Month](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fjuliapkgstats.com%2Fapi%2Fv1%2Fmonthly_downloads%2FTypstry&query=total_requests&suffix=%2Fmonth&label=Downloads)](https://juliapkgstats.com/pkg/Typstry)
[![Dependents](https://juliahub.com/docs/General/Typstry/stable/deps.svg)](https://juliahub.com/ui/Packages/General/Typstry?t=2)## Introduction
Typstry.jl is the interface to convert the computational power of Julia into beautifully formatted Typst documents.
### What is Typst?
Typst is an open-source and relatively new typesetting system (written in Rust 🦀🚀),
[designed to improve upon the performance and usability of LaTeX](https://typst.app/about).
See also the Typst [repository](https://github.com/typst/typst) and
[documentation](https://typst.app/docs) for examples and how to get started.## Installation
```julia-repl
julia> using Pkg: addjulia> add("Typstry")
julia> using Typstry
```## Showcase
```julia-repl
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);
```## Features
### Strings
- Print Julia values in Typst format
- Specify Julia settings and Typst parameters
- Implement formatting for custom types
- Construct Typst strings
- Interpolate formatted values### Commands
- Construct Typst commands
- Render documents using the Typst compiler
- Display in IJulia.jl, Pluto.jl, and QuartoRunner.jl notebooks
- Use the [JuliaMono](https://github.com/cormullion/juliamono) typeface### Planned
- 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
- Partial Julia to Typst transpilation
- ```
@typst(a * b) ==
TypstString(:(a * b)) ==
TypstString(TypstFunction(*, :a, :b)) ==
typst"$ a b $"
```## Similar Packages
### Typst
- [Labelyst.jl](https://github.com/emanuel-kopp/Labelyst.jl)
- [TypstGenerator.jl](https://github.com/onecalfman/TypstGenerator.jl)
- [TypstJlyFish.jl](https://github.com/andreasKroepelin/TypstJlyfish.jl)
- Interoperable with Typstry.jl
- [Typst_jll.jl](https://github.com/JuliaBinaryWrappers/Typst_jll.jl)
- Dependency of Typstry.jl### Typst and LaTeX
- [MakieTeX.jl](https://github.com/JuliaPlots/MakieTeX.jl)
- Dependent of Typstry.jl
- [SummaryTables.jl](https://github.com/PumasAI/SummaryTables.jl)### LaTeX
- [Latexify.jl](https://github.com/korsbo/Latexify.jl)
- [LaTeXEntities.jl](https://github.com/JuliaString/LaTeX_Entities.jl)
- [LaTeXStrings.jl](https://github.com/JuliaStrings/LaTeXStrings.jl)
- [LaTeXTabulars.jl](https://github.com/tpapp/LaTeXTabulars.jl)
- [LatexPrint.jl](https://github.com/scheinerman/LatexPrint.jl)
- [LibTeXPrintf.jl](https://github.com/JuliaStrings/LibTeXPrintf.jl)
- [MathJaxRenderer.jl](https://github.com/MichaelHatherly/MathJaxRenderer.jl)
- [MathTeXEngine.jl](https://github.com/Kolaru/MathTeXEngine.jl)
- [tectonic_jll.jl](https://github.com/JuliaBinaryWrappers/tectonic_jll.jl)