Vytváření rejstříků pomocí programů csindex, makeindexxindy

Cílem dnešního cvičení je seznámení se se základními principy vytváření rejstříků a možnostmi nástrojů pro práci s rejstříky (makeindex, csindex, xindy). Dále si rozšíříte svůj zápočtový dokument o rejstřík a Makefile o zpracování rejstříku zápočtového dokumentu.

Programové vybavení pro vytváření rejstříků

Automatizace vytváření rejstříku (nejen pro typografický systém TeX) je možná s využitím programů makeindex, jeho lokalizované verze s podporou specifických kódování a českého třídění csindex (je možné využít také upravený csindex vyvinutý panem Plášilem v rámci PB029 – na FI instalován v rámci modulů texlive*), anebo složitějšího, ale mocného xindy Rogera Kehra.

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

Do preambule dokumentu je třeba přidat

  \usepackage{index} % Balík s pomocnými makry pro sazbu rejstříku. 
  \makeindex % Zajistí, že slova určená k vložení do rejstříku budou vypsána do 
             % souboru s příponou .idx, ze kterého makeindex/csindex/xindy 
             % vytvoří soubor s příponou .ind s hotovým prostředím theindex.

a do těla dokumentů příkazy tvaru

  EPD\index{EPD}                  % Slovo EPD půjde do rejstříku.
  14\index{čtrnáct@14}            % Slovo 14 v rejstříku bude řazené jako "čtrnáct".
  $\delta$\index{delta@$\delta$}  % Znak delta v rejstříku bude řazený jako "delta".
  jabloň\index{stromy!jabloň}     % Slovo "jabloň" bude v rejstříku zařazeno jako 
                                  % pod heslo "stromy".

a dále přidat

 \printindex

na místo, kde má být rejstřík vytvořen.

Princip a postup překladu dokumentu s rejstříkem je podobný jako tvorba dokumentu se seznamem literatury vytvořeným BibTeXem.

xindy

Velmi flexibilní program pro vytváření rejstříku je xindy, který je nyní standardní součástí TeX Live. Pro použití xindy pro přípravu rejstříků pro TeXové dokumenty je k dipozici wrapper texindy. Pokud dokument máte v utf-8 použijte

  pdflatex foo.tex && texindy -I omega --language czech foo.idx && pdflatex foo.tex
nebo pro kódování ISO-Latin2
  pdflatex foo.tex && texindy -I latex --language czech --codepage latin2 foo.idx && pdflatex foo.tex

csindex

Při použití upraveného csindexu by překlad mohl vypadat např. takto:

  pdflatex foo.tex && csindex -d -h -k -z il2 foo.idx && pdflatex foo.tex

csindex přijímá obdobné parametry jako makeindex (vizte manuálovou stránku makeindexu).

Styl sazby rejstříku lze přizpůsobit indexovým stylem (soubory s příponou ist), jehož použití je možné makeindexu/csindexu nařídit odpovídajícím parametrem.

Výběr slov do rejstříku

Výběr slov do rejstříku je autorská záležitost. Kandidáty slov do rejstříku lze vybrat například uprostřed seznamu vzniklého pomocí

  cat foo.tex | detex | tr ' ' '\n' | sort | uniq -c | sort -n -r

Detailně je problematika vytváření rejstříku csindexem rozebrána v článku pana Wagnera ve Zpravodaji CSTUG 4/1992.

Dokument s více rejstříky

Pokud je třeba vytvořit v dokumentu více rejstříků (standardní LaTeX má podporu jen pro jeden rejstřík a jeden glosář), je třeba použít balík index, varindex nebo jiný dostupný v katalogu CTAN. Indexační program je pak nutné spustit vícekrát – pro každý rejstřík zvlášť.

Průběžná kontrola úkolů

Makefile a svůj zápočtový dokument rozšiřte o práci s rejstříkem. Závěrem cvičení předveďte vyučujícímu svůj aktuální (zápočtový) dokument, konzultujte případné problémy.

PB029/EPD home | PB029-cv1 | PB029-cv2 | PB029-cv3 | PB029-cv4 | PB029-cv5 | PB029-cv6 | PB029-cv7 | CSTUG | Valid XHTML 1.1! Valid CSS!
Naposledy modifikováno: