Also, typst klingt an sich sehr gut aber ich habe Angst auf ein Pferd zu setzen, dass zu sehr Nische ist und nicht gescheit supported wird. Aber vom Ansatz her wäre es perfekt.
Sollte eines Tages das Projekt aufgegeben werden, kannst du doch immer noch den Text in was anderes konvertieren (lassen).
Markdown hatte ich auch im Blick aber kann man das gescheit formatieren? Da habe ich nicht gefunden.
Markdown definiert die Struktur, aber nicht das Aussehen. Allein wird dir das nicht helfen. Zudem du essentielle Features wie mehrspaltige Abschnitte, Seitenboxen, allgemein Textumfluss, Tabellen mit zusammengefassten Zellen und ähnliches nicht definieren kannst und damit natürlich auch nicht "drucken" kannst. Leute haben versucht, das hinzuzufügen und du könntest dir z.B. Quarkdown anschauen, aber z.B. deren Syntax für Funktionen finde ich schwerer lesbar als Typst. Ansonsten wollen die ungefähr das selbe. Ich weiß auch nicht, wie Quarkdown genau druckt. Wenn die erst HTML erzeugen und daraus dann ein PDF, ist man wieder auf das beschränkt, was Chrome (als die feature-reichste CSS3 Engine) kann - und das ist immer noch wenig.
Ich überlege auch, ob ich Markdown schreiben soll und dann ein Pythonskript drauf laufen lassen, dass Markdown durch LaTex ersetzt.
Außer, dass du jetzt einen zweiten Compile-Schritt hast, gewinnst du dadurch doch nur, dass du `**foo**` statt `{\bf foo}` schreiben kannst. Die Syntax ist doch relativ egal. Daran gewöhnt man sich schnell.
Es gäbe übrigens auch noch Docbook, einen komplexen XML-Standard speziell für Handbücher, wo man dann per XSL-FO (einem noch komplexeren XML-Standard) daraus dann ein PDF machen könnte. Aber das stammt aus der Hochzeit von XML, als Leute meinten, man müsste sogar Programmiersprachen mit dieser Syntax abbilden.
Auch könntest du deinen Text direkt in HTML schreiben, ist auch nicht viel schlimmer als LaTeX und hat sehr guten Tool-Support. VSC unterstützt z.B. emmet, wo man dann `h2#section+ul.short>li*5` schreiben kann, um schnell ein Gerüst von Blockelementen zu bekommen. Und man könnte sich mit wenigen Zeilen JavaScript etwas schreiben, das `**foo**` in `<strong>foo</strong>` in allen Blocken-Elementen ersetzt. Dann hat man eine Art Mini-Markdown.
Und vielleicht will man ja auch niemals ein PDF erzeugen, weil HTML eigentlich das bessere, weil responsive, Format ist, wenn man davon aus geht, dass eh die meisten das auf einem Handy oder Tablet oder Notebook lesen und nicht ausgedruckt auf Papier.