Skip to main content

Section 2.9 Index

Currently the index is only supported for LaTeX/PDF output. To print an index after the book, you can use the LaTeX package makeidx in the preamble (see Sectionย 4.1).
\usepackage{makeidx}
\makeindex
Alternatively, you can also use the imakeidx package:
\usepackage{imakeidx}
This package offers additional features for formatting the index. For example:
\makeindex[intoc=true,columns=3,columnseprule=true,
           options=-s latex/indexstyles.ist]
In the above example, intoc=true will include an entry for the index into the table of contents, columns=3 will format the index into three columns, and columnseprule=true will display a line between index columns. Finally, options=-s latex/indexstyles.ist will use additional formatting options from an index-style file located at latex/indexstyles.ist. Many other features are available in the imakeidx package. Please refer to its documentation for further details.

Subsection 2.9.1 Inserting Entries

An index entry can be created via the \index{} command in the book body, e.g.,
Version Control\index{Version Control} is an
important component of the SDLC.
Likewise, to insert a subentry for an item:
Git\index{Version Control!Git} is a
popular version control system.
The above example will add a โ€œGitโ€ entry underneath โ€œVersion Controlโ€ in the index.
To create a โ€œsee alsoโ€ entry that appears at the bottom of an itemโ€™s subentries (with no page number), first add the following beneath the call to \makeindex in your preamble file:
% to create a "see also" that appears at the bottom of the
% subentries and with no page number, do the following:
% \index{Main entry!zzzzz@\igobble|seealso{Other item}}

\newcommand{\ii}[1]{{\it #1}}
\newcommand{\nn}[1]{#1n}

\def\igobble#1{}
Then, use the \index{Main entry!zzzzz@\igobble|seealso{Other item}} syntax in your book. As an example:
Backups\index{Version Control!zzzzz@\igobble|seealso{backups}}
should be part of your version control system.

Subsection 2.9.2 Building the Index

To build the index, insert \printindex at the end of your book through the YAML option includes -> after_body.