Notes about Typst (and LaTeX)

I have some little story with document writing. My thesis for university was written in LaTeX, also my mini-thesis for high-school was written in LaTeX (translated from "tesina" which was a thing in Italy).

I am accustomed to the idea of compiling my documents. I can version control it easily writing meaningfull commits easy to manage (unlike Word) and I don't have to worry about weird stuff happening in the document because some obscure option hidden inside some random menu was set wrong. All that's matter is in your document, maybe in a specific file, you cannot miss it.

An example of LaTeX formatting
And its code

I wrote it to have an example and I was expecting to open some documentation, but I wrote so many of these docs I wrote the skeleton all by hearth.

Shaping LaTeX documents

During the writing of my thesis, I wanted my document to be really professional. With all the details in the right place: This was really hard.

LaTeX documents have a lot of different variables which should do different jobs but in reality none of them actually do a difference and another unrelated variable fixes the document, after 2 hours of research. Shaping the document is hard, really hard. The community on CTAN (the standard package manager for LaTeX) has the geometry package, but by default it makes a lot of changes that I didn't like. I ended up reshaping margins (for odd and even pages) by hand without geometry. It wasted me a lot of time. Also this problem repeated by having the frontispice (the first page with the title, just to be clear) on a different geometry. I had to set a geometry, then end the page and reset the geometry and the page numbering to make it works.

So what about Typst

I found Typst some time after finishing my thesis. It is exactly what I was wondering about during my hellish search and discoveries. Typst is a new typesetting system rewritten from zero that aims to replace LaTeX with its ease of use and modern syntax.

It has some nice features like an official tutorial and official documentation for all primitives. setting the geometry for a document is a breeze. It have some nice features like webassembly plugins and the possibility to use it on their platform. The compiler is embeddable enought that probably is easy to create a new web platform but I don't know about licensing there.

An example of Typst standard formatting
And its code

Working on Typst

Starting on Typst is really easy, just read the tutorial from the site and experiment. This system really shows fast some of its quality. Its programming language nature makes easy to understand how to make code blocks, maybe create a variable and set margin the triple of that.

It is functional and easy to understand. It has some nice fuction for graphics and easy control structures.

Packages

Typst has a package search. It collects libraries that can be used for various reasons. Creating text boxes, graphs, presentations, CVs is already a matter of importing packages. Outside of the usuals, you'll probably find yourself better writing stuff yourself than using packages. Often on typst universe (their package list), all the stuff is in beta version and sometimes these packages work in strange ways.

What's the target?

Someone could say that in a world where all documentation is now web stuff, there is no place for a new LaTeX. Why would you restart LaTeX when the only uses are accademic, where at this point they know all the secrets and weirdness of this tool.

The typesetting world is not so small. I can see some usecases where Typst has sense:

On each area, Typst has to compete, but there is room to work with.

Stuff missing

One thing people really miss is the possibility to export typst text into html. As now the compiler can only provide pdf documents. I see typst is in development and new stuff is added.

Github issue: HTML export

Probably that's enought shilling.

CYA