Jak již víme, LaTeX automaticky čísluje některé konstrukce
(section
, page
). Překladač totiž pro tyto prvky používá
tzv. čítače, které se automaticky zvyšují s každým použitým prvkem
daného typu. Standardně existuje několik předdefinovaných čítačů: part, chapter,
section, subsection, subsubsection, paragraph, subparagraph, page, equation, figure,
table, footnote, enumi, enumii, enumiii, enumiv
a další.
Může se stát, že v textu potřebujeme hodnotu čítače změnit na konkrétní hodnotu.
Lze to snadno provést příkazem \setcounter{čítač}{hodnota}
. Tím
nastavíme čítač na konkrétní hodnotu, při dalším použití předdefinovaných čítačů se budou
pak automaticky doplňovat hodnoty, které po ní následují.
\setcounter{page}{10}
Další možností změny čítače je přičtení čísla k současné hodnotě čítače konstrukcí
\addtocounter{page}{2}
, která v tomto případě zvýší hodnotu aktuálního
čítače o 2.
Chceme-li vytvořit čítač vlastní, není to žádný problém. Vlastní čítače zpravidla v běžém
dokumentu vytvářet ale nepotřebujeme, využijeme je spíše když definujeme vlastní styly. Čítač lze
vytvořit příkazem \newcounter{jmeno}
. Počítadlo začíná na hodnotě 0. Hodnotu čítače
vypíšeme příkazem \thejmeno
. Kde jmeno je název čítače. Můžeme
takto získat třeba číslo kapitoly nebo strany (\thechapter
, \thepage
).
Nový čítač také může být závislý na nějakém jiném, nadřazeném čítači. Ten určíme volitelným
parametrem příkazu \newcounter
. Nadřízený čítač musí být v okamžiku definice známý,
může se jednat třeba o číslo stránky, nebo sekce. Jestliže se pak změní hodnota nadřízeného čitače,
čítač závislý se vynuluje.
Výpis kódu 6.1: Vytvoření čítače závislého na čísle sekce \newcounter{jmeno}[section]
Hodnotu čítače zvýšíme o jedničku příkazem \stepcounter{jmeno}
nebo
\refstepcounter{jmeno}
. Druhý uvedený navíc definuje hodnotu, kterou lze snímat pomocí
návěští (příkaz \label
a získávat příkazem \ref
(viz kapitola 6.7 – „Křížové odkazy, citace a balík hyperref“. Příkazem \value
lze použít hodnotu čítače na místě, kde
LaTeX očekává číslo (v nějakém jiném LaTeX příkazu).
Čítače se mohou zobrazovat v různých podobách. Pro změnu podoby čítače lze použít modifikační příkazy:
\arabic{jmeno} | arabské číslice |
\roman{jmeno} | malé římské číslice |
\Roman{jmeno} | velké římské číslice |
\alph{jmeno} | malé písmeno s pořadovým číslem čítače (dle abecedy) |
\Alph{jmeno} | velké písmeno |
Tyto různé podoby se používají pomocí předefinování příkazu \thejmeno
.
\renewcommand{\thecitac}{\roman{citac}} % vlastni citac bude rimskymi cislicemi \renewcommand{\thesection}{\Alph{section}} % sekce dokumentu budou oznacovany pismeny
Následující příklad demonstruje využití čítačů pro změnu prostředí
enumerate, tak aby automaticky používal číslování systémem 1., 2.,
… 1.1., 1.2., … 1.1.1., 1.1.2. …
místo standardního 1., 2.,
… (a), (b), … i, ii. …
.
\renewcommand\labelenumi{\arabic{enumi}.} \renewcommand\labelenumii{\arabic{enumi}.\arabic{enumii}.} \renewcommand\labelenumiii{\arabic{enumi}.\arabic{enumii}.\arabic{enumiii}.}
Vhodným způsobem použití čítače je nadefinování vlastního příkazu, který jej vypíše a zároveň i zvýši.
Výpis kódu 6.2: Vytvoření příkazu \pocitadlo\newcounter{citac}[section] \renewcommand{\thecitac}{\thesection.\arabic{citac}} \newcommand{\pocitadlo}{\refstepcounter{citac} {\thecitac}}
Tento nový příkaz počítadlo
je závislý na sekci a čísluje vždy systémem
sekce.číslo.