Stručná mluvnice TeXovská

Tento návod vznikl 19. 4. 1998 jako domácí úkol z HTML, ale domnívám se, že je stále víceméně aktuální.

TeX je typografický systém, který se používá k tisku pomocí počítačů. Zejména je vhodný pro sazbu matematických textů, textů s mnoha nejrůznějšími symboly, rozsáhlejších textů s jednotnou úpravou - knih a časopisů, ale hodí se i pro psaní běžných textů.

TeX se zásadním způsobem liší od textových editorů pod Windows, kde by mělo platit, že co je na obrazovce, to je výsledná podoba dokumentu. Při práci s TeXem uživatel pracuje s vstupním (zdrojovým) souborem, který často upravuje v nějakém jednoduchém textovém editoru. Tento soubor poté přeloží TeXem na soubor formátu DVI (Device Independent), který lze vytisknout či prohlížet na jakémkoli grafickém zařízení s libovolnou rozlišovací schopností.

Zdrojový text vypadá často úplně jinak, než konečný produkt. To se zdá být nevýhodné, je to však bohatě vykoupeno mnohem většími možnostmi, než jaké nabízí editory ovládající vzhled myší nebo z menu.

Naučit se ovládat TeX je však také úměrně složitější. Vytvoření několika prvních textů vám patrně potrvá déle, než kdybyste použili třeba Word. Podobu textu totiž řídí uživatel pomocí tzv. řídících slov, která vpisuje do textu. Taková slova většinou začínají znakem \ (backslash).

Síla TeXu spočívá v možnosti použití maker. Uživatel si může v textu definovat nějaký postup, který často používá, a potom ho snadno vyvolat odkazem na makro. Je to tedy vlastně takový programovací jazyk. Mnoho užitečných maker je již předdefinovaných v nějakém balíku maker.

Nejrozšířenější balíky maker dodávané společně s TeXem se jmenují PlainTeX, AMS-TeX a LaTeX. Z nich nejzákladnější a nejjednodušší je PlainTeX, o kterém pojednává tento stručný přehled.

Obsah:

První doteky

Nejmenší soubor, který TeX umí zpracovat, obsahuje jediné klíčové slovo - \bye, které ohlašuje konec textu určeného k zpracování TeXem. Cokoliv za tímto slovem bude ignorováno.

Hodláme-li psát český dokument, je vhodné na začátek souboru napsat \input czech.sty. Od tohoto místa se budou slova dělit správně podle českých pravidel a nikoli anglicky. Také se změní uvozovky na české a provedou se i další změny.

V TeXu se odstavce oddělují prázdným řádkem. Tentýž efekt způsobí klíčové slovo \par. Je v podstatě jedno, jak je text v odstavci zarovnán a kolik je kde mezer za sebou. TeX si rozláme odstavec na řádky sám tak, aby vše pěkně vypadalo, a mezery zvolí tak, aby byl pravý okraj zarovnaný (pokud to nezakážeme vhodným klíčovým slovem). Mezery za řídícím slovem jsou ignorovány; pokud v tom místě chceme mezeru, musíme ji zadat explicitně. Například takto: \klicoveslovo{} nebo \klicoveslovo\ .

Jednotky

TeX umožňuje užívání mnoha typů délkových jednotek. Nejčastěji užívané jsou

Poslední dvě jednotky se tedy mění podle druhu písma, které máme právě nastavené. TeX má ještě tři další jednotky: fil, fill, a filll.
fil je roztažitelná jednotka, která vždy zabere tolik místa, kolik může. Jednotka fill má větší prioritu, tzn. jsou-li na stejném řádku vedle sebe fil a fill, roztáhne se pouze fill. (jsou-li na stejném řádku vedle sebe fil a fil, roztáhnou se obě stejně, tedy o polovinu volného místa.)

Mezery

Svislá mezera \bigskip působí, jako by byl vypuštěn řádek. Mezera \medskip je vysoká asi jako písmeno M a \smallskip asi jako m. Potřebujeme-li mezeru výšky 17,2 mm, píšeme \vskip17.2mm. Taková mezera, vyjde-li náhodou na začátek nebo konec stránky, bude vypuštěna. Pokud chceme vynechat místo třeba na nějaký obrázek, pišme \vglue17.2mm. Taková mezera nezmizí ani na okraji stránky.

Vodorovná mezera dané velikosti: \hskip12mm. Je možné vytvářet i záporné mezery. Slova se pak mohou překrývat.

Maximálně roztažitelné mezery \hfil a \hfill zaberou tolik místa, kolik mohou. Bude-li např. \line{A\hfill B\hfil C\hfill\hfill D}, mezi B a C se mezera nevytvoří; \hfill má vyšší prioritu. BC bude v jedné třetině řádku, protože všechny \hfill se roztáhnou stejně.

Svislé roztažitelné mezery jsou vfil, \vfill.

Písmo

Mezi druhy písma můžeme přepínat následujícími přepínači:

Pokud potřebujeme jiný font či jinou velikost, nezbývá než si font zavést někde před místem použití (nejlépe na začátku souboru, aby byl přehled) sekvencí
\font\jmenofontu=csss12 scaled <velikost>

Tím vlastně vytvoříme nové řídící slovo \jmenofontu. Kdykoli je od té chvíle vložíme do textu, nastaví se tento font. Jméno fontu, který chceme zavést, musíme znát (v tomto případě to je bezpatkové písmo (Sans Serif) o základní velikosti 12pt). Udání zvětšení písma není povinné. Fonty je zvykem používat jen ve standardních zvětšeních \magstep0\magstep5. \magstep n je synonymum pro zvětšení 1000*(1.2n), což odpovídá zvětšení 1000 (základní velikost) až 2488 (2.488-krát větší, než základní velikost). Při jiných zvětšeních se může stát, že font není instalován (je ale možné jej snadno vytvořit pomocí METAFONTU, což je velmi rozšířená nadstavba TeXu umožňující navrhovat vlastní fonty).

Vzhled dokumentu

Stránka má tři části - záhlaví, tělo a patu. Záhlaví většinou obsahuje název knihy či kapitoly, tělo obsahuje vlastní text a na patě stránky bývá zpravidla její číslo nebo třeba poznámky pod čarou. Vzhled stránky je nastaven podle ustálených tiskařských zvyklostí, dá se však podle potřeby ovlivnit změnou hodnot následujících proměnných. Aktuální šířka stránky je uložena v proměnné \hsize. Hodnotu lze kdykoli změnit např. takto: \hsize=4in nebo \hsize=0.75\hsize. Na šířce odstavce se projeví hodnota platná na konci odstavce.

Výška těla stránky je v proměnné \vsize. Odstavce mívají první řádku odsazenou. Velikost tohoto odsazení je v proměnné \parindent. Chceme-li mimořádně nějaký odstavec neodsadit, napíšeme na jeho začátku \noindent.

Vzdálenost mezi řádky je \baselineskip, vzdálenost mezi odstavci \parskip.

Text v záhlaví je obsahem proměnné \headline, text na patě je v \footline. Různé záhlaví pro liché a sudé strany můžeme vytvořit konstrukcí \headline={\ifodd\pageno {...}\else {...}\fi }. Obvyklého číslování stran pod textem uprostřed dosáhneme \footline={\hfil \the\pageno \hfil }. Počítadlo \pageno v sobě drží číslo aktuální strany, řídící slovo \the vytiskne obsah tohoto počítadla.

Celý dokument nebo jeho část lze též zvětšit či zmenšit použitím např. \magnification=1200. Takto se dokument zvětší na 120 procent původní velikosti.

Skupiny

Je-li potřeba omezit rozsah platnosti nějaké změny, používají se skupiny. Skupina začíná a končí znaky { a }. Při vstupu do skupiny si TeX zapamatuje všechna nastavení a při opuštění skupiny tato nastavení obnoví.

Změnu fontu můžeme také omezit uzavřením do skupiny:

Různé textové machinace

Na výčty se používá \item{...}. Text se odsadí o \parindent a zleva se k němu připojí obsah závorky. \itemitem{...} odsadí text o dvojnásobek této hodnoty.

Poznámka v r. 2012: Toto je obecný příklad s obecnou platností. Nehodnotí konkrétní situaci na katedře matematiky.

Zarovnávání v jednom řádku: \leftline{doleva} \centerline{doprostřed} \rightline{doprava} \line{vyplní celý řádek}

Zarovnávání vpravo v celém odstavci lze zrušit pomocí \raggedright.

Poznámky pod čarou se vytvoří \footnote{*}{...}. Obsah první závorky vytvoří znak poznámky, druhá závorka vlastní text.

Tabulky s pevnou šířkou sloupce

Nejdříve je potřeba nastavit tabelační zarážky na např. pět stejně širokých sloupců
\settabs 5 \columns
nebo pomocí vzorového řádku
\settabs \+ První sloupec & druhý & ...& poslední \cr.

Řádek tabulky se pak zapíše
\settabs \+ První položka & \hfil druhá & ...& předposlední \cr

Není nutné vyplnit všechny položky; lze skončit dříve. \hfil v druhé položce způsobí, že v kolonce bude text přitlačen k pravému okraji. Podobně lze text centrovat apod. Jsou-li sloupce nastaveny příliš úzké, bude se text překrývat. \hrulefill vytvoří vodorovnou linku v kolonce, \dotfill kolonku vodorovně protečkuje.

Tabulky s vhodnou šířkou sloupce

Vzor: \halign{ vzorový řádek \cr
první řádek \cr
...
poslední řádek \cr}

Každý řádek je rozdělen do kolonek znakem & a ukončen slovem \cr. V každé kolonce vzorového řádku se musí právě jednou vyskytnout znak #, místo kterého TeX dosadí příslušnou položku zpracovávaného řádku.

Příklad:

Složitější verze

Uvozovky - \uv{Jsem v uvozovkách,} pravil jsem.

Pomlčky:

Krabičky

Je-li potřeba operovat s nějakým kusem textu, je možné zabalit ho do krabičky - boxu. S boxem pak lze snadno nakládat: posunovat, několikanásobně použít, zarámovat atd.

\hbox{...} vytvoří box, kde materiál v závorce je řazen horizontálně. V krabičkách \vbox a \vtop je obsah závorky řazen pod sebe (přitom je nutné říci, že každé písmeno v normálním textu zahajuje automaticky implicitní odstavcový \hbox, takže jestliže chceme napsat dvě slova pod sebe, je třeba napsat
\vbox{\hbox{1. řádek}\hbox{2. řádek}}).

Pokud se vyskytne \vbox nebo \vtop na řádce s textem, \vbox je zarovnán svým spodním okrajem s spodním okrajem řádku - stojí na řádku
na rozdíl od \vtop, který z řádku visí - je zarovnán horním okrajem.

Příklad:

Matematika

TeX rozeznává dva druhy matematických výrazů - výrazy v textové řádce a vycentrované výrazy na samostatném řádku, např. rovnice. Do řádkového matematického režimu se vstupuje znakem dolaru a týmž znakem se tento režim opouští. Rovnicový režim zapíná a vypíná $$.

^{píše nahoru}_{píše dole} vytvoří horní a dolní index.

Zlomek vysadí čitatel \over jmenovatel. Není-li celý výraz ve tvaru zlomku, je potřeba zlomek uzavřít do skupiny.

Odmocnina \sqrt{x+y^2}

Suma \sum_{od}^{do} co

Integrál \int_{od}^{do} co

Matice

Mezery v matematice

Složitější ukázka

Nová makra

K definování nových maker se používá řídícího slova \def.
Provedení je takové: \def\novemakro{...}.

Kdykoli se pak vyskytne v textu \novemakro, bude zaměněno za obsah složených závorek. Makru lze předávat i parametry. Pak definice vypadá asi takto:
\def\zoo#1#2{Pan {\bf #1} je orangutan a slečna {\sl #2} je k šimpanz.}
a makro se volá:
\zoo{Vopička}{Žofka}

Ukázky jednodušších maker:

Ukázky složitějších maker:

Reference

Tento přehled si v žádném případě nedělá nárok na úplnost. Další a podrobnější informace lze získat v tištěných knihách

nebo v elektronické podobě

Stránku sestavil Jakub Šolc