Přejít na:

Ve světě TeXu velmi rychle narazíte na spoustu *TeX pojmů, např. TeX, e-TeX, pdfTeX, XeTeX, LuaTeX, plain TeX, LaTeX, ConTeXt a další. Zde se v nich pokusíme udělat pořádek a ukázat si rozdíly mezi nimi na příkladech.

Přejít: navigace | na začátek stránky | na konec stránky

TeX: Jazyk, program, sazební systém a ekosystém

TeX je makrojazyk pro sazbu dokumentů navržený v 70. a 80. letech minulého století americkým profesorem Donaldem Ervinem Knuthem. Na rozdíl od většiny ostatních systémů na přípravu dokumentů klade TeX nezvyklý důraz na sazbu matematiky. Základním prostředkem abstrakce v TeXu jsou uživatelská makra, jejichž výskyty ve vstupním dokumentu jsou při zpracování nahrazovány definicemi. TeXem rovněž rozumíme interpret jazyka TeXu (TeXový kompilátor).

V širší rovině označujeme TeXem sazební systém sestávající z Knuthova TeXového kompilátoru, programu Metafont (který probereme v budoucím cvičení) a rodiny písem Computer Modern. V této podobě Knuth systém během 80. let minulého století uveřejnil. Od roku 1990 již tento systém není v aktivním vývoji a dochází pouze k odstraňování chyb. Čísla verzí programů TeXu a Metafontu postupně konvergují k iracionálním číslům π a e; po smrti Donalda Knutha se verze programů změní na zmíněné konstanty a veškeré neopravené implementační chyby budou již pouze dokumentovány.

Díky svobodnému a otevřenému zdrojovému kódu se kolem TeXu (sazebního systému) utvořila aktivní komunita uživatelů a došlo ke vzniku bohatého ekosystému odvozených kompilátorů, formátů, makrobalíků, fontů a rozšiřujících programů. Ty jsou od roku 1992 shromažďovány na internetovém archivu CTANu a distribuovány ve formě TeXových distribucí (ty jsme stručně probrali v úvodním cvičení). Často se proto setkáme s tím, že libovolné softwarové řešení postavené na součástech TeXových distribucí je volně označováno jako TeX (v akademickém světě jde typicky o spojení kompilátoru pdfTeXuformátem LaTeXu).

Přejít: navigace | na začátek stránky | na konec stránky

TeXové kompilátory (TeX engines)

Část *TeX termínů odkazuje na různé implementace kompilátorů TeXového zdrojového textu, tzn. binární programy, které načtou zdrojový text a převedou jej na vysázený výstupní dokument.

Samotný kompilátor rozumí jen naprosto základním příkazům, tzv. primitivům jazyka. Právě rozsah podporovaných primitiv tvoří nejzásadnější rozdíly mezi různými kompilátory TeXu.

Přejít: navigace | na začátek stránky | na konec stránky

Původní TeX Donalda Knutha

Přejít: navigace | na začátek stránky | na konec stránky

e-TeX

Přejít: navigace | na začátek stránky | na konec stránky

pdfTeX

Přejít: navigace | na začátek stránky | na konec stránky

XeTeX

Přejít: navigace | na začátek stránky | na konec stránky

LuaTeX

Přejít: navigace | na začátek stránky | na konec stránky

TeXové formáty

Jelikož samotný kompilátor rozumí jen naprosto základním příkazům, tzv. primitivům jazyka, bylo by mimořádně nepohodlné používat tyto nízkoúrovňové příkazy pro tvorbu dokumentu. S pomocí těchto základních primitiv jsou proto vybudovány makrojazyky – formáty – určené pro použití koncovým uživatelem při formátování textu.

V rámci formátu jsou definovány nové makropříkazy, které mohou používat jak primitiva jazyka, tak dříve definovaná makra. Samotný uživatel samozřejmě může ve svém zdrojovém textu používat jak přímo primitiva jazyka, tak makra definovaná v používaném formátu, a nebo obojí využít k definici vlastních maker.

TeXových formátů je mnoho (a uživatelé si mohou definovat i vlastní). Zde se proto v krátkosti zmíníme jen o těch nejdůležitějších:

Přejít: navigace | na začátek stránky | na konec stránky

plain TeX

Přejít: navigace | na začátek stránky | na konec stránky

csplain

Přejít: navigace | na začátek stránky | na konec stránky

LaTeX

Tip: Dokumentaci (nejen) k LaTeXovým balíčkům nemusíte hledat na webu, stačí si zobrazit dokumentaci z vaší TeXové instalace: texdoc <objekt>
texdoc cropmark
Použitím lokální instalace navíc zajistíte, že popisuje vámi použivanou verzi dokumentovaného objektu.

Přejít: navigace | na začátek stránky | na konec stránky

ConTeXt

Přejít: navigace | na začátek stránky | na konec stránky

Praktické použití

Jelikož základní sada TeXových primitiv je společná, založená na původním TeXu Donalda Knutha, tak v zásadě můžete každý formát použít s libovolným TeXovým kompilátorem (za předpokladu, že vy ani formát nevyužíváte rozšiřující primitiva některého z kompilátorů).

Přejít: navigace | na začátek stránky | na konec stránky

plain TeX

Nejjednodušším formátem je plain TeX, kde není třeba dokument začínat žádnou komplikovanou hlavičkou. Do textového souboru (pojmenovaného např. muj-plaintex-zdrojak.tex) si uložte následující kód:

Hello World! -- This is my {\it first} \TeX{} document.
\end

Tip: Při používání PuTTY pro připojení k unixovém serveru můžete text přenášet přes schránku:

  • Ctrl + Insert: kopírovat
  • Shift + Insert: vložit

Tento dokument ve formátu plain TeX můžete následně přeložit libovolným TeXovým kompilátorem:

Ukázkový dokument pro plain TeX si můžete přeložit a prohlédnout i na službě Overleaf. Vizte také článek Can I run plain TeX on Overleaf? v dokumentaci služby Overleaf.

Přejít: navigace | na začátek stránky | na konec stránky

LaTeX

Formát LaTeX je složitější a ve zdrojovém textu již vyžaduje jistou minimální hlavičku. Pro rychlé vyzkoušení tedy můžeme využít například standardní ukázkový dokument sample2e.tex, který je součástí TeXové distribuce.

Dokument sample2e.tex ve formátu LaTeX můžete následně přeložit libovolným TeXovým kompilátorem:

Ukázkový dokument pro LaTeX si můžete přeložit a prohlédnout i na službě Overleaf.

Přejít: navigace | na začátek stránky | na konec stránky

ConTeXt

Formát ConTeXt uživatelům dopřává výhody složitějších formátů jako LaTeX při zachování jednoduchosti zdrojového kódu v plain TeXu, kde není třeba dokument začínat žádnou komplikovanou hlavičkou. Do textového souboru (pojmenovaného např. muj-context-zdrojak.tex) si uložte následující kód:

\starttext
\startsection[title={Testing \CONTEXT}]
This is my {\em first} \CONTEXT{} document.
\stopsection
\stoptext

Tento dokument ve formátu ConTeXt můžete následně přeložit kompilátorem LuaTeX do PDF následně: context muj-context-zdrojak.tex

Ukázkový dokument pro ConTeXt si můžete přeložit a prohlédnout i na službě Overleaf. Vizte také příspěvek o přípravě dokumentů pomocí formátu ConTeXt na službě Overleaf.

Přejít: navigace | na začátek stránky | na konec stránky

Praktické úkoly k procvičení

Přejít: navigace | na začátek stránky | na konec stránky