Why I switched from LaTeX to typst for presentations (It’s not the looks)
For the past two summers, I have been teaching parts of a computer science course to undergraduates. The professor is teaching the theory of computer architecture and operating systems and I do the hands-on exercise part. This summer, I decided to switch to typst for my slide sets. Here is why.
My background
I have been using and teaching LaTeX for almost a decade. It is powerful software, but for a long time I did not even consider using it for presentations. Many of my professors did, and you can identify them immediately. LaTeX beamer, the document class for slides, just gives itself away immediately. If you do not know it, have a look at the beamer theme matrix. Have you seen those before?
You could say that I am a bit opinionated with regards to aesthetics. I have done some freelance graphics design on the side and like to have control over the layouts I use. While beamer would probably allow me to tweak everything, it has never been a real option to me.

So much so, that for the LaTeX Workshop my friends and I give every semester, we have been using our own Markdown-based presentation engine. It uses Markdown for the content and HTML for the templates. But that is a story for another day. The slide set is a website with decent, but not optimal PDF export. For my exercises, though, I needed exactly that reliable PDF export, so onPoint was not really an option.
Why I used beamer in the first place
My exercise slides did not start at square one. The colleague who gave the exercises before me came from the Friedrich-Alexander-Universität Erlangen-Nürnberg and brought their beamer theme with him. It is called i4neo and I had to admit: It is great.
You can write basic Markdown and convert it using Pandoc. Or you go all-in and write LaTeX. There are all those well-made packages and everything is mature and documented. A dream, when I think about it.
The thing is: It takes ages to compile. On my work machine, a single make all takes more than 8 seconds. And that is with cached data. The initial one takes more than 15 seconds. That may be due to the amount of packages I am using, minted and biber and whatnot. But I need these packages.
make all 8.71s user 0.11s system 99% cpu 8.829 total
After one semester, I was rather frustrated. I need a new slide set every week and there is plenty of other things to do. I do not have the time to wait that long every time I just want to tweak a tiny thing. I have done so for one semester. But I did not enjoy it.
Just use WYSIWYG!?
You might think: “What you want is WYSIWYG (What you see is what you get). Just use {PowerPoint,Impress} then.” And you would not be completely wrong. I just have some more requirements. Version control is one of them. My presentations need to be plain text such that I can track their history and collaborate with others via Git.
I put this stuff aside for some months. The next slides would only be needed by April. But then, in winter, I met a lot of people recommending typst. I had heard about it before – and had dismissed it for long-form writing. I like LaTeX’s typographical quality, after all, so my typesetting will stay there. And when the syntax is too verbose, I just draft my text in Markdown and convert it afterwards.
Nonetheless, I installed typst once more and searched for a presentation package on the typst universe. What followed, had three stages:
- First I was hyped. Immediate updates in the preview. Not-as-verbose markup. Pretty colors.
- Then I was frustrated. No built-in slide document class. Competing packages. Weird syntax and theming.
- And in the end, I got it to work.
I encountered many problems along the way. Missing functionality, strange internal stuff I do not understand, an immature environment … Those may be subjects of future blog posts. But the simple fact that I see all of my changes immediately was enough to get me aboard. I am close to the end of my first semester with typst presentations. Now you know how I got here.