Typst is awesome


I’ve been a long-time LaTeX user since the age of 16. LaTeX caught my eye as a unique way of typesetting beautiful documents with a consistent, professional style. There’s no doubt why it became popular, it has a clear focus on content over formatting, and is excellent for complex content in the field of mathematics, physics and engineering.

LaTeX was initially created in the 1980s, and this age begun to show in the modern era. Creating a document supporting modern features often requires an unruly amount of imports - heck, even importing an image requires the inclusion of \usepackage{graphicx}, which almost every document will require. Even simple syntax is often unnecessarily verbose: for example, bold text requires wrapping the text \textbf{as such}, compared to Markdown using **two asterisks**.

Typst overcomes these obstacles by providing much more sensible defaults. Bullet points are instantiated simply by prepending a dash (-), as opposed to:

\begin{enumerate}
    \item This is my item!
    \item Here's another item!
    \item And one last item...
\end{enumerate}

Let’s say you wanted to instantiate an empty document with just an image and a caption. On LaTeX, you would accomplish it via the following syntax:

\documentclass{article}
\usepackage{graphicx} % needed for \includegraphics
\usepackage{caption}  % optional, for nicer captions
\begin{document}

\begin{figure}[h]
    \centering
    \includegraphics[]{example-image.png}
    \caption{An example image included in LaTeX.}
    \label{fig:example}
\end{figure}

\end{document}

On Typst, the alternative is:

#figure(
  image("example-image.png"),
  caption: [An example image included in Typst.]
)

One clean expression, no imports or boilerplate required. Functions are well documented on the wiki, you can see the image element as an example. In fact, I relied on Typst as the backbone of the report for my undergraduate thesis, consisting of nearly 20,000 words. Once Typst was setup for my thesis, I found that it remained out of the way. With LaTeX, I often found myself wrangling with imports, arguments and scrawling through documentation, while I had none of these issues when using Typst. If you’re familiar with LaTeX or Markdown, I strongly encourage you to look into it as it was a natural switch for me.

Typst demonstration

They offer a browser app for free, or provide a compiled CLI variant on GitHub. (Not sponsored - just a huge fan of the project!)