# Typst A modern, open-source markup-based typesetting system aimed at scientific and technical documents. Often described as a successor to [[LaTeX]]; keeps the high-quality output but replaces the legacy syntax and toolchain with something closer in feel to [[Markdown]] plus a real programming language. Created by Laurenz Mädje and Martin Haug (TU Berlin), open-sourced in 2023. Apache 2.0 license. ## Why it exists LaTeX is powerful but painful: cryptic syntax, slow recompiles, fragile package ecosystem, opaque error messages. Typst keeps the goal (beautiful, deterministic, semantic typesetting) and rebuilds the foundation: - **Readable markup** for prose; closer to Markdown than to TeX - **First-class scripting language** (Typst itself) for templates, computation, automation - **Incremental compilation** — millisecond rebuilds instead of multi-second LaTeX runs - **Clear errors** with line numbers and helpful messages - **No package soup** — most things are built-in or installed via the package manager ## How it works Source files use the `.typ` extension. Three syntactic modes inside a single file: | Mode | Purpose | Example | |---|---|---| | Markup | Prose, headings, emphasis | `= Heading`, `*bold*`, `_italic_` | | Math | Equations | `$ x^2 + y^2 = z^2
| | Code | Logic, variables, functions | `#let total = 1 + 2` | Documents compile to PDF, SVG, PNG, or HTML (HTML is experimental as of v0.13). ## Key features - **Math typesetting** rivaling LaTeX, with a much friendlier syntax - **Templates and styles** as functions — composable, parameterizable, reusable across projects - **Bibliography** via Hayagriva (Typst's native format) or BibLaTeX `.bib` files; CSL styles supported - **Cross-references, figures, tables, footnotes, citations** built-in - **Package manager** — Typst Universe (https://typst.app/universe) hosts community packages - **Web app** (https://typst.app) — collaborative editor à la Overleaf, free tier available - **Local CLI** — `typst compile`, `typst watch`, fully offline workflow - **Editor support** — official VS Code extension (Tinymist), Neovim, Emacs, Sublime, JetBrains, web app - **Pandoc support** — Pandoc can read and write Typst since v3.1 - **Quarto support** — [[Quarto]] uses Typst as a first-class PDF output format (alternative to LaTeX) ## Markup vs LaTeX, briefly ```typst = Introduction This is *bold* and _italic_. $ integral_0^1 x^2 dif x = 1/3 $ #figure( image("plot.png", width: 80%), caption: [A nice plot.], ) <fig:plot> See @fig:plot. ``` vs the LaTeX equivalent (`\section{}`, `\textbf{}`, `\begin{equation}`, `\begin{figure}`, `\label`, `\ref`, preamble setup, `\documentclass`, ...). ## When Typst makes sense - Scientific papers, theses, books where math, citations, and reproducibility matter - Long-form structured documents that benefit from a real programming model - Anywhere LaTeX is currently used out of inertia rather than necessity - Reports generated programmatically (CI pipelines, data-driven documents) ## When it doesn't (yet) - Submission to journals that mandate a specific LaTeX class (most still do) - Workflows requiring obscure LaTeX packages with no Typst equivalent - Heavy reliance on TikZ-style diagrams (Typst has CeTZ but the ecosystem is younger) - HTML output as the primary target — still experimental; [[Markdown]] + [[Pandoc]] or [[Quarto]] is more mature there ## Pricing - **Open-source compiler and CLI** — free, self-hostable, Apache 2.0 - **Typst.app web service** — free tier; paid plans for teams, private projects, larger storage ## References - Website: https://typst.app - Documentation: https://typst.app/docs - Tutorial: https://typst.app/docs/tutorial/ - Reference: https://typst.app/docs/reference/ - Source code: https://github.com/typst/typst - Package registry (Typst Universe): https://typst.app/universe - Blog: https://typst.app/blog - Community forum: https://forum.typst.app - Discord: https://discord.gg/2uDybryKPe - Comparison with LaTeX: https://typst.app/docs/guides/guide-for-latex-users/ - Pandoc Typst writer: https://pandoc.org/MANUAL.html#typst - Quarto + Typst: https://quarto.org/docs/output-formats/typst.html ## Related - [[LaTeX]] - [[Markdown]] - [[Pandoc]] - [[Quarto]]