> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/cs/struktura-dokumentu/04-indices.md).

# Rejstříky

V některých rozsáhlých dokumentech, například knihách, je zvykem vytvořit abecední seznam obsahující hlavní pojmy. S LaTeXem a podpůrným programem **imakeidx**, lze rejstřík poměrně snadno vytvořit.

## Úvod

Podívejme se na jednoduchý funkční příklad.

```latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex

\begin{document}
\section{Introduction}
V tomto příkladu bude použito několik klíčových slov\index{keywords}
která jsou důležitá a zaslouží si objevit se v rejstříku\index{Index}.

Výrazy jako generate\index{generate} a some\index{others} se
také objeví.

\printindex
\end{document}
```

[Otevřete tento příklad v Overleafu](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Index+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BT1%5D%7Bfontenc%7D%0A%5Cusepackage%7Bimakeidx%7D%0A%5Cmakeindex%0A%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BIntroduction%7D%0AIn+this+example%2C+several+keywords%5Cindex%7Bkeywords%7D+will+be+used+%0Awhich+are+important+and+deserve+to+appear+in+the+Index%5Cindex%7BIndex%7D.%0A%0ATerms+like+generate%5Cindex%7Bgenerate%7D+and+some%5Cindex%7Bothers%7D+will+%0Aalso+show+up.+%0A%0A%5Cprintindex%0A%5Cend%7Bdocument%7D)

Následující obrázek ukazuje výstup vytvořený výše uvedeným příkladem:

![Index1OLV2.png](/files/967824fe614323e53ca24a8721d4877b7f163b5b)

Nejprve je balíček zahrnut do preambule řádkem

```latex
\usepackage{imakeidx}
```

Poté je příkaz `\makeindex` pro funkčnost rejstříku povinný a může přijímat některé parametry pro přizpůsobení svého vzhledu, v následujících sekcích to bude jasné.

Pro přidání položky do rejstříku se používá příkaz `\index{}` který se používá tak, že slovo, které má být přidáno, se vloží jako parametr. Dávejte pozor, toto slovo se nevytiskne na aktuální pozici, ale pouze v rejstříku.

Nakonec příkaz `\printindex` skutečně vykreslí rejstřík. Pokud používáte speciální lokalizaci pomocí balíčku `babel` bude název přeložen odpovídajícím způsobem.

Poznámka: místo `imakeidx`, může být importován balíček `makeidx` ale nabízí méně možností přizpůsobení.

## Rejstříky v Overleafu

Při přidávání rejstříku do projektu v Overleafu je **důležité poznamenat** že aby se rejstřík správně zkompiloval, hlavní `.tex` soubor musí být v kořenovém adresáři projektu, *mimo jakékoli složky*. Tím je zajištěno, že pomocné soubory potřebné k vytvoření rejstříku jsou ukládány do mezipaměti tak, aby byly přístupné kompilátoru.

## Položky a podpoložky

Jak již bylo zmíněno v předchozí sekci, příkaz `\index` přidá slovo, které mu bylo předáno, do rejstříku, ale není to jediný způsob jeho použití.

```latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex

\begin{document}
\section{Introduction}
V tomto příkladu bude použito několik klíčových slov\index{keywords}
která jsou důležitá a zaslouží si objevit se v rejstříku\index{Index}.

Výrazy jako generate\index{generate} a some\index{others} se také
objeví. Výrazy v rejstříku mohou být také vnořené \index{Index!nested}

\clearpage

\section{Second section}
Tato druhá sekce\index{section} může obsahovat nějaké speciální slovo,
a rozšířit ty již použité\index{keywords!used}.

\printindex
\end{document}
```

[Otevřete tento příklad v Overleafu](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Index+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BT1%5D%7Bfontenc%7D%0A%5Cusepackage%7Bimakeidx%7D%0A%5Cmakeindex%0A%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BIntroduction%7D%0AIn+this+example%2C+several+keywords%5Cindex%7Bkeywords%7D+will+be+used+%0Awhich+are+important+and+deserve+to+appear+in+the+Index%5Cindex%7BIndex%7D.%0A%0ATerms+like+generate%5Cindex%7Bgenerate%7D+and+some%5Cindex%7Bothers%7D+will+also+%0Ashow+up.+Terms+in+the+index+can+also+be+nested+%5Cindex%7BIndex%21nested%7D%0A%0A%5Cclearpage%0A%0A%5Csection%7BSecond+section%7D%0AThis+second+section%5Cindex%7Bsection%7D+may+include+some+special+word%2C+%0Aand+expand+the+ones+already+used%5Cindex%7Bkeywords%21used%7D.%0A%0A%5Cprintindex%0A%5Cend%7Bdocument%7D)

Následující obrázek ukazuje výstup vytvořený výše uvedeným příkladem:

![Index2OLV2.png](/files/70210363af78b875de9c4c9c617ffd0a5be294a8)

Je běžnou praxí rozšiřovat termíny v rejstříku o zvláštní přídavná jména. Například slovo *Pole* může mít zvláštní význam, pokud mu předchází přídavné jméno *konečné* nebo za ním následuje *s charakteristikou 0*, a může být poněkud nepraktické přidávat různé typy *Pole*jako samostatné položky v rejstříku. V takových případech můžete přidat vykřičník "!", který přidá výrazy za tímto znakem jako podpoložky hlavního slova *Pole*.

V příkladu má slovo „Index“ jako podpoložku slovo „nested“.

## Formátování rejstříku

Jednoduché formátování rejstříku, jako je změna názvu rejstříku, přidání několika sloupců a změna šířky sloupců, lze snadno provést předáním volitelných hodnot příkazu `\makeindex`:

```latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex[columns=3, title=Alphabetical Index]

\begin{document}
\section{Introduction}
V tomto příkladu bude použito několik klíčových slov\index{keywords}, která
jsou důležitá a zaslouží si objevit se v rejstříku\index{Index}.

Výrazy jako generate\index{generate} a some\index{others} se také
objeví. Výrazy v rejstříku mohou být také vnořené \index{Index!nested}

\clearpage

\section{Second section}
Tato druhá sekce\index{section} může obsahovat nějaké speciální slovo,
a rozšířit ty již použité\index{keywords!used}.

\printindex
\end{document}
```

[Otevřete tento příklad v Overleafu](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Index+example+3\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BT1%5D%7Bfontenc%7D%0A%5Cusepackage%7Bimakeidx%7D%0A%5Cmakeindex%5Bcolumns%3D3%2C+title%3DAlphabetical+Index%5D%0A%0A%5Cbegin%7Bdocument%7D%0A%5Csection%7BIntroduction%7D%0AIn+this+example%2C+several+keywords%5Cindex%7Bkeywords%7D+will+be+used+which+%0Aare+important+and+deserve+to+appear+in+the+Index%5Cindex%7BIndex%7D.%0A%0ATerms+like+generate%5Cindex%7Bgenerate%7D+and+some%5Cindex%7Bothers%7D+will+also+%0Ashow+up.+Terms+in+the+index+can+also+be+nested+%5Cindex%7BIndex%21nested%7D%0A%0A%5Cclearpage%0A%0A%5Csection%7BSecond+section%7D%0AThis+second+section%5Cindex%7Bsection%7D+may+include+some+special+word%2C+%0Aand+expand+the+ones+already+used%5Cindex%7Bkeywords%21used%7D.%0A%0A%5Cprintindex%0A%5Cend%7Bdocument%7D)

Následující obrázek ukazuje výstup vytvořený výše uvedeným příkladem:

![Index3OLV2.png](/files/f51d5e64269711f99fc01f7b387bcdd7a68d9c19)

V tomto příkladu je rejstřík zobrazen ve formátu se třemi sloupci s parametrem `columns=3`, a název je změněn na „Alphabetical Index“ pomocí `title=Alphabetical Index`; tyto parametry se předávají příkazu `\makeindex` v preambuli. Viz [referenční příručku](#reference-guide) pro seznam dostupných parametrů a jejich popis.

### Použití stylových souborů

Pro další přizpůsobení rejstříku lze použít stylový soubor. Stylové soubory informují `makeindex` o zamýšleném formátu výsledného výstupu. Stylové soubory obsahují seznam `<key, value>` dvojic. Pokud je například potřeba seskupit výrazy v rejstříku podle jejich počátečního písmene a zarovnat čísla stránek doprava, následující stylový soubor to zajistí:

```latex
headings_flag 1

heading_prefix "\n\\centering\\large\\sffamily\\bfseries%
\\noindent\\textbf{"heading_suffix "}\\par\\nopagebreak\n"

item_0 "\n \\item \\small "

delim_0 " \\hfill "
delim_1 " \\hfill "
delim_2 " \\hfill "
```

Klíče mění různé prvky výstupu rejstříku:

* `headings_flag 1` umožňuje seskupování vložením záhlaví skupiny (symboly, čísla nebo písmena) před novou skupinu.
* `heading_prefix` formátuje záhlaví, které se vloží před začátkem nového písmene. Používá běžné formátovací příkazy pro rodinu písma, velikost písma a zarovnání, ale zpětná lomítka musí být escapována pomocí dvojitého zpětného lomítka místo jednoho.
* `item_0` je to, co bude vloženo mezi dvě primární položky.
* `delim_*` je oddělovač, který se vloží mezi klíč a první číslo stránky.

Pro úplný seznam klíčů a hodnot pro použití v souboru .ist viz [Tabulka obsažená v referenční příručce](#keys-to-create-styles-files).

Předpokládejme, že předchozí soubor je uložen jako "example\_style.ist". Chceme-li jej použít v dokumentu, přidáme parametr `options= -s example_style.ist` k `\makeindex` příkazu.

```latex
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex[columns=3, title=Alphabetical Index,
           options= -s example_style.ist]

\begin{document}

\tableofcontents

\section{Introduction}
V tomto příkladu bude použito několik klíčových slov\index{keywords}, která jsou důležitá a zaslouží si objevit se v rejstříku\index{Index}.

Výrazy jako generate\index{generate}, a great\index{great} list and som other\index{others} terms that might be important\index{important}
se také objeví. Výrazy v rejstříku mohou být také vnořené \index{Index!nested}

\clearpage

\section{Second section}
Tato druhá sekce\index{section} může obsahovat nějaké speciální slovo a rozšířit ty již použité\index{keywords!used}.

\printindex
\end{document}
```

[Otevřete příklad používající stylový soubor rejstříku v Overleafu](https://www.overleaf.com/project/new/template/20614?id=70756423\&templateName=Using+an+index+style+file\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Následující obrázek ukazuje výstup vytvořený výše uvedeným příkladem:

![Index4OLV2.png](/files/8e778c522c8efd53c80c73609ddd5ba014560f64)

## Zahrnutí rejstříku do obsahu

Ve výchozím nastavení není rejstřík zahrnut do obsahu, to lze snadno upravit.

```latex
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{imakeidx}
\makeindex[columns=3, title=Alphabetical Index, intoc]

\begin{document}
\tableofcontents

\section{Introduction}
V tomto příkladu bude použito několik klíčových slov\index{keywords}, která budou
použita a která jsou důležitá a zaslouží si objevit se v
rejstříku\index{Index}.

Výrazy jako generate\index{generate} a some\index{others}
se také objeví. Výrazy v rejstříku mohou být také
vnořené \index{Index!nested}

\clearpage

\section{Second section}
Tato druhá sekce\index{section} může obsahovat nějaké zvláštní
slovo a rozšířit již použité\index{keywords!used}.

\printindex
\end{document}
```

[Otevřete tento příklad v Overleafu](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Index+example+3\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5BT1%5D%7Bfontenc%7D%0A%5Cusepackage%7Bimakeidx%7D%0A%5Cmakeindex%5Bcolumns%3D3%2C+title%3DAlphabetical+Index%2C+intoc%5D%0A%0A%5Cbegin%7Bdocument%7D%0A%5Ctableofcontents%0A%0A%5Csection%7BIntroduction%7D%0AIn+this+example%2C+several+keywords%5Cindex%7Bkeywords%7D+will+be+%0Aused+which+are+important+and+deserve+to+appear+in+the+%0AIndex%5Cindex%7BIndex%7D.%0A%0ATerms+like+generate%5Cindex%7Bgenerate%7D+and+some%5Cindex%7Bothers%7D+%0Awill+also+show+up.+Terms+in+the+index+can+also+be+%0Anested+%5Cindex%7BIndex%21nested%7D%0A%0A%5Cclearpage%0A%0A%5Csection%7BSecond+section%7D%0AThis+second+section%5Cindex%7Bsection%7D+may+include+some+special+%0Aword%2C+and+expand+the+ones+already+used%5Cindex%7Bkeywords%21used%7D.%0A%0A%5Cprintindex%0A%5Cend%7Bdocument%7D)

Následující obrázek ukazuje výstup vytvořený výše uvedeným příkladem:

![Index5OLV2.png](/files/ce167f1aa4329de58e5852cf377b158f76a43302)

Přidáním parametru `intoc` k příkazu `\makeindex` se povolí zahrnutí názvu rejstříku do obsahu.

## Referenční příručka

### Parametry pro příkaz \makeindex

**title**

Název, který se sazbově vysází na začátku daného rejstříku. Příklad je uveden ve formátování rejstříku.

**intoc**

Pokud je tato volba předána, název rejstříku se vloží do obsahu.

**columns**

Používá syntaxi key=value, hodnota musí být celé číslo představující počet sloupců. Výchozí hodnota je 2.

**columnsep**

Určuje jednotky reprezentující rozestup mezi sloupci. Syntaxe musí být key=value, například columnsep=2em.

**columnseprule**

Pokud je tato volba předána, mezi sloupci se vykreslí svislá čára.

### Klíče pro vytváření stylových souborů

Následující tabulka ukazuje klíče, výchozí hodnoty a popisy pro vytváření stylových souborů .ist.

| Klíč                        | Popis                                                                                                                                                                                                                                                                                                          |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `actual <char>`             | '@' Symbol označující, že se má následující položka objevit ve výstupním souboru.                                                                                                                                                                                                                              |
| `arg_close <char>`          | '}' Uzavírací oddělovač argumentu položky rejstříku.                                                                                                                                                                                                                                                           |
| `arg_open <char>`           | '{' Otevírací oddělovač argumentu položky rejstříku.                                                                                                                                                                                                                                                           |
| `encap <char>`              | ' Symbol označující, že zbytek seznamu argumentů má být použit jako obalující příkaz pro číslo stránky.                                                                                                                                                                                                        |
| `escape <char>`             | '\\\\' Symbol, který escapuje následující písmeno, pokud jeho předcházející symbol není sám escape symbolem. Poznámka: quote se používá k escapování písmene, které bezprostředně následuje, ale pokud mu předchází escape symbol, je považován za obyčejný znak. Tyto dva symboly musí být odlišné.           |
| `keyword <string>`          | "\\\indexentry" Příkaz, který říká makeindexu, že jeho argument je položka rejstříku.                                                                                                                                                                                                                          |
| `level <char>`              | '!' Oddělovač označující novou úroveň podpoložky.                                                                                                                                                                                                                                                              |
| `quote <char>`              | '"' Poznámka: quote se používá k escapování písmene, které bezprostředně následuje, ale pokud mu předchází escape symbol, je považován za obyčejný znak. Tyto dva symboly musí být odlišné.                                                                                                                    |
| `range_close <char>`        | ')' Uzavírací oddělovač označující konec explicitního rozsahu stránek.                                                                                                                                                                                                                                         |
| `range_open <char>`         | '(' Otevírací oddělovač označující začátek explicitního rozsahu stránek.                                                                                                                                                                                                                                       |
| `preamble <string>`         | "\\\begin{theindex}\n" Preambule výstupního souboru.                                                                                                                                                                                                                                                           |
| `postamble <string>`        | "\n\n\\\end{theindex}\n" Dohra výstupního souboru.                                                                                                                                                                                                                                                             |
| `setpage_prefix <string>`   | "\n \\\setcounter{page}{" Předpona příkazu, který nastavuje počáteční číslo stránky.                                                                                                                                                                                                                           |
| `setpage_suffix <string>`   | "}\n" Přípona příkazu, který nastavuje počáteční číslo stránky.                                                                                                                                                                                                                                                |
| `group_skip <string>`       | "\n\n \\\indexspace\n" Svislý prostor, který se vloží před začátkem nové skupiny.                                                                                                                                                                                                                              |
| `headings_flag <string>`    | 0 Příznak označující zacházení s novými záhlavími skupin, která se vkládají před novou skupinu (symboly, čísla a 26 písmen): kladné hodnoty způsobí, že se mezi předponu a příponu vloží velké písmeno, záporné hodnoty způsobí, že se vloží malé písmeno (výchozí hodnota je 0, což nevytváří žádné záhlaví). |
| `heading_prefix <string>`   | "" Předpona záhlaví, která se vloží před začátkem nového písmene.                                                                                                                                                                                                                                              |
| `symhead_positive <string>` | "Symbols" Záhlaví pro symboly, které se vloží, pokud je headings\_flag kladné.                                                                                                                                                                                                                                 |
| `symhead_negative <string>` | "symbols" Záhlaví pro symboly, které se vloží, pokud je headings\_flag záporné.                                                                                                                                                                                                                                |
| `numhead_positive <string>` | "Numbers" Záhlaví pro čísla, které se vloží, pokud je headings\_flag kladné.                                                                                                                                                                                                                                   |
| `numhead_negative <string>` | "numbers" Záhlaví pro čísla, které se vloží, pokud je headings\_flag záporné.                                                                                                                                                                                                                                  |
| `item_0 <string>`           | "\n \\\item " Příkaz, který se vloží mezi dvě primární položky (úroveň 0).                                                                                                                                                                                                                                     |
| `item_1 <string>`           | "\n \\\subitem " Příkaz, který se vloží mezi dvě sekundární položky (úroveň 1).                                                                                                                                                                                                                                |
| `item_2 <string>`           | "\n \\\subsubitem " Příkaz, který se vloží mezi dvě položky úrovně 2.                                                                                                                                                                                                                                          |
| `item_01 <string>`          | "\n \\\subitem " Příkaz, který se vloží mezi položku úrovně 0 a položku úrovně 1.                                                                                                                                                                                                                              |
| `item_x1 <string>`          | "\n \\\subitem " Příkaz, který se vloží mezi položku úrovně 0 a položku úrovně 1, kde položka úrovně 0 nemá přiřazená čísla stránek.                                                                                                                                                                           |
| `item_12 <string>`          | "\n \\\subsubitem " Příkaz, který se vloží mezi položku úrovně 1 a položku úrovně 2.                                                                                                                                                                                                                           |
| `item_x2 <string>`          | "\n \\\subsubitem " Příkaz, který se vloží mezi položku úrovně 1 a položku úrovně 2, kde položka úrovně 1 nemá přiřazená čísla stránek.                                                                                                                                                                        |
| `delim_0 <string>`          | ", " Oddělovač, který se vloží mezi klíč úrovně 0 a jeho první číslo stránky (výchozí: čárka následovaná mezerou).                                                                                                                                                                                             |
| `delim_1 <string>`          | ", " Oddělovač, který se vloží mezi klíč úrovně 1 a jeho první číslo stránky (výchozí: čárka následovaná mezerou).                                                                                                                                                                                             |
| `delim_2 <string>`          | ", " Oddělovač, který se vloží mezi klíč úrovně 2 a jeho první číslo stránky (výchozí: čárka následovaná mezerou).                                                                                                                                                                                             |
| `delim_n <string>`          | ", " Oddělovač, který se vloží mezi dvě čísla stránek pro stejný klíč na libovolné úrovni (výchozí: čárka následovaná mezerou).                                                                                                                                                                                |
| `delim_r <string>`          | "--" Oddělovač, který se vloží mezi počáteční a koncové číslo stránky rozsahu.                                                                                                                                                                                                                                 |
| `delim_t <string>`          | "" Oddělovač, který se vloží na konec seznamu stránek. Tento oddělovač neovlivňuje položky, které nemají přiřazený seznam stránek.                                                                                                                                                                             |
| `encap_prefix <string>`     | "\\\\" První část předpony pro příkaz, který obaluje číslo stránky.                                                                                                                                                                                                                                            |
| `encap_infix <string>`      | "{" Druhá část předpony pro příkaz, který obaluje číslo stránky.                                                                                                                                                                                                                                               |
| `encap_suffix <string>`     | "}" Přípona příkazu, který obaluje číslo stránky.                                                                                                                                                                                                                                                              |
| `line_max <number>`         | 72 Maximální délka řádku ve výstupu, po jejímž překročení se řádek zalomí.                                                                                                                                                                                                                                     |
| `indent_space <string>`     | "\t\t" Mezera, která se vloží před zalomený řádek (výchozí: dvě tabelace).                                                                                                                                                                                                                                     |
| `indent_length <number>`    | 16 Délka indent\_space (výchozí: 16, odpovídá 2 tabelacím).                                                                                                                                                                                                                                                    |

## Další čtení

Pro více informací viz:

* [Glosáře](/latex/cs/struktura-dokumentu/05-glossaries.md)
* [Seznamy tabulek a obrázků](/latex/cs/obrazky-a-tabulky/03-lists-of-tables-and-figures.md)
* [Obsah](/latex/cs/struktura-dokumentu/02-table-of-contents.md)
* [Sekce a kapitoly](/latex/cs/struktura-dokumentu/01-sections-and-chapters.md)
* [Hypertextové odkazy](/latex/cs/struktura-dokumentu/09-hyperlinks.md)
* [Podpora mezinárodních jazyků](/latex/cs/jazyky/03-international-language-support.md)
* [Křížové odkazy na sekce a rovnice](/latex/cs/struktura-dokumentu/03-cross-referencing-sections-equations-and-floats.md)
* [Správa ve velkém projektu](/latex/cs/struktura-dokumentu/07-management-in-a-large-project.md)
* [LaTeXové projekty s více soubory](/latex/cs/struktura-dokumentu/08-multi-file-latex-projects.md)
* [Dokumentace balíčku imakeidx](http://mirror.math.ku.edu/tex-archive/macros/latex/contrib/imakeidx/imakeidx.pdf)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/cs/struktura-dokumentu/04-indices.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
