\documentclass[]{article} \usepackage[czech]{babel} \usepackage[latin2]{inputenc} \usepackage{a4wide} \usepackage{index} % inicializace rejstříků \newindex{default}{idx}{ind}{Rejstřík} \newindex{cmnd}{cdx}{cnd}{Rejstřík použitých příkazů} % pomocné příkazy \def\cindex{\index[cmnd]} % zařazení do rejstříku příkazů \newcommand{\hla}[1]{\textit{#1}} % pro vysvětlení pojmu \proofmodetrue \begin{document} % ----------------------------------------------------------------- 1 díl --- \section{Úvod} {\it Poslední dobou se čím dál častěji setkávám s~lidmi, kteří by chtěli začít psát texty v~opravdu dobrém programu. A již v první větě se dopouštím chyby, protože následující text a~další články nebudou o editoru, ale sázecím systému \LaTeX\index{LaTeX@\LaTeX}. Těmto začínajícím uživatelům nabídnu sérii článků ve stylu HOWTO. Dnes nás čeká úvodní kapitola obsahující základní informace, odkazy na zdroje a také něco málo z instalace.} \par \subsection{Na začátek pár poznámek} \par Je docela možné, že se v těchto článcích objeví několik drobných chyb či nepřesností. Avšak články nemají za úkol vysvětlit teorii a terminologii, jejích úkolem je naučit začátečníky běžným konstrukcím v \LaTeX{u}, jako je sazba tabulek\index{tabulka}, obrázků\index{obrázek}, seznamů\index{seznam}, ale také je seznámit se základní strukturou\index{struktura!dokumentu|see{dokument}} dokumentu\index{dokument!struktura} a rozšiřujícími moduly. \par V článcích\index{článek} se budeme věnovat i některým problémům, které jsou specifické pro českou sazbu\index{sazba}\index{česká sazba}, a problémům, s kterými jsem se trápil já nebo o kterých mi napíšete. \par Snad poslední poznámka bude věnováná tomu, že nejsem odborník na \LaTeX ani \TeX\index{TeX@\TeX} (tedy tzv. TeXpert) a ani odborník na sazbu, jsem prostě obyčejný uživatel \LaTeX{u} a chtěl bych vás seznámit s tímto skvělým a jedinečným sázecím programem\index{program}. Z tohoto pohledu pochopte, že se v některých věcech mohu mýlit (autor se nechává slyšet, že bude dělat chyby :), případně zapisovat některé konstrukce neefektivně, a to z důvodu toho, že to lépe neumím nebo že by to kolidovalo se snahou pedagogicky působit na stránku názornosti (a tímto způsobem se autor bude snažit chybu zamaskovat :). \subsection{Informační zdroje} \par Ve světě se vyznavači \TeX{u} sdružují do skupin~-~TeX Users Group~(TUG). \index{skupina!uživatelů TeXu@uživatelů \TeX{u}} \index{TeX Users Group@\TeX\ Users Group} \index{TUG} Pro naši a také Slovenskou republiku existuje společné sdružení uživatelů TeXu~-~Československé sdružení uživatelů TeXu~(CSTUG). \index{Československé sdružení uživatelů TeXu@Československé sdružení uživatelů \TeX{u}} \index{CSTUG} Na jejich stránkách \texttt{www.cstug.cz} najdete odkazy na mnoho velmi zajímavých stránek a dalších informačních zdrojů. Velmi užitečné jsou také diskusní\index{skupina!diskusní} a newsové skupiny\index{skupina!news}. \par Software týkající se nějakým způsobem \TeX{u} je uchováván pohromadě v CTANu\index{CTAN} (Comprehensive TeX Archive Network) \index{Comprehensive TeX Archive Network@Comprehensive \TeX Archive Network} - je to obdobné jako s distribucemi\index{distribuce!linuxu} Linuxu\index{Linux} (někde někdo udržuje soubory pohromadě a ostatní z něj dělají zrcadla). České zrcadlo CTANu naleznete na \texttt{http://www.cstug.cz/}. \par A ještě se podíváme po velmi pěkných dokumentech, které mi v mých počátcích, ale i nyní velmi pomáhají. Mezi nejstěžejnější pro začátečníky považuji publikaci {\it Ne příliš stručný úvod do systému \LaTeX{2e}} s podtitulem {\it Neboli \LaTeX{2e} v 73 minutách}. Dokument lze nalézt na stránkách Michala Kočera, který spolu s Pavlem Sýkorou tento dokument přeložili. Za tento počin bych jim chtěl významně poděkovat. Další základní dokumenty (ale již v angličtině) se instalují se systémem \TeX\index{TeX@\TeX} (např. pro Debian\index{Debian} i Red~Hat\index{Red Hat} je to balík tetex-doc\index{tetex-doc}). \par Ještě bych chtěl upozornit na dva články, které vyšly již před nějakou dobou. V~prvním článku je uvedena trocha teorie a ukázka programu LyX\index{LyX}, ve druhém článku se pak můžete pokochat krásou dokumentu vytvořeného v \LaTeX{u}. Doporučuji všem, kteří neví, o čem byla doposud řeč. \subsection{Instalace}\index{instalace} \par Pro instalaci budeme potřebovat několik balíků. Ty, které se týkají \TeX{ovských} věcí, začínají na tetex\index{tetex}. Pokračování jména balíčku\index{balík} pak určuje jeho obsah; počet a pojmenování balíčků záleží na distribuci Linuxu. \index{distribuce!linuxu} Systému vůbec neublížíte (a budete bez starostí), pokud nainstalujete všechny balíčky, které začínají právě slovem tetex. \par Dalšími užitečnými programy jsou {\it ghostscript}\index{ghostscript} a {\it ghostview}\index{ghostview}, jsou většinou uloženy v balíčcích pojmenovaných {\tt gs}\index{gs|see{ghostscript}} a {\tt gv}\index{gv|see{ghostview}}, balík gs bude pravděpodobně vyžadovat ještě další balíčky, ve kterých jsou uloženy \index*{postscriptové fonty} (některé distribuce fonty obsahují již ve jmenovaných balíčcích, jiné je mají odděleny). \par O instalaci a nastavení dalších věcí, které lze při práci s \TeX{em} využít, si řekneme, až je budeme potřebovat (ono stejně skoro nic nezbylo). \subsection{Test} \par Vyzkoušíme nainstalovaný software, zda nám přeloží následující minimální dokument\index{dokument!minimální}: \begin{verbatim} \documentclass{article} \begin{document} Dokument. \end{document} \end{verbatim} \par Při překladu je \TeX\index{TeX@\TeX} neuvěřitelně ukecaný (nepochází totiž z Unixu\index{Unix}, kde se programy řídí heslem {\it pokud je vše v pořádku, není důvod otravovat uživatele}~-~a to ani hlášením o provedení a správnosti úkolu). Při použití příkazu {\tt latex test.tex}\index{latex|texttt} se nejen vypíše hodně hlášení, ale ještě víc se jich uloží do souboru s příponou {\tt .log}\index{soubor!.log|texttt}, také se vytvoří soubor s příponou {\tt .aux}\index{soubor!.aux|texttt}, který nás zatím nebude zajímat. Posledním a pro nás zajímavým vygenerovaným souborem je {\tt test.dvi}.\index{soubor!.dvi|texttt} Tento formát je vytvořen tak, aby byl nezávislý na výstupním zařízení (ještě aby nebyl, když to má v názvu - DeVice Independent).\index{DVI|hla}\index{DeVice Independent|see{DVI}} Výstup už si můžeme prohlédnout programem {\tt xdvi}\index{xdvi} (dodává se jako součást balíků tetex). \par Většinou chceme daný text vytisknout.\index{tisk} Na systémech unixového typu se pro tisk užívá často formát PS (PostScript\index{postscript})\index{PS|see{postscript}}. Konverzi z DVI na PS nám zařídí příkaz {\tt dvips test.dvi -o test.ps}\index{dvips}\index{soubor!.ps|see{postscript}} (zadání výstupního souboru je nutností, jinak program posílá data přímo na tiskárnu). Program opět generuje řadu informací o probíhajícím převodu. \par Vygenerovaný PS soubor můžeme zkusit prohlédnout třeba programem gv\index{ghostview} a pokud uvidíte vpravo nahoře text {\tt Dokument.}, je vše v pořádku. Abyste mohli srovnat, jsou zde mé výsledky našeho testovacího souboru: {\tt test.dvi} a {\tt test.ps}. \par A co dělat, pokud se to nepovedlo? Tak to je problém, který vám nepomohu vyřešit. Takto na dálku snad jen radu: pokusit se programy přeinstalovat nebo se zeptat v diskusi, já nebo někdo jiný vám poradí. \subsection{Závěr} \par V příštím dílu se koukneme na balíčky, základní strukturu \LaTeX{ovského} dokumentu, a také si to celé vyzkoušíme trochu víc naostro. Prostě budeme pomaličku přitvrzovat. % ----------------------------------------------------------------- 2 díl --- \section{Pronikáme hlouběji} \par {\it V~dnešním dílu se podíváme na opravdový základ dokumentu napsaný v~\LaTeX{u}. Vysvětlíme si, co je to balíček, také si ukážeme jednoduchý příklad. A~nebude chybět ani nakouknutí do teorie :) } \par \par Ano, správně. Trocha teorie nikomu neuškodí, a~tak se objeví v~každém článku. Povětšinou nebude moc souviset s~probíraným tématem, ale myslím si, že se bude občas někomu hodit. \subsection{Teorie: \TeX vs. \LaTeX} \index{TeX@\TeX|(hla} \index{LaTeX@\LaTeX|(hla} \TeX je vlastně sada příkazů\index{příkaz}, kterými se formátuje dokument\index{dokument}. Tyto příkazy už se nemění~-~\TeX je zakonzervovaný. A~právě to je největší výhodou psaní dokument v~\TeX{u}. Protože když dnes v~\TeX{u} napíšete nějaký dokument, přeložíte jej se stejným výsledkem i~za 20~let na úplně jiných strojích s~jiným operačním systémem\index{operační systém}. Přeložíte jej stejně jak na počítači doma, tak v~práci, ale třeba také v~Tramtárii. \par \LaTeX je sada maker (tedy nové příkazy vytvořené z~\TeX{ovských} příkazů). Tato makra\index{makro} byla napsána tak, aby ulehčovala práci a~zároveň dodržovala zásady správného vzhledu dokumentu (typografické zásady). V~\LaTeX{u} nemusíte přemýšlet nad některými věcmi, o nichž byste museli přemýšlet při psaní v~\TeX{u} (je to tedy zjednodušení práce). Na druhou stranu se \LaTeX stále vyvíjí a~jeho sada příkazů se může změnit. Zde tedy již neplatí to, že dokument přeložíte znovu do stejné podoby i~za 20 let. Avšak s~drobnými úpravami by se to jistě povedlo. Stále na tom budete nesrovnatelně lépe (jak ve výsledné kvalitě, tak s~počtem ztracených nervových buňek) než při psaní dokumentů v~jiných programech, kde je už problém při přenášení dokumentu z~jednoho počítače na druhý. \index{TeX@\TeX|)} \index{LaTeX@\LaTeX|)} \subsection{Struktura dokumentu} \index{dokument!struktura|(hla} Dokument v~\LaTeX{u} se skládá ze dvou částí. První část (nazvěme si ji hlavičkou)\index{dokument!hlavička}\index{hlavička|see{dokument}} obsahuje základní nastavení celého dokumentu. V~druhé části pak už budeme psát vlastní text. Než to ale uděláme, povíme si něco o~příkazech.\index{příkaz} \par Všechny příkazy začínají znakem {\tt $\backslash$} (zpětné lomítko)\index{\\@$\backslash$}, za nímž následuje jméno příkazu\index{příkaz!jméno}. Pokud příkaz umožňuje zadání parametrů\index{parametr}\index{příkaz!parametr|see{parametr}}, píší se do bloků uvozených hranatými závorkami parametry nepovinné \index{nepovinný parametr|see{parametr}}\index{parametr!nepovinný|hla} (oddělují se čárkou) a~do složených závorek se vpisují parametry povinné. \index{povinný parametr|see{parametr}}\index{parametr!povinný|hla} Posloupnost bloků nepovinných a~povinných parametrů musí mít právě toto pořadí (v~dřívějších verzích byl možný i~opačný zápis). \par Prvním příkazem\index{příkaz} v~dokumentu je informace o~stylu\index{styl|see{dokument}} (třídě\index{třída|see{dokument}}) psaného dokumentu\index{dokument} (do verze 2.09 včetně se používal příkaz {\tt $\backslash$documentstyle}\cindex{documentstyle|hla} (nyní to je {\tt $\backslash$documentclass}\cindex{documentclass|hla}), odtud tedy ten {\it styl}\index{dokument!styl} dokumentu, který se mi zdá pro naše území přijatelnější než {\it třída}\index{dokument!třída} dokumentu): \begin{verbatim} \documentclass{article} \end{verbatim} \par Tímto úvodním příkazem jsme definovali, že budeme psát článek ({\it article}). \cindex{documentclass!article} LaTeX si tím nastaví hodnoty pro správný tisk dokumentu. Tento styl se používá nejčastěji. Lze také nastavit nepovinné parametry, např.: \begin{verbatim} \documentclass[11pt,titlepage]{article} \end{verbatim} \par Tím byly uvedeny dva nepovinné parametry (velikost základního písma ({\it 11pt})\cindex{documentclass!11pt} a~požadavek, že budeme chtít vygenerovat úvodní stránku samostatně ({\it titlepage})).\cindex{documentclass!titlepage} \par Za tímto úvodním příkazem většinou následují příkazy pro zavedení balíčků. Jednotlivé balíčky\index{balík} rozšiřují možnosti \LaTeX{u} o~různá prostředí\index{prostředí} (jako je například zápis algoritmů) nebo o~zvláštní fonty, případně dělají úplně něco jiného.\\ Pro zavedení balíčku se používá příkaz {\tt $\backslash$usepackage} \cindex{usepackage} s~tím, že jako povinný parametr se uvádí jméno balíčku, který chceme zavést, jako nepovinný parametr pak nějaká bližší specifikace. Tedy například: \begin{verbatim} \usepackage[latin2]{inputenc} \usepackage{czech} \end{verbatim} \cindex{usepackage!czech} \cindex{usepackage!inputenc} \cindex{usepackage!latin2} \index{balík!czech}\index{czech|see{balík}} \index{balík!inputenc}\index{inputenc|see{balík}} \par Oba příkazy dělají to, co si pravděpodobně myslíte. První říká \LaTeX{u}, že tento dokument bude mít vstupní kódování ({\it inputenc})\index{balík!inputenc|hla} dle latin2\index{latin2}. Díky tomuto příkazu bude \LaTeX vědět, co dělat s~diakritickými písmenky. Druhý příkaz je bez nepovinného parametru a~oznamuje, že dokument je psaný v~češtině (k tomu se také potom přihlédne při formátování dokumentu). \par Pak již následují další příkazy, o nich však již nelze říci nic konkrétnějšího. Vlastní text je uvozen příkazem {\tt $\backslash$begin\{document\}} \cindex{begin!document} a ukončen {\tt $\backslash$end\{document\}}\cindex{end!document}. Mezi tyto dva příkazy se vepíše náš text, který může být formátován příkazy. Vše za příkazem {\tt $\backslash$end\{document\}} se ignoruje. \par Držme se pravidla, že názornost je nejlepší, proto následuje celkový příklad: \begin{verbatim} \documentclass[11pt]{article} \usepackage[latin2]{inputenc} \usepackage{czech} \usepackage{a4wide} \begin{document} Můj už druhý dokument v \LaTeX u, tentokrát s češtinou. \end{document} \end{verbatim} \par V~textu jsme použili již první formátovací příkaz. Byl jím {\tt $\backslash$LaTeX}\cindex{LaTeX}, který místo sebe dosadí správně zapsané logo \LaTeX{u}. Všimněte si, že za příkazem {\tt $\backslash$LaTeX} byla mezera automaticky ignorována (příkaz by bylo možné zapsat také bez mezery, ale aby překladač poznal, kdy končí příkaz a~začíná text, je nutné uvést prázdný blok\index{prázdný blok} povinných parametrů, tedy takto:\\ {\tt ...v~$\backslash$LaTeX\{\}u,~tentokrát...}). \index{dokument!struktura|)} \par \subsection{Styly} \index{dokument!styl|(hla} \LaTeX má předdefinováno několik základních stylů (tříd): \begin{description} \item[article]\index{dokument!styl!article}\cindex{documentclass!article} je používán nejčastěji a~určen především pro odborné články, krátké zprávy, seminární práce, dokumentace k programům, ... \item[report]\index{dokument!styl!report}\cindex{documentclass!report} jeho použití není tak běžné, jelikož se používá až pro rozsáhlejší díla, která obsahují několik kapitol, mohou to být menší knihy nebo diplomové práce. \item[book]\index{dokument!styl!book}\cindex{documentclass!book} z~názvu je zřejmé, že právě toto je určeno pro psaní skutečných (plnokrevných) knih. \item[slide]\index{dokument!styl!slide}\cindex{documentclass!slide} určeno pro blány používané při prezentacích na projektoru, pro tisk se použije velké bezpatkové písmo. \item[letter]\index{dokument!styl!letter}\cindex{documentclass!leter} a~poslední styl je určen pro psaní dopisů \end{description} \par \noindent V~příkazu {\tt $\backslash$documentclass}\cindex{documentclass} lze použít tyto nepovinné parametry: \begin{description} \item[10pt, 11pt, 12pt] \cindex{documentclass!10pt} \cindex{documentclass!11pt} \cindex{documentclass!12pt} určí výšku základního písma\index{základní písmo} pro dokument. Výška je uvedena v~tiskařských bodech. Pokud není uveden parametr, je implicitně použita velikost 10 bodů. \item [a4paper, ...] \cindex{documentclass!a4paper} \cindex{documentclass!letterpaper} \cindex{documentclass!a5paper} \cindex{documentclass!b5paper} \cindex{documentclass!executivepaper} \cindex{legalpaper} udává velikost stránky, na kterou se bude provádět sazba dokumentu. Implicitní nastavení je letterpaper, lze ale použít některý z následujících: a5paper, b5paper, executivepaper, legalpaper. Narozdíl od američanů jsou evropané šetrní k lesům, a tak používají širší A4, proto se při sazbě u nás nepoužívá nastavení a4paper, ale použije se balíček a4wide (tedy příkaz $\backslash$usepackage\{a4wide\}).\cindex{usepackage!a4wide} Ten nastaví nové rozměry dokumentu, čímž se na stránku vleze více textu (toto nastavení se mi více líbí; nevypadá to, jako by autor neměl co říci a~tak zúžil okraje, to je ovšem věc vkusu a~američani jej asi mají jiný). \item[fleqn] \cindex{documentclass!fleqn} bude zarovnávat matematické rovnice\index{rovnice} na levou stranu, standardně jsou zarovnány na střed. \item[leqno] \cindex{documentclass!leqno} a~ještě jednou matematické rovnice\cindex{rovnice}, tentokrát se číslování rovnic bude sázet na levou stranu stránky (standardně to je vpravo). \item[titlepage, notitlepage] \cindex{documentclass!titlepage} \cindex{documentclass!notitlepage} Určí, zda titulní stranu\index{titulní strana} sázet samostatně, či nikoliv. Pro styl article\cindex{documentclass!article} se normálně samostatná titulní stránka nepoužívá. Opakem jsou styly report\cindex{documentclass!report} a~book\cindex{documentclass!book}, kde je primárně nastavena samostatná stránka. \item[twocolumn] \cindex{documentclass!twocolumn} máte chuť na sazbu do dvou sloupců? \item[twoside, oneside] \cindex{documentclass!twoside} \cindex{documentclass!oneside} jedná se o~nastavení, které rozhoduje, je-li výstup určen pro dvoustranný\index{dvoustranná sazba}, nebo jednostranný tisk\index{jednostranná sazba}. Sazba jednostranná se od dvoustranné liší v~různých velikostech okraje pravé a~levé strany pro vazbu (ovlivňuje také sazbu čísla stránky, případně záhlaví apod.). Pro styl article\cindex{documentclass!article} a~report\cindex{documentclass!report} se používá jednostranná sazba, pro book pak oboustranná. \item[openright, openany] \cindex{documentclass!openright} \cindex{documentclass!openany} Pokud styl umožňuje vytvářet kapitoly\index{kapitola} (article to neumí), volba openright zajistí, že nová kapitola bude začínat na první pravé stránce. Volba openany nechá začátek kapitoly na nejbližší volné stránce. Styl report\cindex{documentclass!report} má implicitně nastaveno openany, styl book\cindex{documentclass!book} pak používá openright. \end{description} \index{dokument!styl|)} \subsection{Balíčky} \index{balík|(hla} V~přehledu uvedu některé balíčky, které sám používám. V některých dalších dílech se na ně koukneme detailněji, zde uvedený výčet je uveden pro úplnost tohoto článku (a také aby byla vidět všestrannost): \begin{description} \item[inputenc] \cindex{usepackage!inputenc} specifikuje se kódování vstupního souboru \item[czech] \cindex{usepackage!czech} nastavuje zásady typografie pro českou sazbu \item[a4wide] \cindex{usepackage!a4wide} nastaví velikost A4 dle evropských (tedy i~našich) rozměrů \item[graphicx] \cindex{usepackage!graphicx} pro vkládání obrázků \item[algorithmic] \cindex{usepackage!algorithmic} lze jednoduše zapisovat algoritmy \item[bbm] \cindex{usepackage!bbm} speciální dvojité fonty pro matematiku \item[psfrag] \cindex{usepackage!psfrag} prohledává vkládané PostScripty a~překládá v~nich texovské výrazy \item[makeidx] \cindex{usepackage!makeidx} jednoduchým způsobem umožňuje vytvářet rejstřík \item[\dots] a mnoho dalších :) \end{description} \index{balík|)} \subsection{Závěr} \par Omlouvám se, že je to dneska ještě takové faktografické a~nedostali jsme se prakticky k~ničemu, na druhou stranu nemáme kam spěchat :). V~dalším dílu se podíváme, kde všude je potřeba nastavit \TeX, aby správně podporoval češtinu, a~vyzkoušíme si něco dalšího. Ti, kteří nemají správně nakonfigurovánu českou klávesnici a~alespoň jeden editor, si nemusí zoufat, protože se této problematice budu věnovat ve zvláštním článku. \par Pro slovenské uživatele: omlouvám se, že články jsou psány čistě pro češtinu, avšak v~konfiguračních souborech je většinou sloveské nastavení hned vedle českého, a~tak myslím nebude problém zakomentovat/odkomentovat řádek těsně vedle. A~změna příkazu {\tt $\backslash$usepackage\{czech\}} na {\tt $\backslash$usepackage\{slovak\}}\cindex{usepackage!slovak} vás určitě napadla~:-) % ----------------------------------------------------------------- 3 díl --- \section{Struktura dokumentu} {\it Každý dokument má nějakou strukturu.\index{dokument!struktura} A~dnes se protáhneme právě pojmy jako je kapitola\index{kapitola}, podkapitola\index{podkapitola} či odstavec\index{odstavec}.} \par \subsection{Teorie} \index{sirotek|(hla} \index{vdova|(hla} Ačkoliv se překladač při formátování textu všemožně snaží, aby byl text co nejpěknější, stane se někdy, že se vše nepodaří tak, jak má. Dnes si řekneme o~chybách nazývaných {\it vdova} a~{\it sirotek}. I~když zde budu mluvit pouze o~případu při přechodu na další stránku, jedná se též o~problém vícesloupcové sazby\index{vícesloupcová sazba}, kde přechodem na další stránku rozumíme také ukončení jednoho sloupce a~přechod na nový sloupec na téže stránce. \par Vdovou nazýváme první řádek nového odstavce, který zůstal na předchozí stránce. Tato chyba je zvláště neomluvitelná, pokud se to stane u~titulku (tedy nadpis na předchozí stránce a~text na další). Sirotek je chybou obdobnou, ale tentokrát poslední řádek odstavce přeteče na další stránku, kde se stane řádkem prvním. Tato chyba má také neodpustitelnou verzi, a~to v~případě, že stránka je pak dále prázdná (tzn. že na stránce je samostatný řádek (nedej bože, pokud se řádek skládá pouze z~jednoho slova)). \par Obě chyby se v~kvalitních pracích (zvláště jako je diplomová práce) nesmí vyskytnout. Nejen že jsou ošklivé a~hrubě porušují pravidla správné sazby, ale hlavně roztrhnou text a~při čtení pak člověk ztrácí kontinuitu a hlavní téma. \par Pro odstranění takové chyby máme několik možností:\\ \begin{enumerate} \item jsme-li autorem textu, máme možnost přeformulovat odstavec tak, aby vdova/sirotek nevznikl. \item vhodně spojíme/rozdělíme odstavce. \item jiným způsobem naformátujeme předchozí odstavce. \item řekneme překladači, kde má/nemá přejít na další stránku (nařídíme nebo zakážeme stránkový zlom). \item na stránce (v sloupci) změníme počet řádků (porušíme tím tzv.~řádkový rejstřík),\index{řádkový rejstřík|see{rejstřík}} \index{rejstřík!řádkový} je to krajně nevhodné ve sloupcové sazbě \index{sloupcová sazba} (řádky jednotlivých sloupců "nesedí" v~jedné linii) nebo v~oboustranné sazbě (kniha), kde pak "ruší" čtenáře prosvítání nesouhlasných řádků z~druhé stránky listu (prostě řádky si na sebe nesedly). I přesto je to jeden z~nejpoužívanějších způsobů, nevhodný však pro knižní sazbu, kde způsobuje výše uvedený problém. \item automaticky odstraníme~-~kvalitní programy dovolují definovat velikost sirotka/vdovy, a~ty se pak program snaží při sazbě odstranit. \end{enumerate} \par \noindent Na příkladu simulované vícesloupcové sazby\index{vícesloupcová sazba} si ukážeme, jak tyto chyby vypadají: \textit{ \begin{tabbing} Ve~vícesloupcové~sazbě~~~~~~~~\= by se rozhodně v kvalitní~~~~~~\= tento {\bf sirotek}.\\ tyto~chyby~nevypadají~až \> práci neměla vyskytovat. \> \\ tak~závažně,~přesto~je~to \> A zcela neomluvitelný \> Jeho závažnost se zvyšuje \\ hrubé~porušení~správné \> případ je, pokud by byla \> s volným místem okolo něj. \\ sazby~dokumentu. \> vdova zároveň nadpisem. \> Proto by se nikdy neměl \\ \> Dalším prohřeškem vůči \> vyskytnout před nadpisem \\ Například~tato~{\bf vdova}\> zásadám správné sazby je \> nebo na samostatné stránce.\\ \end{tabbing} } \index{vdova|)} \index{sirotek|)} \subsection{Členění textu} Pro členění se používá několik úrovní, každou úroveň nelze použít v~každém stylu. Proto nejlépe formou přehledu: \index{část}\cindex{part} \index{kapitola}\cindex{chapter} \index{oddíl}\cindex{section} \index{pododdíl}\cindex{subsection} \index{podpododdíl}\cindex{subsubsection} \index{odstavec}\cindex{paragraph} \index{pododstavec}\cindex{subparagraph} \par \begin{tabular}{lll} {\bf Příkaz (řídící slovo)} & {\bf Log.~úroveň} & {\bf Poznámka}\\ \verb#\part# & část & nepovinné\\ \verb#\chapter# & kapitola & pouze styl book a~report\\ \verb#\section# & oddíl & již pro všechny styly\\ \verb#\subsection# & pododdíl & ~ \\ \verb#\subsubsection# & podpododdíl & ~ \\ \verb#\paragraph# & odstavec & standardně není zahrnováno do obsahu\\ \verb#\subparagraph# & pododstavec & nemá příliš velké praktické použití, není číslován\\ ~ & ~ & a tudíž ani zahrnován do obsahu\\ \end{tabular} \par Příkazy mají dva parametry, do povinného se zapisuje řetězec, který se má vytisknout a~případně očíslovat. Do nepovinného lze zapsat řetězec, který se má vytisknout v~obsahu.\index{obsah} To se může hodit, pokud máme v~nadpisu\index{nadpis} například nějaký matematický výraz a~byli bychom radši, kdyby byl v~obsahu pojmenován jménem, nikoliv symbolem\index{symbol}. \par Příkazy mají ještě svoji "hvězdičkovou" obdobu. Pokud za jméno příkazu (řídícího slova) uvedeme *~(hvězdičku), nebude daný nadpis číslován a~nebude zahrnut ani do obsahu. Příkazy, které standardně nejsou číslovány (\verb#\paragraph# a~\verb#\subparagraph#) se v~hvězdičkované verzi chovají úplně stejně jako bez hvězdičky. \par \index{odstavec} Lze použít ještě jedno členění textu, které zde nebylo zmíněno. Jedná se o~jeden nebo více prázdných řádků, které text dělí na "klasické" odstavce, jež nemají nadpisek, ale začátek je o~něco málo odražen. Tento typ odstavce se nezahrnuje do obsahu ani nemá svůj vlastní čítač, pouze začátek dalšího textu poodstrčí od okraje. \par Specialitkou je příkaz \verb#\appendix#\cindex{appendix}, kterým označujeme začátek příloh\index{příloha}. Příkaz nastaví jiný způsob číslování a~provede znovu nastavení čítačů na počáteční hodnoty. \subsection{Obsah} \par Důležitou součástí dokumentu je i~obsah\index{obsah}. Ten se generuje příkazem \verb#\tableofcontents#\cindex{tableofcontents}. Při používání tohoto příkazu je nutné provést překlad dokumentu programem latex minimálně dvakrát. \par To je způsobeno tím, že pro vytvoření obsahu je využíván soubor s~příponou {\tt .toc}\index{soubor!.toc} (svou podstatou je to vygenerovaný zdrojový soubor pro \LaTeX, který se vloží na místo příkazu). Tento soubor se ale vytváří teprve při překladu, a~kompletní je až po jeho ukončení. Z~tohoto důvodu je potřeba překlad\index{překlad} spustit poprvé pouze za účelem vytvoření souboru s~uloženým obsahem. A~při druhém překladu se obsah vysází podle kompletního souboru. Nyní to vypadá, že takový způsob je velmi neohrabaný, ale má to jednu nespornou výhodu. Mezi oběma překlady lze soubor s~obsahem editovat, a~tak tam provést některé zajímavé (a~třeba potřebné) úpravy. A~pokud se překlad provádí na pomalejším stroji, není problém řádek s~\verb#\tableofcontents#\cindex{tableofcontents} zakomentovat (komentář se provádí znakem \%~(procento),\index{komentář}\cindex{\%@\%} vše za ním na řádku se ignoruje) a~před finálním "dvojitým" překladem jej stačí odkomentovat. \par Jedno drobné doporučení: protože se obdobným způsobem řeší více problémů při sazbě (křížové odkazy, rejstřík,~...), doporučuje se provést závěrečný překlad třikrát. \subsection{Čítače} \index{čítač|(hla} \par Této problematice bude věnován zvláštní článek, ale nakousnout to můžeme již zde. A~tak pro úplnost a dokreslení této kapitoly se dozvíme něco málo o~čítačích (čítač je proměnná uchovávající číslo). Při členění textu do logických částí se používají tyto čítače: \begin{center} \begin{tabular}{lp{10cm}} {\bf Název čítače}&{\bf Popis}\\ \texttt{secnumdepth}\index{čítač!secnumdepth@\texttt{secnumdepth}} & standardně se čísluje do třetí úrovně (\verb#\subsubsection#) čítač lze nastavit v~rozmezí $1-4$, kde $1$~je pro \verb#\section# a $4$~pro \verb#\paragraph#.\\ \texttt{tocdepth}\index{čítač!tocdepth@\texttt{tocdepth}} & tento čítač patří až k~vytváření obsahu, ale určuje téměř to samé, co předchozí čítač -- určuje, do jaké hloubky se má vypisovat obsah\index{obsah} příkazem \verb#\tableofcontents#.\\ \texttt{part, chapter, ...} & až k~{\tt subparagraph}. V~těchto čítačích se ukládají hodnoty pro očíslování jednotlivých úrovní. S~každým příkazem dané logické úrovně se k~patřičnému čítači přičte jednička. Jediný užitek změny těchto čítačů vidím pouze v~případě, že dokument někam vkládáme (nezačínáme číslovat od jedničky) nebo do výsledného dokumentu něco vkládat budeme.\\ \end{tabular} \end{center} \par Hodnotu čítače lze nastavit příkazem \verb#\setcounter#\cindex{setcounter} (zde se setkáváme poprvé s~příkazem, který má více než jeden povinný parametr), získat hodnotu čítače lze příkazem \verb#the{jméno_čítače}#\cindex{the} (lze použít pouze pro čítače logických úrovní, nelze proto užít pro čítače secnumdepth nebo tocdepth). Tento příkaz pro zobrazení čítače formátuje uložené číslo. Z~následujícího příkladu bude použití příkazů patrné: \begin{verbatim} \setcounter{section}{3} % nastaví čítač na 3 \thesection % vytiskne 3 \end{verbatim} \index{čítač|)} \subsection{Závěr} V~příštím dílu si už na méně rozsáhlém příkladě vyzkoušíme formátování (zvýrazňování) textu a~možná ještě něco navíc. % tisk rejstříků \printindex \printindex[cmnd] \end{document}