makadeade
home about archive

Typst

Published: September 22nd 2025 (week 39 of 2025)

The cover image says it all. I used to be an enthusiastic user of LaTeX, but I have never been a power user. I could follow examples, but had to always be careful not to stray too far away from the beaten path.

LaTeX

I always used packages, and pre-cooked templates. I looked at the insides, and decided that I had plenty of better things to do, than to debug spaghetti macros. I appreciate the people who did the work for me, but I would rather look at the pretty outputs than at the cursed, unholy inputs.

Before the \begin{document} of the core rulebook for my RPG I have 92 non-whitespace lines, of which:

Of course, after the \begin{document} I have some more setup, but it is fine. Whatever. You do what you have to do to get to the kinda-sorta desired result.

The one thing I will never say is that the output produced by LaTeX looks bad. It looks great: clean and professional, with a vague aura of elitism (if you recognise the "TeX look"). You definitely get a return on your investment with LaTeX.

It is just that the initial amount you are asked to invest in LaTeX, before you are allowed to put smaller amounts into your account, is pretty high... and maybe—just maybe—there are other instruments that can yield a similar return with lower up-front cost? Or with lower management fees?

Typst

Enter Typst, a "programmable markup language for typesetting" described by Laurenz Mädje in his Master's thesis.

It is not just a breath of fresh air: it is a gust of cleansing wind. To recreate the layout and features of the core rulebook I needed a total of 0 (zero) package imports, 0 (Null) comments, and 27 lines of setup code.

So, 27 lines of Typst give equivalent power to 92 lines of LaTeX. This is roughly 70% reduction, but this undersells what Typst brings to the table. None of those 27 lines reference external packages—everything is built-in, and all the built-in things are configurable to your heart's content. There is no hunting for packages, you just install typst and you are ready to go.

You could think that all those nice built-in things that increase the quality of life come with a cost, and a simple hello world takes a long time to compile; but if you did you could not have been more wrong—Typst is blazingly fast. Much faster than LaTeX from what I have seen on my machine.

Ease of use

In the beginning of this post I mentioned that I have never written a LaTeX package.

In my first hour of using Typst I managed to write a piece of code (a dirty and ugly piece, to be sure—but working!) that gave me numbered paragraphs, like the ones you would see in old books. Not by abusing headings, not by some insane hackery—by following documentation and using the language of Typst.

This was an eye-opening moment.

So long, LaTeX, and thanks for all the fish.

Tags

Next: The Philosophy of Ozro RPG

Previous: Sixel and viu