A table of contents is produced with the \tableofcontents
command. You put the command right where you want the table of
contents to go; LaTeX does the rest for you. A previous run must
have generated a .toc file.
The \tableofcontents
command produces a heading, but it does
not automatically start a new page. If you want a new page after the
table of contents, write a \newpage
command after the
\tableofcontents
command.
The analogous commands \listoffigures
and \listoftables
produce a list of figures and a list of tables, respectively.
Everything works exactly the same as for the table of contents.
The command \nofiles
overrides these commands, and
prevents any of these lists from being generated.