Registers
< Structurals | References > (It's also in the manual at "Registers")
Basics
Putting a word into the index as simple as \index{word}. (Always type \index before the word you refer to!)
To sort e.g. \ConTeXt under "C", you write \index[CONTEXT]{\ConTeXt}.
If you need multiple levels (up to three), use "+" or "&" separators like in \index{beans+baked}.
You get a cross reference in your index with \seeindex like in \seeindex[CONTEXT]{\ConTeXt}{\TeX} (ConTeXt: see TeX).
To typeset the index, use \placeindex (without title) or \completeindex (with titling).
Example
My \index{dog}dog is a \index{dog+bullterrier}bullterrier named \seeindex{Dolly}{Underware}Dolly. He doesn't like \index{cat}cats. There are a lot of \index{cat+stray}stray cats, but only a few of them are \index{cat+Siamese}Siamese. \placeindex
Styling the Index
\setupregister[index] is your friend. \placeindex and \completeindex take the same options.
You can also style single entries with the :: syntax like this (from the manual):
\setupregister[index][form][pagestyle=bold,textstyle=slanted] \setupregister[index][tb][textstyle=bold] \setupregister[index][nb][pagestyle=bold] \setupregister[index][hm][pagestyle=slanted] \index{tb::foot+squarefoot} % text in "tb" style \index[nb::]{squareroot} % number in "nb" style \index[hm::root]{$\srqt{2}$} % number in "hm" style, sorted at "root"
More Registers
\index is only one special case of \register. You can define as much different registers as you like:
\defineregister[singular name][plural name], e.g.
\defineregister[mouse][mice] \setupregister[mouse][style=\ss] \mouse{rat} \placemouse
(Don't know if the plural form is used anywhere...)
Tricks
- \startregister[mymouse]{mouse} ... \stopregister[mymouse]: to mark several pages for the same entry; becomes e.g. "mouse 12--16". Note that if you have two or more of these ranges, you need them to have different [key] values to stop the system treating them as part of a great big range. So, use \startregister[mymouse1]{mouse} ... \stopregister[mymouse1] and then \startregister[mymouse2]{mouse} ... \stopregister[mymouse2].
- \writetoregister (sometimes needed to avoid macro expansion issues)
- A register per chapter: \placeregister[index][criterium=chapter]
- Place a word in text and index: \def\Tindex#1{\index{#1}#1} -- Please someone enhance this to get space correction, [] sorting etc.!
Coupled Registers
This is a special feature for documents that are only used on screen: Make a word clickable to jump to the index, the first or last occurrence.
Enable it with \setupregister[index][coupling=yes]. Substitute \index with \coupledindex and enjoy!