Cvičení 1

Kurs: Informatická propedeutika II
Téma cvičení: Hladká a smíšená sazba. Členění dokumentu. Odkazy.

Základní struktura dokumentu. Bloky a prostředí. Hladká sazba. Mezery, pomocné znaky, interpunkce, uvozovky, apostrofy. Dělení slov. Příkazy generující text. Akcenty, diakritika a znaky cizích abeced. Smíšená sazba. Fonty v TeXu. Sazba odstavců. Křížový odkaz.


1.  Základní struktura dokumentu

Každý textový dokument lze rozdělit na úvodní část, vlastní textovou část a závěrečnou část. Úvodní část obsahuje zpravidla titulní stranu, abstrakt, věnování, obsah, seznamy obrázků a tabulek. Textová část se dělí do částí, kapitol a podkapitol. Někdy mohou být částí dokumentu i dodatky. Závěrečná část sestává nejčastěji z bibliografie a rejstříku pojmů.

Formát LaTeX disponuje systémem stylů, který umožňuje upravovat strukturu dokumentu podle požadavků na sazbu aktuálního díla. Například styly pro sazbu knihy a článku se od sebe liší strukturou kapitol a číslováním stran. Pro psaní dokumentace k ročníkovým projektům a diplomovým pracím existuje také sada stylů vycházejících ze stylu article.

Každý dokument se skládá z deklarace. Makro deklarující dokument napsaný ve formátu LaTeX2e se nazývá \documentclass. Povinným argumentem je styl, například article, report, letter, book. Nepovinný argument je píše do hranatých závorek a upřesňuje nastavení stylu. Může sestávat ze seznamu přepínačů oddělených čárkou. Mezi nejčastěji používané patří přepínače velikosti písma, formátu stránky a možnost oboustranně psaného dokumentu. Následující ukázka demonstruje hlavičku dokumentu.

 \documentclass[a4paper,twoside]{article}

Za deklarací \documentclass může být ještě uvedeno v hranatých závorkách datum vytvoření dokumentu. Pokud není datum uvedeno, je brán aktuální systémový čas. Po deklaraci dokumentu bývá zvykem připojovat další dodatečné styly makrem \usepackage. Syntaxe makra je analogická. Povinným argumentem je název dodatečného stylu, nepovinnými argumenty jsou jeho přepínače. V českých dokumentech je nutné používat dodatečný styl czech. Následující ukázka demonstruje přidání dvou dodatečných stylů, druhým z nich je a4wide, sloužící k rozšíření zrcadla stránky.

 \usepackage{czech}
 \usepackage{a4wide}

Na cvičení se budeme nejprve zabývat hladkou a smíšenou sazbou. Nebudeme dokument dále strukturovat. Z tohoto důvodu vypneme i automatické číslování stran, jenž je implicitně zapnuto. K vypnutí číslování na aktuální straně lze použít makro \thispagestyle s argumentem empty. Číslování od aktuální strany do konce dokumentu lze změnit makrem \pagestyle. Další argumenty maker jsou plain, headings určující posici číslování stran v dokumentu. Makry \thispagenumbering\pagenumbering lze měnit formát vypisovaného čísla. Argumenty maker mohou nabývat hodnot arabicroman. Další řádek vstupního dokumentu má tedy tvar

 \pagestyle{plain}

V ukázkovém dokumentu bude bezprostředně za vypnutím číslování stran uveden začátek dokumentu. Vše, co bylo doposud uvedeno slouží pouze k nastavení parametrů sazby, po uvedení začátku dokumentu je již možné začít vytvářet jeho obsah. Dokument musí být rovněž ukončen. K zahájení a ukončení dokumentu se používají \begin{document}, \end{document}. Mezi nimi je psán obsah textu. Pokud je zdrojový kód velký, může být rozdělen do více souborů, jenž jsou vkládány makrem \input.

V následujícím příkladu je uveden celý vstupní dokument.

 \documentclass[a4paper,twoside]{article}

 \usepackage{czech}
 \usepackage{a4wide}

 \pagestyle{plain}

 \begin{document}
   Toto je můj první, filologicky nenáročný,
   dokument v~\LaTeX u.
 \end{document}

Zdrojový text dokumentu je k disposici v souboru sample.tex. Nyní zbývá pouze provést překlad vstupního souboru. Překladem zdrojového dokumentu ve formátu LaTeX vznikne výstupní soubor nezávislý na zařízení. Tento soubor může být vytištěný pomocí příslušného ovladače zařízení. Nejčastěji je ovšem konvertován do jazyka PostScript či formátu PDF.

K překladu dokumentu ve formátu LaTeX se používají programy latexcslatex. Druhý z nich se používá při překladu českých dokumentů. Formát plainTeX k překladu používá programy texcsplain. Každý program bere jeden argument, tím je název vstupního datového souboru.

Úkol 1. Vytvořte vstupní textový soubor podle předloženého vzoru. Proveďte jeho překlad.

 $ cslatex sample.tex

Po úspěšném překladu bude vytvořeno několik nových souborů. Soubor s příponou .dvi sestává z přeloženého dokumentu. Formát .dvi je velmi jednoduchý jazyk uchovávající informaci o rámcích a jejich vzájemné poloze. Neobsahuje v sobě fonty ani jinou grafickou representaci. Soubor ve formátu DVI je potřeba ještě dál zpracovat. Typicky je soubor zkonvertován programem dvips, nebo dvipdfm. Viz příklad.

 $ dvips -t a4 -o sample.ps sample.dvi
 $ dvipdfm -p a4 -o sample.pdf sample.dvi

Argumenty -t-p slouží k definici výstupního média. V předchozí ukázce se jednalo o papír formátu A4. Argument -o definuje jméno výstupního soubor. Není-li argument uveden, výstupní soubor je poslán na implicitní tiskárnu.

Úkol 2. Z přeloženého dokumentu vytvořte soubory v jazyku PostScript a formátu PDF. Výsledné soubory si prohlédněte.

2.  Bloky a prostředí

Blokem neboli skupinou je označován úsek vstupního textu, jenž je zleva a zprava označen speciálním způsobem. Hlavním úkolem bloku je seskupovat části vstupního dokumentu a omezovat rozsah platnosti maker. Je-li například změněn řez písma uvnitř bloku, po jeho dokončení je automaticky používáno původní písmo. Blok může být ohraničen pomocí složených závorek {}. Text uvedený uprostřed závorek je uvnitř tohoto bloku. Závorky musejí být vždy párové. To je v některých situacích omezující, především při vytváření maker. Blok lze vymezit makry \begingroup, \endgroup, nebo jejich zkrácenými variantami \bgroup, \egroup. Bloky budou dále využity například při práci s fonty.

Pojem prostředí je výsadou formátu LaTeX. Prostředí je zahájeno makrem \begin a ukončeno makrem \end. Obě makra mají za povinný argument název prostředí. Prostředí lze libovolně vnořovat. Prostředí slouží v systému LaTeX k vymezení textu, který má být chápán jistým způsobem. Existují například speciální prostředí sloužící pro sazbu citací. Text uzavřený v takovém prostředí je chápán jako citace a při jeho sazbě bude zmenšena šířka stránky. Kromě vestavěných prostředí lze v systému LaTeX definovat i uživatelská prostředí. Následující příklad ukazuje dvě vnořená prostředí a jeden blok.

 \begin{center}
   \bgroup
     ...
   \egroup
   \begin{tabbing}
     ...
   \end{tabbing}
 \end{center}

Bloky a prostředí v dokumentu tvoří hierarchickou strukturu.

3.  Hladká sazba

Pro hladkou sazbu je charakteristické vytváření odstavců pevně dané šířky, jenž jsou psány písmem pevného stupně a typu. Rovněž se nepoužívají zdobné varianty písma. Systém TeX zachází se vstupním textem specifickým způsobem. V drtivé většině případů jsou libovolně dlouhé řetězce mezer chápány jako jedna mezera a prázdný řádek je brán jako konec odstavce. Odstavec lze explicitně ukončit makrem \par. Speciální význam má znak %. Po jeho prvním výskytu je až do konce řádku text chápán jako komentář. Navíc jsou ignorovány všechny mezery ze začátku řádku předchozího.

Program TeX má v sobě zahrnuto množství algoritmů. Jedním z nich je i algoritmus řádkového zlomu. Tímto algoritmem jsou vypočítávány mezery mezi slovy a jejich dělení tak, aby byl text zarovnaný, opticky vyvážený a dobře čitelný. Algoritmus dělení slov je velmi mocný, obecně navržený a navíc pracuje s překvapivě malou databází slov. V některých případech je ale nutné explicitně určit, v jakých místech se slovo může zlomit. K tomu slouží symbol \-. Například ve větě

 Budova slouží jako obecní kniho\-vna.

je použit symbol \- vyznačující jediné možné dělení slova. Pokud se slovo vyskytuje v textu na víc místech, lze jeho dělení deklarovat na začátku dokumentu makrem \hyphenation. Argumentem makra je seznam povolených zlomů oddělených mezerami. Viz příklad.

 \hyphenation{kniho-vna pře-dev-ším}

Parametry algoritmu řádkového zlomu lze nastavovat. V podstatě se jedná o úlohu lineárního programování. TeX se snaží najít optimum při stanovených podmínkách. Ve formátu LaTeX je k disposici makro \sloppy, jenž zmírňuje kritéria sazby odstavce. V textu se mohou vyskytovat větší mezery. Makrem \fussy se LaTeX vrací k výchozímu nastavení parametrů zlomu.

Systém TeX automaticky provádí slitky a podřezávání. Jde o metody slití a vzájemného přiblížení sousedících znaků tak, aby bylo v textu optimální světlo a nepůsobil rušivě. Pokud je potřeba slitek nebo podřezání dvou znaků potlačit, stačí mezi ně vložit prázdnou skupinu {}. Slitky se potlačují například v anglických slovech, jenž vznikla složením dvou slov. Slitek by v takovém případě neměl vzniknout. Pro vstup

 AV A{}V film f{}ilm shelfful shelf{}ful

obdržíme (zvětšený) výstup

Obrázek 1. Slitky a podřezávání.

Potlačení slitku v případě slova „shelfful“ bylo správné. V ostatních případech bylo potlačení slitku a podřezání nevhodné.

Jedním ze základních typografických pravidel je zacházení s mezerami. Mezera nebo posloupnost mezer vytvořených ve zdrojovém kódu representuje jednu mezeru v textu. V této mezeře může být řádek zlomen. Zúžená mezera se vytváří symbolem \,. Zúžená mezera se používá například k oddělení hodnoty a jednotky, vyznačení řádů čísla, nebo k oddělení speciálních symbolů, například procent. Třetím typem mezery je nezlomitelná mezera a je representována aktivním znakem ~. V nezlomitelné a v zúžené mezeře se nemůže zlomit řádek. Nezlomitelná mezera se používá před všemi jednoslabičnými spojkami a předložkami vyjma „a“, dále se používá například k oddělení iniciál, nebo titulu.

Úkol 3. Následující text vysázejte do odstavce. Při jeho psaní využijte tří druhů mezer tak, aby nemohlo dojít k nežádoucímu zlomu a v textu byly požadované mezery. V číselné hodnotě vyznačte řády pomocí zúžené mezery.

 K. J. Erben je autorem sbírky Kytice.
 V lednu a v únoru bývá zpravidla větší zima než v létě.
 Celková suma činila 14900 Kč.

Při psaní interpunkce by měla být dodržována standardní pravidla, před tečkou a čárkou by nikdy neměla být uvedena mezera. Mezery se píší vždy až za interpunkcí. Spojovník je horizontální čárka nejmenší velikosti a používá se ve výrazech „chceme-li“ a podobně. V TeXu odpovídá spojovníku jeden znak -. Pomlčka má velikost půl čtverčíku. Na rozdíl od spojovníku se používá v případě, kdy je potřeba dva celky oddělit. Typicky se používá například u letopočtů, nebo ve větných celcích. Pomlčka je v systému TeX representována dvěma znaky --. Zejména v angloamerické typografii se využívá rovněž čtverčíková pomlčka, ta je representována ---. Tato pomlčka bývá někdy používána i v českých textech.

Úkol 4. Následující text vysázejte, všimněte si velikosti spojovníku a pomlčky. Za pozornost stojí i odsazení pomlčky dvěma mezerami. V prvním řádku z ukázky jsou slova hodně roztažena. Z úsporných účelů byla ukázka vysázena s malou šířkou paragrafu, proto se TeXu nepodařilo text zalomit lépe.

Obrázek 2. Příklad spojovníku a pomlčky.

V textu hrají speciální roli prvky vyznačující strukturu textu, uvozované pojmy a přímou řeč. V TeXu je možné použít takřka libovolné závorky, nejčastěji jsou používány kulaté. Výjimečně lze použít i hranaté a složené. Složené závorky ale nelze psát přímo, poněvadž mají význam oddělovačů bloku. Musejí být psány ve tvarech \{\}. Je-li v závorkách uvedena celá věta, sází se interpunkce uvnitř závorek. Závorky by se v hladkém textu nikdy neměly vnořovat.

Při psaní uvozovek je třeba striktně dodržovat normu pro daný jazyk. V žádném případě nelze psát uvozovky pomocí znaku ". České uvozovky se vytváření makrem \uv. Argumentem makra je text uvedený uvozovkách. Oba znaky českých uvozovek lze psát i pomocí \clqq\crqq. Americké uvozovky se značí dvojicí ``''. Rozdíl mezi oběma notacemi je jasný. České uvozovky musejí začínat dole, kdežto americké jsou obě nahoře. K českým uvozovkám existuje alternativa, uvozovky v obráceném francouzském stylu. Znaky francouzských uvozovek se zapisují makry \flqq\frqq.

Úkol 5. Vysázejte následující text.

Obrázek 3. Druhy uvozovek.

Při sazbě je leckdy potřeba použít speciální znaky. Jedná se o paragraf, znaky & a @, dále znaky pro měnové jednotky a stupně. Pro označení narození a úmrtí se používají hvězdička a mečík. Speciální kategorií jsou stupně. Sázejí se v matematickém režimu. V následujícím obrázku jsou uvedeny jednotlivé symboly.

Obrázek 4. Speciální symboly.

Úkol 6. Vyzkoušejte následující příklad. Všimněte si, na jakých místech jsou vytvářeny zúžené mezery.

 Ing.~Vyprahlý vedl vědeckou diskusi o~problematice
 pití 12$^\circ$ piva o~teplotě 15\,$^\circ$C
 v~místnosti s~průměrnou vlhkostí vzduchu 95\,\%.

Je-li v LaTeXu zapnutý český styl, lze psát znaky s diakritikou přímo z klávesnice. V době vzniku TeXu pracoval program pouze se 7-bitovým ASCII kódem. Všechny diakritické znaky musely být psány pomocí akcentů -- speciálních maker. Akcenty se používají i dnes, například při sazbě cizích jmen, či názvů.

Úkol 7. Vyzkoušejte následující příklad. V prvním řádku jsou uvedeny akcenty běžné pro české znaky. Další příklad demonstruje umístění dvou akcentů nad sebe.

 \r u, \v r, \'e, \"o, \^o, \'j, \'\j
 Autorem pdf{}\TeX u je
 H\`an Th\^e\kern-5pt\lower-2.4pt\hbox{\'{}} Th\`anh.

Ve formátu LaTeX jsou předdefinovány speciální makra generující text. Jejich uvedením se na dané místo do dokumentu vloží textová informace. Mezi nejpoužívanější patří aktuální datum vkládané makrem \today. Chceme-li v dokumentu uvést, že byt vytvořen systémem TeX, lze k tomu použít makra \TeX\LaTeX. Všechna makra vkládající text ignorují mezery bezprostředně za svým uvedením. Je-li potřeba udělat mezeru za takovým makrem, musí se za ním uvést například prázdná skupina {}.

Úkol 8. Vysázejte následující text. Pro aktuální datum použijte makro \today.

 Dnes je 28. srpna 2001.
 Autorem programu TeX je Donald E. Knuth.
 Formát LaTeX je dílem Lesslie Lamporta.

4.  Práce s fonty

Pro smíšenou sazbu je typická práce s více typy písma v jednom textu. Smíšená sazba se používá především v případě, kdy je nutné některé části textu zdůraznit. Systém TeX pracuje s fonty unikátním způsobem. Striktně rozděluje informaci o metrikách písma od samotné grafické representace jednotlivých znaků. Při překladu dokumentu systémem TeX dochází pouze ke kalkulaci s metrikami fontů. Je až na výstupním ovladači, aby provedl renderování fontu. Tímto způsobem je dosaženo unikátní přenositelnosti a rozšiřitelnosti samotného TeXu.

Součástí systému TeX jsou i Computer Modern fonty vyvinuté D. E. Knuthem. Při manipulaci s písmem v dokumentu se snažíme zpravidla o změnu jeho stupně, váhy, nebo varianty. Je možné používat i různé rodiny fontů, ale nelze to příliš doporučit. Čím více fontů bude v dokumentu použito, tím méně bude přehledný. Tato poučka tak úplně neplatí o matematických textech. V nich může vést naopak větší množství použitých fontů k větší přehlednosti. To se ale samozřejmě týká pouze matematických výrazů, nikoliv samotného textu.

Stupeň písma lze měnit makry \tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge\Huge. Makra jsou uvedena vzestupně podle zvětšení písma. Makra mají platnost od svého uvedení až do konce bloku. Je-li v deklaraci dokumentu uveden jiný než implicitní rozměr základního písma, modifikují předchozí makra automaticky velikosti.

Úkol 9. Napište odstavec textu a zkuste měnit velikosti částí textu. Pro definici bloku použijte složené závorky i jejich ekvivalentní makra. Všimněte si, že pokud je zvětšen či zmenšen jen úsek odstavce, zpravidla to vypadá dost nepřirozeně.

Váhu písma lze nastavovat makry \mdseries\bfseries. První nastaví netučné písmo daného stupně a varianty, druhé makro nastaví polotučný řez. Makra mají platnost od svého uvedení až do konce bloku. Pro změnu písma na tučný řez lze použít i makro \bf, to ale nezachová variantu a typ písma. Makra \bf byla používána ve formátu LaTeX 2.09. Polotučný řez se používá zejména ve vědecké literatuře, kde je používán ke zvýraznění zaváděných pojmů. V běžné literatuře se zvýrazňuje zejména změnou varianty písma.

Úkol 10. Vyzkoušejte v textu některá slova zvýraznit ztučněním.

Variantu písma lze měnit makry \itshape, \slshape, \scshape\upshape. Jedná se o kursívu, skloněné písmo, kapitálky a vzpřímené písmo. Kusíva se používá k vyznačování v textu. Je velmi dobře čitelná a není tolik rušivá jako ztučněné písmo. Kapitálky jsou ozdobné a měly by se používat například při psaní jmen citovaných autorů, nebo jiných vážených osobností. Varianty lze zapnout i makry z formátu LaTeX 2.09, \it, \sl\sc. Opět se ale nezachovají ostatní vlastnosti fontu.

Úkol 11. Vyzkoušejte následující příklad. Všimněte si rozdílu mezi přepnutím varianty písma.

 {\it Toto je můj první, \bf filologicky nenáročný \sl dokument.}
 {\itshape Toto je můj první, \bfseries filologicky
  nenáročný \slshape dokument.}

Pro vyznačování se používá speciální makro \emph. Makro bere jeden argument -- vyznačovaný text. Je-li zapnuta vzpřímená varianta písma, zapne vyznačovací režim kursívu. Nachází-li se v kursívě, bude se vyznačovat vzpřímenou variantou téhož stupně a váhy.

Při používání kursívních a skloněných variant písma je dobré upozornit na kursívní korekci. Při přechodu z kursivního či skloněného písma na vzpřímené může dojít k nepříjemnému sražení dvou sousedních znaků. Mezi přechod se vkládá speciální korekturní horizontální mezera -- kursívní korekce. Korekci lze vytvořit symbolem \/.

Typ písma lze změnit makry \rmfamily, \sffamily\ttfamily. Makra zapínají patkové písmo, bezpatkové písmo a strojopis. Strojopis je charakteristický stejnou šířkou všech znaků, neobsahuje žádné slitky ani podřezané dvojice znaků. Předchozí makra mají opět i varianty ve formátu LaTeX 2.09, \rm, \sf\tt.

Ke snazšímu přepínání parametrů písma lze použít i zjednodušená makra uvedená v následující tabulce. Všechna tato makra nají jeden parametr, tím je text, který je požadovaným druhem písma sázen. Odpadá tedy nutnost explicitně vytvářet bloky definující rozsah platnosti. Příkazy zapínající kursívní a skloněnou variantu rovněž automaticky vytvářejí kursívní korekci. Pokud je potřeba kursívní korekci potlačit, lze k tomu využít makro \nocorr.

1. notace2. notacevýznam
\textrm\rmfamilypatkové písmo
\textsf\sffamilybezpatkové písmo
\texttt\ttfamilystrojopis
\textmd\mdseriesnetučné písmo
\textbf\bfseriespolotučné písmo
\textit\itshapekursíva
\textsl\slshapeskloněné písmo
\textup\upshapevzpřímené písmo
\textsc\scshapekapitálky
\emphzvýraznění

Úkol 12. Předchozí změny parametrů písma proveďte pomocí maker začínajících prefixem \text.

5.  Sazba odstavců

Za odstavec je považován blok textu, zarovnaný z obou stran. Tvar odstavců a jejich vzájemnou polohu lze do jisté míry měnit. Nový odstavec je zahájen ukončením předchozího odstavce prázdným řádkem. Stejný efekt má i makro \par. Odstavce začínají odstavcovou zarážkou, to jest první řádek odstavce má od okraje stránky větší vzdálenost. Někdy může být odstavcová zarážka vynechána, to jest odstavec začíná na levém okraji stránky. V angloamerické literatuře začíná typicky první odstavec kapitoly na levém okraji, každý další odstavec má nastavenu nenulovou zarážku.

K explicitnímu zahájení odstavce lze rovněž použít makra \indent\noindent. Prví z nich vytvoří odstavec se zarážkou standardní velikosti, druhý vytvoří odstavec bez zarážky. V drtivé většině případů je ale odstavec zahájen bez použití těchto maker.

Úkol 13. Napište odstavec textu. Zahajte jej nejprve makrem \noindent, poté makrem \indent. Pozorujte rozdíly.

V některých případech je v odstavci nutné přejít na nový řádek. Nepodmíněným přechodem na nový řádek se nevytvoří nový odstavec. K přechodu slouží makra \\\\*. Druhá varianta navíc nepovolí v tomto místě zlomit stránku. Obě makra mají nepovinný argument určující velikost mezery.

Úkol 14. Uprostřed odstavce proveďte nepodmíněný přechod na nový řádek. Vyzkoušejte použít makro \\ s nepovinným argumentem. Vytvořte vertikální mezeru o velikosti 2 cm.

Mezi dvěma odstavci lze vytvořit vertikální mezeru. V předchozím případě mohla být vertikální mezera vytvořena uprostřed odstavce makrem \\. Mezi dvěma odstavci lze vytvořit mezery předdefinovanými makry \smallskip, \medskip\bigskip. Kromě toho lze použít makra \vspace, \vspace*. Varianta s hvězdičkou vytvoří požadovanou mezeru vždy, varianta bez hvězdičky ji nevytvoří na začátku, nebo na konci stránky. Argumentem obou maker je velikost mezery.

Uvnitř odstavce mohou být vytvořeny dodatečné horizontální mezery. Kromě standardních mezer, kterými jsou zúžená mezera, nezlomitelná mezera a kursívní korekce, lze vytvořit větší mezery makry \quad\qquad. Makra vytvářejí mezery velikosti jednoho a dvou čtverčíků. Obecná makra \hspace, \hspace* vytvářejí mezeru o zadané velikosti. Hvězdičková varianta makra vytvoří mezeru i v případě, že se nachází na začátku, nebo konci řádku.

Úkol 15. Vytvořte dva odstavce. Měňte jeji vzájemnou vzdálenost makry \smallskip, \medskip\bigskip. Vyzkoušejte vytvořit vertikální mezeru velikosti 27 mm. Dále v textu vytvořte horizontální mezery makry \quad, \qquad\hspace. Vytvořte mezeru na začátku odstavce pomocí makra \hspace*.

Při vyjadřování délek lze využít délkové registry. Kromě uchování údajů o pevné délce umožňují využívat i pružné délky. K registru může být připočítávána, případně odečítána jiná délka. Ve formátu LaTeX je již několik délkových registrů předdefinováno. Jedná se například o hodnoty geometrie odstavce a zrcadla stránky. Délkové registry lze definovat i na uživatelské úrovni. Makro \newlength zavádí nový délkový registr. Jeho argumentem je název registru. Jeden registr může být definován nanejvýš jednou. Délkový registr lze naplnit makrem \setlength. Prvním argumentem makra je název registru, druhý je požadované délka. Viz příklad.

 \newlength{\delka}
 \setlength{\delka}{1.75cm}

Na délkový registr se lze odkazovat pomocí jeho názvu. Před názvem může být uveden koeficient zvětšení. Výsledná velikost je spočtena jako součin obsahu registru a koeficientu zvětšení. Odkazy jsou analogické, jako v případě délkových jednotek.

Úkol 16. Vyzkoušejte následující příklad.

 \newlength{\puvodni}
 \setlength{\puvodni}{1cm}
 \noindent
 Pokusný\hspace{\puvodni}text. \\
 Pokusný\hspace{0.33\puvodni}text. \\
 Pokusný\hspace{2.5\puvodni}text.

Pružná délka se vztahuje k řádkovému zlomu. Je v podstatě definována jako hodnota spolu s její kladnou a zápornou tolerancí. Při definici pružné délky se používají slova plus, minus v tomto pořadí. Údaje za těmito slovy vyznačují možné meze zvětšení a zmenšení. Například příkazy

 \newlength{\pruzna}
 \setlength{\pruzna}{2cm plus 1cm minus 2mm}

je definována délka 2 cm, která může být případně zvětšena až o 1 cm a zmenšena až o 2 mm. Velikost mezery natažení nebo zkrácení mezery volí algoritmus řádkového zlomu. Pokud je pružná hodnota vynásobena, přejde v pevnou hodnotu. Velikost v registru lze zvětšit, nebo zmenšit makrem \addtolength. Prvním argumentem je jméno registru. Pokud je druhým argumentem záporná hodnota, je absolutní délka odečtena. Speciální předdefinovanou pružnou délkou je \fill. Ta se zvětší na největší možnou velikost podle toho, jak jí to okolní boxy dovolí. Makry \vfill, \hfill se vytvářejí vertikální a horizontální mezery maximální velikosti. Makra \dotfill\hrulefill slouží k vyplnění horizontální mezery tečkovanou, nebo plnou čarou.

Zvláštním případem nastavení velikosti délkového registru je nastavení délky podle vstupního výrazu. K tomuto účelu slouží makra \settowidth, \settoheight\settodepth. Prvním argumentem je délkový registr, druhým argumentem je text, jehož šířka, výška, případně vzdálenost od účaří ke spodnímu okraji textu, bude uchována v registru.

Úkol 17. Vyzkoušejte následující příklad. Ověřte, že \settowidth bude fungovat správně i při zvětšení stupně písma, případně při zadání složitějšího výrazu.

 \newlength{\vynechana}
 \settowidth{\vynechana}{text}
 \noindent
 Uprostřed je \hspace{\vynechana} vynechán. \\
 Uprostřed je text vynechán.

Délkovými registry je určována i geometrie odstavce a tvar zrcadla stránky. V následující tabulce jsou uvedeny nejdůležitější registry pro změnu geometrie odstavce.

registrvýznam
\baselineskipřádkování
\parindentodstavcová zarážka
\parskipmezera mezi odstavci
\leftskipvelikost levého okraje
\rightskipvelikost pravého okraje

Stránkový zlom lze provést nepodmíněně makry \newpage\clearpage. V druhém případě se navíc LaTeX pokusí umístit všechny doposud neumístěné plovoucí objekty. V oboustranném dokumentu je někdy potřeba přejít na další lichou stranu. K tomuto účelu slouží makro \cleardoublepage. K úpravě velikosti aktuální stránky se používá makro \enlargethispage. Jeho argumentem je velikost zvětšení či zmenšení. Makro existuje i ve hvězdičkované podobě, to se snaží zmenšit i vertikální mezery na nejmenší únosnou míru.

Úkol 18. Vyzkoušejte nepodmíněný stránkový zlom.

6.  Členění dokumentu

Nyní se budeme věnovat logickým částem dokumentu a jejich vytváření. U jednotlivých stylů se standardní části publikací výrazně liší. V následujícím textu se budeme zabývat typickou strukturou dokumentů rozsahu článku. Jejich forma je podobná stylům pro psaní ročníkových projektů a diplomových prací.

První částí dokumentu tvoří úvod. Úvod zpravidla sestává z titulní stránky, abstraktu a obsahu. Titulní strana sestává z informací o autorovi a názvu díla. Obvykle je zde uvedeno i datum vzniku souboru, případně další dodatečné informace. Jméno autora a název díla lze definovat makry \author\title. Makra mohou být použita i vně prostředí document. Úvodní stránku lze do dokumentu vložit makrem \maketitle. Toto makro ale již musí být uvedeno uvnitř prostředí document a mělo by zde být uvedeno jako první.

Úkol 19. Ke stávajícímu dokumentu zadejte název a autora. Vytvořte úvodní stránku. Všimněte si, že stránka implicitně není oddělena od ostatního textu.

Buďto přímo na úvodní stránce, nebo bezprostředně za ní, bývá uveden abstrakt. Abstrakt by měl stručně charakterisovat obsah celého textu. Neměl by přesáhnout deset řádků a nikdy by neměl být složen z více odstavců. Abstrakt je definován makrem \abstract a je do textu ihned vložen.

Úkol 20. Vytvořte abstrakt dokumentu. Nejprve jej vytvořte na téže straně jako nadpis. Dále jej zkuste umístit na samostatnou stránku těsně za titulní stranou.

Poslední často používanou komponentou úvodu knihy je obsah, případně seznam tabulek a obrázků. Obsah je generován zcela automaticky, pro jeho vložení do dokumentu se používá makro \tableofcontents. Obsah je obvyklé umísťovat na samostatnou stránku, u malých dokumentů může být součástí první stránky. Při použití obsahu je nutné přeložit zdrojový dokument víckrát. Analogicky jako obsah fungují i seznamy tabulek a obrázků. Lze je vygenerovat makry \listoftables\listoffigures. Obě makra vygenerují seznam tabulek a obrázků uzavřených v plovoucích prostředích.

Textová část dokumentu bývá rozdělena do sekcí. Druhy a počet sekcí se opět liší v každém stylu. Většinou se pro oddělení používají makra \section, \subsection\subsubsection. Makra existují i ve variantě s hvězdičkou na konci. Hvězdičkovaná makra způsobí, že sekce není číslována a rovněž není zahrnuta do obsahu. Jeden povinný argument maker definuje název sekce. Nepovinným argumentem se předává text, jenž bude zahrnut do obsahu místo názvu sekce. Jedna sekce je vymezena počátečním výskytem makra a ukončena dalším makrem zahajujícím logický celek.

Dodatky se vytvářejí stejným stylem jako kapitoly. Pouze jsou číslovány písmeny. V textu lze zadat začátek dodatků makrem \appendix. Každá sekce uvedená za výskytem tohoto makra bude chápána jako dodatek a bude tomu odpovídat i její značení. Při psaní dodatků je někdy zvykem používat menší stupeň písma.

Úkol 21. Vytvořte kapitoly a vnořené podkapitoly. Vygenerujte obsah. Přidejte novou kapitolu. Všimněte si, že po prvním přečtení ještě nebude zahrnuta v obsahu. Vytvořte dodatky.

Kapitoly a dodatky definované hvězdičkovaným makrem nejsou zahrnuty v obsahu. V některých případech je ale vhodné vynutit si jejich přidání do obsahu makrem \addcontentsline. Makro bere tři argumenty, prvním z nich je typ seznamu, druhý definuje polohu v hierarchii, třetí je vlastní název. Viz příklad.

 \appendix
 \section*{Dodatky}
 \addcontentsline{toc}{section}{Dodatky}

Seznam toc určuje obsah a shoduje se s příponou souboru v němž si LaTeX ukládá informace o kapitolách. Druhý argument určuje, že v obsahu bude záznam uveden na úrovni sekce. Poslední je samotný název dodatků.

V závěrečné části dokumentu je uvedena především bibliografie. V některých případech zde může být i rejstřík a resumé.

7.  Křížové odkazy a bibliografie

Systém křížových odkazů umožňuje odkazovat se na jiné části dokumentu. V každém významném prostředí, jako jsou například kapitoly, podkapitoly, obrázky, vzorce a tabulky, lze definovat návěstí makrem \label. Argumentem makra je jméno návěstí. Každé speciální prostředí spojí návěstí k konkrétním objektem. Například pokud je návěstí definováno v obrázku, bude skutečně odkazovat na obrázek, nikoliv například na kapitolu, kterou tento obrázek obsahuje.

Na definované návěstí se lze odkazovat pomocí maker \ref\pageref. Obě makra berou jako argument symbolické jméno návěstí definované pomocí \label. Výsledkem makra \ref je vložení informace spojené s návěstím. Může to tedy být například číslo kapitoly, podkapitoly, nebo příkladu v rámci kapitoly. Makro \pageref do textu vkládá číslo strany, na které bylo návěstí definováno.

Při využívání křížových odkazů je dost dobře možné, že nebudou při prvním průchodu formátovačem všechny navázány. V tom případě jsou v dokumentu na místě odkazu uvedeny dva tučné otazníky. Skutečnost nenavázání odkazu je po překladu zdrojového dokumentu ohlášena. V tomto případě je nutné provést překlad dokumentu několikrát.

Úkol 22. Vyzkoušejte odkazy. V textu vytvořte dvě kapitoly a jejich podkapitoly. Vytvořte vzájemné odkazy. Text rozdělte na víc stran a vyzkoušejte odkazy na stránky.

Dalším druhem odkazů jsou odkazy do bibliografie. Hlavním rozdíl je v umístění bibliografie. Ta je ve většině případů umístěna na konci dokumentu, zpravidla před rejstříkem, někdy i před dodatky. K vytvoření seznamu literatury se používá speciální prostředí thebibliography. Prostředí má povinný argument, jehož velikost určuje šířku levého sloupce. Typicky se zde uvádí nejdelší označení knihy. Levý sloupec je vyhrazen pro označení knihy. Standardně jsou knihy číslovány od jedné, je ale možné využít i názvy ve tvaru zkratky jména autora a roku vydání.

V prostředí thebibliography je každý záznam o knize zahájen makrem \bibitem. Makro má jeden povinný a jeden nepovinný argument. Povinný argument definuje návěstí knihy podobně, jako tomu je u makra \label. Nepovinný argument určuje označení knihy. Není-li označení uvedeno, bude místo něj použito pouze číslo.

Úkol 23. Na poslední stranu dokumentu vložte následující bibliografii.

 \bibitem[AWK88]{awk}
   Aho, A.~V. --- Kernighan, B.~W. --- Weinburger, P.~J.
   {\em The AWK Programming Language.} \\
   Addison Wesley Longman, Inc., 1988.

 \bibitem[Bac86]{bach}
   Bach, M.~J. {\em The Design of the UNIX Operating System.} \\
   Prentice Hall Software Series, 1986.

 \bibitem[Bou82]{bour}
   Bourne, S.~R. {\em The UNIX System.} \\
   Addison Wesley Longman, Inc., 1982.

Na knihy z bibliografie je možné odkazovat se makrem \cite, k odkazům není možné použít makra \ref ani \pageref. Makro \cite má jeden povinný argument, jenž se musí shodovat s jedním definovaným návěstím knihy.

Úkol 24. Vyzkoušejte odkazy na bibliografii. Odstraňte u definic knih jejich symbolické názvy. Při dalším překladu již budou knihy číslovány.