Diel XII.

Najprv sa budeme venovať tabuľkám. Už vieme, že na vysádzanie tabuliek sa používa prostredie tabular. Pripomeňme si jeho použitie na krátkom príklade:

	\documentclass[12pt]{article}
	\usepackage{a4wide,slovak}
	\begin{document}
	\begin{tabular}{rl}
	\hline
	id & zamestnanie\\
	\hline
	1 & technik\\
	2 & predavač\\
	\hline
	\end{tabular}
	\end{document}

Zmeňme teraz riadok s

	\begin{tabular}{rl}
na
	\begin{tabular}{@{}r@{\hspace{3pc}}l@{}}

Všimli ste si zmenu? Vyskúšajte si vysádzať tento súbor:

	\documentclass[12pt]{article}
	\usepackage{a4wide,slovak}

	\begin{document}
	\begin{tabular}{|c|r@{,}l|}
	\hline
	1 & 122 & 231038 \\
	2 & 234162 & 1 \\
	\hline
	\end{tabular}

	\end{document}

Pomocou postupnosti @{} je možné určiť, aký oddeľovač sa medzi danými stĺpcami použije. Ak tento príkaz nepoužijete, budú medzi stĺpcami medzery. Použitie @{} potlačí sadzbu týchto medzistĺpcových medzier.

Doplňme do posledného príkladu hlavičku tabuľky. Nadpis chceme dať do stredu dvoch stĺpcov.

	\documentclass[12pt]{article}
	\usepackage{a4wide,slovak}

	\begin{document}
	\begin{tabular}{|c|r@{,}l|}
	\hline
	id &
	\multicolumn{2}{|c|}{hodnota}\\
	\hline
	1 & 122 & 231038 \\
	2 & 234162 & 1 \\
	\hline
	\end{tabular}

	\end{document}

Použitie príkazu \multicolumn je zrejmé z príkladu. Prvý parameter udáva počet spájaných stĺpcov, druhý zarovnávanie (a používanie zvislých čiar) a tretí vysádzaný text. Vyskúšajte zmeniť druhý parameter z |c| na c, |l|, |r|, alebo |r@{}|.

Prirodzenou otázkou, ktorá by mala nasledovať, je, či je možné podobné spájanie robiť aj s riadkami. S balíkom multirow to možné je! Príkaz

	\multirow{počet riadkov}{šírka}{text}

vytlačí <text> vertikálne vystredený v zloženej bunke, ktorá vznikne spojením aktuálnej bunky a buniek, ktoré sú pod ňou. Použitím príkazu \\ môžeme text rozdeliť na viac riadkov. Počet všetkých spájaných buniek udáva počet riadkov. Parameter <šírka> udáva, za aký široký bude považovať LaTeX text v bunke. (Tento údaj je potrebný pri výpočte šírky stĺpcov tabuľky.)

	\documentclass[12pt]{article}
	\usepackage{a4wide,slovak,multirow}

	\begin{document}

	\begin{center}
	\begin{tabular}{|c|l|}
	\hline
	\multirow{2}{1cm}{Čísla}
	& párne \\
	& nepárne \\
	\hline
	\end{tabular}
	\end{center}

	\end{document}

Nasledujúci príklad ukazuje ako vysádzať pomerne zložitú tabuľku i ako sa vyhnúť tipovaniu či meraniu parametra šírka.

	\documentclass[12pt]{article}
	\usepackage{a4wide,slovak,multirow}

	\begin{document}
	\newlength\pomoc
	\begin{center}
	Tab.~1. Delenie slovenských spoluhlások\\
	\vspace{0.5pc}
	\begin{tabular}{|c|c||c|c|c|c|c|c|c|c|c|c|c|}
	\hline
	%%%%%%%%%%%%%%%%%
	\multicolumn{2}{|c||}{
		\settowidth{\pomoc}{Spoluhlásky}\lower1pt\hbox{\multirow{2}{\pomoc}{Spoluhlásky}}
	}
	&
	%%
	\multicolumn{4}{|c|}{\settowidth{\pomoc}{záverové}
	\multirow{2}{\pomoc}{záverové}}
	&
	%
	\multicolumn{4}{|c|}{\settowidth{\pomoc}{trené}
	\multirow{2}{\pomoc}{trené}}
	&
	%
	\multicolumn{2}{|c|}{polo-}\\
	\multicolumn{2}{|c||}{} &
	\multicolumn{4}{|c|}{} &
	\multicolumn{4}{|c|}{} &
	\multicolumn{2}{|c|}{záverové} \\
	%
	\hline
	\hline
	%%%%%%%%%%%%%%%%%
	\settowidth{\pomoc}{párové}\multirow{2}{\pomoc}{párové}
	&
	%
	neznelé & p & t & ť
	& k & s & š & f & ch & c & č \\
	\cline{2-12}
	& znelé & b & d
	& ď & g & z & ž & v & h & dz & dž \\
	\hline
	%%%%%%%%%%%%%%%%
	nepárové & znelé &
	\multicolumn{4}{|c|}{m,~n,~ň} &
	\multicolumn{4}{|c|}{l,~j,~r}
	& \multicolumn{2}{|c|}{} \\
	\hline
	\end{tabular}
	\end{center}
	\end{document}

Určite ste si všimli príkaz \cline{číslo1-číslo2}, ktorý vytlačí horizontálnu čiaru od začiatku stĺpca číslo číslo1 (stĺpce sa číslujú sa od 1) po koniec stĺpca číslo číslo2.

Vytváranie indexu

V druhej časti upriamime svoju pozornosť na vytváranie registra, čo využijú najmä tí, čo píšu v LaTeXu väčšie dokumenty, napríklad semestrálne či diplomové práce. Na automatickú tvorbu registra budeme používať balík makeidx. V preambuli dokumentu použijeme príkaz \makeindex. Príkaz

	\index{položka}

vloží do registra položku spolu s číslom aktuálnej stránky. Niektoré možné tvary parametra položka uvádzame v nasledujúcej tabuľke:

príkaz položka v registri
\index{telefón} telefón, 23
\index{telefón!Nokia} telefón, Nokia, 23
\index{telefón@\textit{telefón}} telefón, 23
\index{telefón@\textbf{telefón}} telefón, 23
\index{telefón|textbf} telefón, 23
\index{telefón|textit} telefón, 23

Pri kompilácii sa vytvorí súbor, ktorý má meno ako kompilovaný zdrojový súbor, ale má príponu .idx. Tento súbor potom spracujeme zavolaním príkazu makeindex (pozri manuálovú stránku):

	makeindex názov súboru.idx

Tento program vytvorí usporiadaný register a uloží ho do súboru s príponou .ind. Register vytlačíme pomocou príkazu

	\printindex

Z toho vyplýva, že podobne ako pri obsahu, aj tu musíme zdrojový súbor dokumentu kompilovať dvakrát, pričom medzi kompiláciami musíme spustiť program makeindex.

Celé si to objasníme na nasledujúcom príklade priklad.tex:

	\documentclass[12pt]{article}
	\usepackage{a4wide,slovak,makeidx}

	\makeindex

	\begin{document}
	\section{Súčet}
	Súčet\index{súčet}\index{výsledok!súčet}
	je výsledok operácie
	$+$.

	\pagebreak

	\section{Rozdiel}
	Rozdiel\index{rozdiel|textit}\index{výsledok!rozdiel}
	je výsledok operácie
	$-$.

	\pagebreak

	\section{Súčin}
	Súčin\index{súčin@\textbf{súčin}}\index{výsledok!súčin}
	je výsledok operácie
	$\times$.

	\pagebreak

	\section{Podiel}
	Podiel\index{podiel}\index{výsledok!podiel}
	je výsledok operácie
	$/$.

	\printindex

	\end{document}

Požadovaný dvi súbor vytvoríme spustením zloženého príkazu

	cslatex priklad.tex;
	makeindex priklad.idx;
	cslatex priklad.tex

Po prvom spustení programu cslatex vznikol súbor priklad.idx. Po spustení programu makeindex vznikol súbor priklad.ind (pozrite si ho). Po druhej kompilácii už výstupný dvi súbor obsahuje (správny) register.

Vyskúšajte si, čo sa stane, ak namiesto \usepackage{makeidx} použijete príkaz \usepackage{showidx}.

Pomocou programu makeindex môžete tiež meniť štýl registru. Vytvorte súbor style.ist s týmto obsahom:

headings_flag 1
heading_prefix "\\textbf"
item_01 "\n \\item --"
item_x1 "\n \\item --"
item_1 "\n \\item --"
item_12 "\n \\item -- --"
item_x2 "\n \\item -- --"
item_2 "\n \\item -- --"

a namiesto makeindex priklad.idx vykonajte príkaz

	makeindex -s style.ist priklad.idx

Autor: Ján Kudlička. Vyšlo v Netáčiku.