← všechny články

Typst – sazba, která se píše jako markdown


Před časem jsem se pokoušel sázet knihu v html a CSS. Dopadlo to tak, jak to dopadnout muselo – šlo to, výsledek vypadal slušně, ale byl to spíš důkaz, že se to dá, než použitelný postup. V závěru jsem psal, že sázecí programy umí spoustu věcí, které se v prohlížeči suplovat nedají, a že bych tohle normálnímu smrtelníkovi nedoporučoval.

Jenže ta propast mezi psaním a sazbou mi pořád vadila. Markdown je na psaní skvělý. InDesign je na sazbu skvělý. Mezi nimi je ale stále ta samá díra – jak dostat čistý text na papír, aniž bych ho musel přelévat z jednoho světa do druhého a po cestě ztratit půlku kontroly.

Zkoušel jsem Pandoc, skripty do InDesignu, různé převodníky. Nikdy to nebylo ono. Buď to bylo komplikované, nebo proprietární, nebo nespolehlivé. Vždycky jsem skončil u toho, že text napíšu v markdownu a sazbu pak dělám znovu, ručně, v úplně jiném nástroji.

A pak jsem narazil na Typst.

Co to vlastně je

Typst je sázecí systém. Píšete zdrojový text, on z něj udělá PDF. V tom se neliší od TeXu, na kterém stojí většina akademické sazby posledních čtyřiceti let. Liší se tím, že se to dá naučit za odpoledne, pokud umíte markdown.

Nadpis je = Nadpis, kurzíva se obalí podtržítky, tučné písmo hvězdičkami, odrážka začíná pomlčkou a mezerou. Pozor, tady se Typst od markdownu liší – *tohle* není kurzíva, ale tučně. Když potřebujete víc než značkování – velikost stránky, písmo, zarovnání, české dělení slov – napíšete pravidlo. Neproklikáváte se dialogovými okny. Pravidlo platí pro celý dokument, dokud ho nezměníte.

#set text(lang: "cs", size: 11pt)
#set par(justify: true)

= Gamebook, který se sází sám

Text píšete jako markdown. Pravidla stránky jsou v kódu,
ne v dialogovém okně. Když změníte šablonu, změní se
celá kniha.

Vypadá to banálně. To je právě to, co na tom chci.

Typst vznikl v Berlíně, napsali ho Martin Haug a Laurenz Mädje. Samotný překladač je open source (licence Apache 2.0), webový editor je komerční služba s bezplatnou verzí. Díky inkrementální kompilaci přepočítává jen to, co se změnilo – živý náhled se překreslí prakticky s každým úderem do klávesnice. Můžete ho používat v prohlížeči na typst.app, nebo si stáhnout jednu binárku a sázet lokálně. Žádná TeXová distribuce o několika gigabajtech. Žádný Overleaf, pokud ho nechcete.

Já nejsem z TeXu. Nikdy jsem v něm nesázel diplomku a nemám na něj žádnou sentimentální vazbu. Píšu v markdownu, sázím v InDesignu a weby dělám v html. Typst mi dává smysl právě proto – není to nástroj pro lidi, kteří už LaTeX umí. Je to nástroj pro lidi, kteří LaTeX vůbec nechtějí.

Proč mě to chytlo

Osobně jsem zastáncem jednoduchosti až minimalismu. Mám rád práci s textem v té nejčistší podobě. Markdown mi tohle dává při psaní. InDesign mi tohle bere ve chvíli, kdy z textu dělám knihu – najednou sedím v programu, který umí všechno, ale já z toho všeho stejně používám zlomek, a zdrojový text už v tom souboru stejně nepřečtu.

V markdownovém článku jsem psal, že markdown nemáte používat, když sázíte knihu a chcete mít design víc pod kontrolou. To pořád platí. Markdown sázet neumí. Typst ale začíná tam, kde markdown končí. Značkování je podobné, akorát k němu přibude vrstva, která řeší stránku, písmo, zalamování a šablonu.

A šablona je to, co mě na tom zajímá nejvíc. V InDesignu je šablona dokument. V html je šablona CSS. V Typstu je šablona funkce. Jednou ji napíšete, pak do ní sypete obsah. Změníte řádkování v šabloně – změní se celá kniha. Nemusíte procházet styly odstavců a doufat, že jste někde něco nepřepsali ručně.

K tomu se hodí ještě jedna věc, o které jsem psal v článku o vibecodingu. Syntaxe Typstu je dost blízká tomu, co jazykové modely umí číst i psát. Šablonu si tedy můžete nechat navrhnout agentem a sami držet obsah. Neříkám, že to je jediný důvod, proč Typst používat. Říkám, že tohle by před pár lety nešlo a teď to jde.

S čím to srovnávám

Nemá smysl tady dělat tabulku Typst versus LaTeX. Tu už napsali lidi, kteří v TeXu strávili deset let. Já sázím knihy, weby a občas nějakou tiskovinu, takže mě zajímá jiné srovnání.

Markdown je na psaní pořád král. Při psaní mě nic neruší, soubor zestárne nejlíp ze všech a otevřu ho kdekoli. Na sazbu se ale nehodí. Neřeší stránku, neřeší písmo, neřeší, kde se zalomí list. Když z něj dělám PDF, vždycky se někde něco rozsype.

Html + CSS jsem zkoušel právě proto, že kód umím číst a míry si v něm pohlídám líp než v InDesignu. Narazil jsem na zalamování stránek, na jednotky, které Safari přepočítává jinak než Chrome, a na to, že tiskové CSS je pořád spíš příslib než nástroj. Pro krátkou publikaci, kde ladím každou stranu zvlášť, to jde. Pro knihu ne.

InDesign zůstává tam, kde má být. Obálka, složitý layout, volné rámečky, věci, které se na stránce mají chovat jako předměty, ne jako odstavce. Za ta léta jsem si v něm osvojil základ. Pořád je to ale nástroj s vysokým vstupním prahem a zdroj, který mimo Adobe v podstatě nepřečtete.

Typst sedí doprostřed. Píšete skoro jako v markdownu, sázíte skoro jako v sázecím programu, šablonu máte v kódu. Není to náhrada InDesignu. Je to náhrada té části práce, kde InDesign používám jako přerostlý textový editor.

Kdybych to měl zkrátit do jedné věty: markdown na psaní, Typst na sazbu od nuly, InDesign na všechno, co už v InDesignu existuje.

Čeština, protože na ní záleží

Sazba v češtině má své zvyklosti. Jednopísmenné předložky na konci řádku, nezalomitelná mezera mezi číslem a jednotkou, uvozovky, pomlčky. V InDesignu to řeším GREP styly a zvykem. V html na to potřebujete kousek javascriptu. V TeXu na to existuje legendární program vlna.

V Typstu zapnete češtinu jedním řádkem:

#set text(lang: "cs")

Typst tím použije české vzory dělení slov – samo se ale zapne jen u textu do bloku (justify: true), jinak si ho musíte zapnout přes hyphenate: true. Na ty předložky a další nezalomitelné mezery je balíček vlna, který dělá přesně to, co by měl – lepit krátká slova, tituly, data a jednotky podle zásad ÚJČ.

#import "@preview/vlna:0.4.0": apply-vlna
#show: apply-vlna

Tohle je věc, kterou jsem v html+CSS obcházel a v markdownu ignoroval. Tady je součástí nástroje. Neříkám, že tím mám vyřešenou celou českou sazbu. Říkám, že už to nemusím dělat ručně za každou předložkou.

K čemu to chci použít

Nejsem student, který sází diplomku. V Česku se Typst zatím objevuje právě tam – oficiální šablona závěrečných prací na TUL, neoficiální pro MFF UK, pár rychlotipů na blogu. To je fajn, ale mě zajímá něco jiného.

Zajímá mě text, který má opakující se strukturu. Gamebook. Číslovaná sekce, odstavec, volba, zase sekce. Příručka ke hře. Sazba, kde je důležitější držet rytmus odstavce než posouvat rámeček o půl milimetru.

Právě na tom jsem si to zkoušel. Představa byla jednoduchá – obsah zůstane plaintext, sazba zůstane v šabloně. Když změním šablonu, změní se celá kniha. Když píšu další kapitolu, neotevírám InDesign.

Jak to dopadlo, je níž. Spoiler: jinak, než jsem čekal.

Kdy Typst ne

Nechci z toho dělat zázrak.

Když děláte obálku, plakát nebo sazbu, kde se text má obtékat kolem ilustrace v osmi variantách, zůstaňte v InDesignu. Typst je skvělý v toku textu. Není skvělý ve volném skládání prvků na stránce.

Když vám tiskárna nebo škola předepíše konkrétní šablonu v InDesignu nebo v LaTeXu, taky se s Typstem neohánějte. Nástroj je k ničemu, když výsledek nikdo nepřijme.

A když potřebujete dvacet let akademických balíčků, které existují jen pro TeX, Typst vás zatím nezachrání. Ekosystém roste rychle, ale není to CTAN.

Pro mě tyhle výjimky nevadí. Já nechci nahradit všechno. Chci nahradit tu část, kde se z plaintextu stává kniha a já u toho zbytečně klikám.

Na závěr

Byl to zajímavý experiment. Jen docílit v Typstu stejné kvality jako v InDesignu není tak snadné, jak se na první pohled zdá.

Na zelené louce se v něm sází krásně. Když dělám layout od nuly, šablona v kódu je radost – jedna změna a přeteče celá kniha. Jenže replikovat layout, který už existuje v InDesignu, je hodně pracné a výsledek nikdy nebude 1:1. Každý detail, který v InDesignu nastavím kliknutím, tady musím vymyslet, napsat a odladit.

A to je přesně můj případ. Dělám hodně překladových titulů, kde už mám sazbu hotovou v InDesignu nebo Affinity a jen do ní měním text. Tam Typst nic neušetří, spíš naopak. Pro mě z toho nakonec zůstal zajímavý nástroj na interní projekty – podklady, příručky, věci, které nikdo předtím nesázel. Třeba licenční smlouvy pro Mytago: znění píšu v markdownu a jedna šablona s písmem iA Writer Quattro z něj udělá PDF k podpisu. Přesně na tohle je Typst ideální. InDesign je sice za drahé peníze, ale dává výrazně víc pokročilých možností a na knihy, které jdou do tisku, zůstává.

Sazba v html a CSS mi ukázala, že sazba z kódu dává smysl, ale prohlížeč na to není stavěný. Typst dělá totéž jako skutečný nástroj, ne jako klička. Propast mezi markdownem a PDF zmenšil – jen nevede tam, kde už stojí moje hotové knihy.

Zkoušel jsem to na Typstu 0.15 (podzim 2026). Vyvíjí se rychle, takže co nejde dnes, může za rok jít.

Když si to budete chtít osahat, začni na typst.app. Dokumentace je překvapivě čitelná. Na češtinu přidejte lang: "cs" a balíček vlna. A pokud začínáte na zelené louce, klidně to zkuste i na něco většího.