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
@{
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.
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