Skip to content

Introduction to Typst

Typst is a modern typesetting engine designed as a simpler alternative to LaTeX. It features a clean syntax, built-in styling, and fast compilation.

Why Typst?

  • Faster than LaTeX — compiles in milliseconds
  • Clean syntax — no \begin{document} boilerplate
  • Built-in styling — headings, tables, figures are all first-class
  • Powerful scripting — variables, loops, functions, and more
  • Excellent typography — professional-quality output

Basic Typst Syntax

Text and Headings

typst
= Level 1 Heading
== Level 2 Heading
=== Level 3 Heading

This is a paragraph of text. Typst automatically handles line breaks and paragraph spacing.

Emphasis

typst
*italic text*
_bold text_

Lists

typst
- Unordered item 1
- Unordered item 2

+ Ordered item 1
+ Ordered item 2

Tables

typst
#table(
  columns: (auto, auto),
  [Name], [Grade],
  [Alice], [A],
  [Bob], [B+],
)

Images

typst
#image("assets/logo.png", width: 50%)

Math

typst
$E = mc^2$
$x^2 + y^2 = z^2$

Data Injection

In Better Reports, JSON data is injected into templates via sys.inputs:

typst
#let data = json.decode(sys.inputs.at("data"))

#let title = data.title
#let name = data.name
#let items = data.items

Resources

Design and Dev by David Lam