Seminář o TeXu

V zimním semestru 2020/2021 vedeme s Vladanem Majerechem Seminář o TeXu. Spíš než uživatelskému pohledu na TeX se věnujeme tomu, jak TeX funguje uvnitř, jaké algoritmy používá a jak ho přiohnout pro různé méně obvyklé účely. Také se chceme zabývat různými rozšířeními TeXu, jako je pdfTeX a LuaTeX. Seminář se koná jednou za dva roky.

Seminář se koná online v pondělky od 14:00.

Zápočet si vysloužíte za vyřešení alespoň 7 domacích úkolů. Odkaz na Zoom a na odevzdávací systém jste obdrželi mailem.

Dotazy a připomínky prosím posílejte e-mailem na tex@ucw.cz.

datum co jsme dělali
5. 10. Jak TeX interaguje s okolím. První představení algoritmu na odstavcový zlom. Výpočet demerits a odstavcový zlom jako nejkratší cesta v grafu.
12. 10. Anatomie horizontálnich seznamů. Algoritmus pro sestavení boxu a výpočet badness. Jak vzniká horizontální seznam: kerning, ligatury, mezislovní mezery, automatické dělení slov.
19. 10. Šest módů a přechody mezi nimi. Automatické mezery v řádkových boxech: indent, left/right-skip, parfillskip. Tvarování odstavců: hangindent, parshape a looseness. Jak vzniká vertikální seznam: penalty, meziřádkové mezery, topskip.
26. 10. Resty z minula: parskip. Různé druhy registrů a aritmetika s nimi. Boxové registry. Základní algoritmus plnění a zlomu stránek.
2. 11. \vsplit. Zlom stránek s inserty. Output routiny a jejich úskalí. Plainová output routina. Jak funguje \raggedbottom.
9. 11. Práce s marky. Input procesor, token procesor, expand procesor.
16. 11. Expand procesor: edef a spol., \the, \csname, \string, \noexpand a \expandafter.
23. 11. Podmínky, idiomy pro cykly, \loop...\repeat. Jak se liší \begingroup, \bgroup a {. Token-listové registry. Konstrukce \every*, \after* a \futurelet. Výroba znaku s libovolnou kategorií pomocí \uppercase.
30. 11. Sazba tabulek pomocí \halign a \valign. Leaders. Práce se soubory, whatsity \write a \special.
7. 12. Tajemství expanze v tabulkách. Základy matematického módu.
14. 12. Dodatky k matematickému módu: mezery kolem atomů, displayed math a čísla rovnic, \eqalign a \eqalignno. Fonty a jejich metriky, primitiva pro přepínání fontů. Sazba postscriptovými a TrueType fonty.
21. 12. Program dvips a jeho speciality. Rozšíření TeXu: TeX-XeT, mlTeX, encTeX, ε-TeX, pdfTeX, XeTeX, LuaTeX, LuaHBTeX a další příbuzní. Podrobněji o encTeXu a ε-TeXu.
4. 1. Engine pdfTeX. Mikrotypografická rozšíření. UNIXová instalace TeXu a TeXlive, jak se používá kpathsea.

Literatura

Stránku spravuje Martin Mareš