I love Markdown. It is simple and makes writing small projects easy, fast, clean. It is well supported and well integrated! You can use it for documentations, personal notes –like the folks who like Obsidian[1]–, your clasical README.md
files, and blog posts.
LaTeX is not as easy to love as Markdown, in my personal opinion. Yet, its versatility cannot be disputed. It is regarded as the epitome of typesetting in academia and scientific writing. The many packages available in CTAN make it a powerful tool for complex documents, such as theses, books, and articles: you can do complex mathematical typesetting, manage bibliographies with BibTeX, create posters and presentations with Beamer, and much more.
In addition with latexmk, the compilation process is simplified through a Perl script that automates the building of LaTeX documents.
Typst is a Rust-based typesetting system that aims to combine the simplicity of Markdown with the power of LaTeX. It is very simple, has a clean syntax, powerful scripting capabilities, and is designed to be easy to learn and use.
You can install it very easily (on Mac with Homebrew, you would do brew install typst
), and it has a very nice online editor (and services like Overleaf).
A typical Typst document looks like this:
#set page(width: 10cm, height: auto)
#set heading(numbering: "1.")
= This is a title
This is some text.
#let max_count = 10
#let ran = range(1, max_count+1)
#let fib(n) = (
if n <= 2 { 1 }
else { fib(n-1) + fib(n-2) }
)
The first `max_count` Fibonacci numbers are:
#align(center, table(
columns: max_count,
..ran.map(n => $F_#n$),
..ran.map(n => str(fib(n)),
))
Quite cool!
[1] | Just use a good text editor, please. |