If you tell LaTeX what terms you want to appear in an index then it can produce that index, alphabetized and with the page numbers automatically maintained. This illustrates the basics.
\documentclass{article} \usepackage{makeidx} % Provide indexing commands \makeindex % \usepackage{showidx} % Show marginal notes of index entries ... \begin{document} ... Wilson's Theorem\index{Wilson's Theorem} says that a number $n>1$ is prime if and only if the factorial of $n-1$ is congruent to $-1$ modulo~$n$.\index{congruence!and Wilson's Theorem} ... \printindex \end{document}
As that shows, declare index entries with the \index
command
(see \index
). When you run LaTeX, the \index
writes its
information, such as ‘Wilson's Theorem’ and the page number, to an
auxiliary file whose name ends in .idx. Next, to alphabetize and
do other manipulations, run an external command, typically
makeindex
(see makeindex
), which writes a file whose name
ends in .ind. Finally, \printindex
brings this
manipulated information into the output (see \printindex
).
Thus, if the above example is in the file numth.tex then running
‘pdflatex numth’ will save index entry and page number information
to numth.idx. Then running ‘makeindex numth’ will
alphabetize and save the results to numth.ind. Finally, again
running ‘pdflatex numth’ will show the desired index, at the place
where the \printindex
command is in the source file.
There are many options for the output. An example is that the
exclamation point in \index{congruence!and Wilson's Theorem}
produces a main entry of ‘congruence’ with a subentry of ‘and
Wilson's Theorem’. For more, see makeindex
.
The \makeindex
and \printindex
commands are independent.
Leaving out the \makeindex
will stop LaTeX from saving the
index entries to the auxiliary file. Leaving out the \printindex
will cause LaTeX to not show the index in the document output.
There are many packages in the area of indexing. The showidx
package causes each index entries to be shown in the margin on the
page where the \index
appears. This can help in preparing the index.
The multind
package, among others, supports multiple indexes.
See also the TeX FAQ entry on this topic,
https://www.texfaq.org/FAQ-multind, and the CTAN topic,
https://ctan.org/topic/index-multi.