Teorie
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 vdova a 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, 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.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)).
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.
Pro odstranění takové chyby máme několik možností:- jsme-li autorem textu, máme možnost přeformulovat odstavec tak, aby vdova/sirotek nevznikl.
- vhodně spojíme/rozdělíme odstavce.
- jiným způsobem naformátujeme předchozí odstavce.
- řekneme překladači, kde má/nemá přejít na další stránku (nařídíme nebo zakážeme stránkový zlom).
- na stránce (v sloupci) změníme počet řádků (porušíme tím tzv. řádkový rejstřík), je to krajně nevhodné ve sloupcové sazbě (řá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.
- automaticky odstraníme - kvalitní programy dovolují definovat velikost sirotka/vdovy, a ty se pak program snaží při sazbě odstranit.
Č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: 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. To se může hodit, pokud máme v nadpisu například nějaký matematický výraz a byli bychom radši, kdyby byl v obsahu pojmenován jménem, nikoliv symbolem.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 ( \paragraph
a \subparagraph
) se v hvězdičkované verzi chovají úplně stejně jako bez hvězdičky.
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.
Specialitkou je příkaz \appendix
, kterým označujeme začátek příloh. Příkaz nastaví jiný způsob číslování a provede znovu nastavení čítačů na počáteční hodnoty.
Obsah
Důležitou součástí dokumentu je i obsah. Ten se generuje příkazem\tableofcontents
. Při používání tohoto příkazu je nutné provést překlad dokumentu programem latex
minimálně dvakrát.
To je způsobeno tím, že pro vytvoření obsahu je využíván soubor s příponou .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 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 \tableofcontents
zakomentovat (komentář se provádí znakem %
(procento), vše za ním na řádku se ignoruje) a před finálním „dvojitým“ překladem jej stačí odkomentovat.
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.
Čítače
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:Hodnotu čítače lze nastavit příkazem \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 \the
jméno_čítače (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, viz velký příklad níže. Z následujícího příkladu bude použití příkazů patrné:
\setcounter{section}{3} % nastaví čítač na 3 \thesection % vytiskne 3
Příklad
V uvedeném příkladu jsou všechny příkazy pro lepší přehlednost zvýrazněny. Z tohoto důvodu je také, i přes svoji délku, uveden kompletní.\documentclass[11pt]{article} \usepackage[latin2]{inputenc} \usepackage{czech} \usepackage{a4wide} \begin{document} \tableofcontents % vytvoří obsah podle souboru priklad.toc \newpage % provede odstránkování \section{Problematika} V tomto textu se budeme věnovat tomu, kdy použít či nepoužít \LaTeX~pro sazbu. Jaké z toho plynou výhody, nevýhody, případně obtížnosti. \section[Obecný úvod]{Úvodem základní poznatky} \subsection{\LaTeX~a silné nástroje pro sazbu} \LaTeX~je určen pro profesionální sazbu a zvláště pro sazbu odborné (technické) literatury. V tomto ohledu je to absolutní profesionál. Není pouze na vás, jak bude vlastní dokument vypadat. Špatně se ovlivňuje například velikost fontu použitého v nadpisech nebo vlastní podoba dokumentu. O to, aby vše vypadalo pěkně, se postará samotný překladač. Dá textu vzhled, který navrhli sami odborníci přes sazbu a měl by být dokonalý. \subsection{WISIWIG editory} Tyto editory nejsou určeny pro psaní knih a rozsáhlejších textů. Ano, lze to v nich dělat, ale je to otázka nervů. Ale krátké texty, poznámky nebo letáky je jednodušší vyrobit právě v nich. Proti nim hraje i nižší kvalita sazby, která je dána nedostatkem času pro zpracování (u WISIWIG editoru nelze přece čekat několik sekund, než se vám správně přeformátuje odstavec, to musí být hotovo hned, tedy na první pokus, a tudíž na úkor kvality). \section*{Malá polemika o editorech} Používal jsem malý, jednoduchý editor a moc jsem si přál editor, který bude mít spoustu tlačítek, bude se usmívat a dělat všechno za mě. Nejlépe kdyby mi četl myšlenky. Přešel jsem k nejmenovanému editoru, který některé tyto "zázraky" sliboval. Mé prozření se dostavilo až s příchodem editoru, který se tvářil velmi nepřátelsky a vlastně jsem jej nedokázal ani vypnout. Všichni asi tuší, potkal jsem editor VIM. \paragraph{Dobrý editor pro DOS} Takovým pěkným, dobře sloužícím editorem je starý program T602. Sám jej nepoužívám, avšak tento editor kdysi předběhl svou dobu a je velká škoda, že je jím dnes opovrhováno. Jeho síla je hlavně v makrech, a pokud chcete stabilní a rozumný textový editor, rozhodně jej vyzkoušejte. Je to lepší, než psát dokumenty v nějakém souborovém manažeru. \section{Závěr} \subsubsection{Co lze tedy psát} Rozsáhlejší práce technického charakteru jsou ideální. Ale pohodlně lze napsat i netechnickou práci (je to vlastně lehčí, protože není potřeba takových znalostí o \LaTeX u). Pokud píšete složitě strukturované texty (obrázky, tabulky, speciální písma, ...), požadujete-li kvalitní tisk (např. na osvitovou jednotku) nebo barevný výstup, měli byste rozhodně použít DTP nástroj. \paragraph{Výhody} \subparagraph{Výhoda první:} Lze použít libovolný editor, tedy ten, co vám nejlépe vyhovuje a kterému plně důvěřujete. A to je jedna z obrovských výhod, kterou neustále oceňuji. \subparagraph{Výhoda druhá:} Překladač má dostatek času, a tak si se sazbou může "hrát". Proto je jeho sazba skoro vždy (problému, který nedokáže sám vyřešit, se občas nevyhne) tou nejlepší. \subparagraph{A mnoho dalších:} Nespornou výhodou je možnost programování přímo v dokumentu, a je vhodný i pro tisk rozsáhlých dat, jako jsou seznamy, jízdní řády apod. Samozřejmě by se našlo mnoho dalších výhod, ale to poznáte časem. \subsubsection{Doporučit nelze} Pro kraťoučké texty typu poznámek nebo pro letáky, vizitky. Pokud se provádí barevná sazba (časopis, noviny), měli byste rozhodně použít silný nástroj pro sazbu, ale vyvinutý právě pro takový účel. V době vzniku \TeX u se barevná sazba jen stěží někde objevila, a proto nemá takový rozsah příkazů pro práci s ní. Z tohoto důvodu je zcela nevhodný pro texty typu časopisu. Ale slyšel jsem, že časopis Bajt byl údajně psán v \TeX u. \subsubsection*{A jinak?} A jinak si můžete dělat co chcete, a tak si klidně vydávejte časopis. \subsubsection{Další aspekty} To, jestli byste měli nebo neměli použít DTP (Desk Top Publishing) program, byste měli rozhodnout s ohledem na časovou náročnost, čas života publikace (seznam, co nakoupit v obchodě, má doslova jepičí život), kvalitu a množství finálního výtisku a samozřejmě cenu. \subsection{Závěrem} Hodně štěstí a radosti z používání \LaTeX u přeje autor. \newpage \appendix \section{Příloha věnovaná čítačům} Hodnota čítače 'section' je nyní \thesection, pro čítač 'subsection' pak \thesubsection. \subsection{Poznámka} Zde je hodnota čítače 'subsection' již na hodnotě \thesubsection. V námi použitém stylu (article) je čítač 'part' nedefinovaný, a proto nevrátí žádnou hodnotu: 'part'='\thepart'. Po příkazu, který nastaví čítač 'part' na hodnotu 4, \setcounter{part}{4} však danou hodnotu již můžeme tisknout: 'part'='\thepart'. A jak to bude s čítačem 'subsection'? Nastavíme jej tedy třeba na hodnotu 8. \setcounter{subsection}{8} \subsection{Změněn čítač} Výsledek je patrný, a tím by vše mělo být jasné. Vrtá vám hlavou číslo '9'? To je tím, že tento čítač počítá od jedničky a nikoliv od nuly, jak se zdálo u čítače 'part'. Čítač 'part' totiž není v tomto stylu definován, a proto se chová jinak. Při používání vestavěných čítačů je vždy potřeba odzkoušet, zda se chovají tak, jak předpokládáme. \end{document}
[tex|toc-1|toc-2|dvi-1|dvi-2|ps-1|ps-2]
[1.jpg|2.jpg|3.jpg|4.jpg]
Výsledek je uveden ve dvojím provedením (po prvním a druhém překladu), screenshoty (dohromady mají asi 200 KB) jsou uvedeny pouze po druhém překladu.
V poněkud rozsáhlejším příkladu byl použit nám ještě neznámý příkaz \newpage
, který odstránkovává text na další stranu (název příkazu mluví za vše). Na začátku příkladu je uveden příkaz \LaTeX
bezprostředně následovaný znakem ~ (tildou, vlnovkou). Ta označuje tvrdou mezeru a v našem případě zabraňuje, aby následné slovo nebylo těsně přimknuto k výsledku příkazu \LaTeX
.
Uvedený příklad obsahuje několik sazečských a estetických chyb, ale protože je ještě neumíme opravit (a vlastně je ani neznáme), zůstaly tam, časem se k nim určitě dostaneme.