Přejít na:

Rejstřík (osob, pojmů, míst, …) pomáhá orientaci v rozsáhlejších dokumentech. Vysvětlíme si základní principy vytváření rejstříků a předvedeme si, jak rejstříky sázet TeXem.

Přejít: navigace | na začátek stránky | na konec stránky

Výběr slov do rejstříku

Výběr slov do rejstříku je autorská záležitost a odvíjí se od typu rejstříku, který sestavujeme. Např. v případě rejstříku autorů je volba přímočará – rejstřík by měl obsahovat odkazy na všechny autory v publikaci. V případě rejstříku pojmů můžeme odkazovat primárně na místo s definicí pojmů, sekundárně pak na místa v textu, kde se s daným pojmem významně pracuje (přičemž autor textu musí určit, co je u daného pojmu jeho významné použití).

Přejít: navigace | na začátek stránky | na konec stránky

Postup při vytváření rejstříku

Problematika vytváření rejstříku TeXem je rozebrána např. v článku Zdeňka Wagnera ve Zpravodaji CSTUG 4/1992. V textu článku je předvedena tvorba rejstříků pomocí nástrojů makeindexcsindex. Ty mají některá nepříjemná omezení a dnes jsou již překonané (pro tvorbu rejstříku je vhodnější využít nástroje texindy). Zvýšenou pozornost věnujte především informacím o správném českém/slovenském řazení slov.

Proces tvorby rejstříku v TeXovém dokumentu je možné rozdělit do dvou fází: označkování pojmů, které se mají stát součástí rejstříku, a samotné vytvoření seřazeného rejstříku při překladu dokumentu.

Přejít: navigace | na začátek stránky | na konec stránky

Značkování v TeXovém zdrojovém textu

Způsob značkování pojmů vkládaných do rejstříku je popsán v komentovaném ukázkovém dokumentu rejstrik.tex.

Dokument rejstrik.tex přeložte pdfTeXem pdflatex rejstrik.tex a přečtěte si vysázený text.

Přejít: navigace | na začátek stránky | na konec stránky

Tvorba rejstříku při překladu

Všimněte si, že dokument rejstrik.tex po jednoduchém přeložení TeXem neobsahuje vysázený rejstřík. Ten je totiž třeba vytvořit v dalším kroku externím programem, a pak opakovat překlad TeXového dokumentu (proces překladu je tedy vhodné automatizovat):

  1. pdflatex rejstrik.tex
    • Dokument je vysázený bez rejstříku, ovšem při překladu vznikne soubor rejstrik.idx, který obsahuje informace nutné pro vytvoření rejstříku.
  2. # Pokud pracujete na unixovém serveru FI module add perl # Pokud dokument máte v kódování UTF-8.
    texindy -I latex --language czech        --codepage utf8   rejstrik.idx # Pro dokument v češtině
    texindy -I latex --language slovak-large --codepage utf8   rejstrik.idx # Pro dokument ve slovenštině
    # Pokud dokument máte v kódování ISO 8859-2.
    texindy -I latex --language czech        --codepage latin2 rejstrik.idx # Pro dokument v češtině
    texindy -I latex --language slovak-large --codepage latin2 rejstrik.idx # Pro dokument ve slovenštině
    • Informace ze souboru rejstrik.idx zpracuje program texindy (varianta programu xindy přizpůsobená pro použití s TeXem; texindy je standardní součástí instalace TeX Live). Výsledkem překladu je soubor rejstrik.ind s vygenerovaným rejstříkem v LaTeXovém značkování.
    • Pokud používáme TeXový kompilátor, který pracuje nativně s kódováním Unicode (např. XeTeX nebo LuaTeX), můžeme namísto parametrů -I latex --codepage utf8 použít parametr -I xelatex, který texindy přepne do odpovídajícího režimu.
    • Při práci s českým textem můžeme namísto programu texindy rovněž využít program csindex. Ten není součástí standardní instalace TeX Live, ale je dostupný ke stažení zde. Pakliže používáte moderní TeXové kompilátory XeTeX nebo LuaTeX pracující v Unicode, je nejprve nutné soubor rejstrik.idx překódovat z UTF-8 do osmibitového kódování ISO 8859-2 pomocí programu iconv nebo jiným způsobem: iconv -f utf8 -t latin2 rejstrik.idx > rejstrik.idx.new
      mv rejstrik.idx.new rejstrik.idx
      Následně je již možné vytvořit rejstřík: csindex -dhkz il2 rejstrik.idx
    • Při práci s anglickým textem můžeme namísto programu texindy rovněž využít program makeindex: makeindex rejstrik.idx
    • Pokud vám nevyhovuje žádné zmíněné řešení, můžete rejstřík vytvářet i třídit v TeXu samotném, jak popsáno v článku Petra Březiny ve Zpravodaji CSTUG 1/2007.
  3. pdflatex rejstrik.tex
    • Soubor rejstrik.ind je při překladu načtený do rejstrik.tex a rejstřík se tedy objeví ve výsledném PDF dokumentu.

Tip: Balíček imakeidx využívá schopnosti moderních TeXových strojů spouštět externí programy pro automatické spuštění programu texindy. Funkci balíčku můžeme otestovat na dokumentu imakeidx.tex: pdflatex -shell-escape imakeidx.tex

Přejít: navigace | na začátek stránky | na konec stránky

Praktické úkoly k procvičení

Přejít: navigace | na začátek stránky | na konec stránky