Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/unpredictability/tex2typst-rs

A Rust library that converts TeX code to Typst code.
https://github.com/unpredictability/tex2typst-rs

convert converter formula latex math parser rust typst

Last synced: about 11 hours ago
JSON representation

A Rust library that converts TeX code to Typst code.

Awesome Lists containing this project

README

        

# tex2typst-rs
A Rust library that converts TeX code to Typst code.


Crate


Documentation

# Aim of this project

There exist some other libraries that convert LaTeX (especially LaTeX math) to other languages.
However, the result may not be visually pleasing or easy to read.
This project aims to convert LaTeX to idiomatic Typst code, which can be very easily read and edited.

For comparison, for this LaTeX input:

```latex
\overrightarrow{P M}=(3-x-y) \overrightarrow{P A}+x \overrightarrow{P B}+(y-2) \overrightarrow{P C}
```

[`mitex`](https://crates.io/crates/mitex) gives the output:

```typst
arrow(P M )= \(3 - x - y \) arrow(P A )+ x arrow(P B )+ \(y - 2 \) arrow(P C )
```

`tex2typst-rs` gives the output:

```typst
arrow(P M) =(3 - x - y) arrow(P A) + x arrow(P B) +(y - 2) arrow(P C)
```

# Usage

See the [documentation](https://docs.rs/tex2typst-rs) for more details.

```Rust
use tex2typst_rs::tex2typst;
use tex2typst_rs::text_and_tex2typst;

fn main() {
let tex = r"\widehat{f}(\xi)=\int_{-\infty}^{\infty} f(x) e^{-i 2 \pi \xi x} d x, \quad \forall \xi \in \mathbb{R}";
println!("{}", tex2typst(tex).unwrap());

let mixed = r"some text and some formula: \(\frac{1}{2}\)";
println!("{}", text_and_tex2typst(mixed).unwrap());
}
```

Output:

```typst
hat(f)(xi) = int_(- infty)^infty f(x) e^(- i 2 pi xi x) d x, quad forall xi in RR
some text and some formula: $1/2$
```

# Acknowledgements

Took inspiration from [tex2typst](https://github.com/qwinsi/tex2typst).