Next: Environments, Previous: Sectioning, Up: Top [Contents][Index]
We often want something like ‘See Theorem~31’. But by-hand typing
the 31 is poor practice. Instead you should write a label such as
\label{eq:GreensThm} and then reference it, as with
See equation~\ref{eq:GreensThm}. LaTeX will automatically
work out the number, put it into the output, and will change that number
later if needed.
We will see this with Theorem~\ref{th:GreensThm}. % forward reference
...
\begin{theorem} \label{th:GreensThm}
...
\end{theorem}
...
See Theorem~\ref{th:GreensThm} on page~\pageref{th:GreensThm}.
LaTeX tracks cross reference information in a file having the
extension .aux and with the same base name as the file containing
the \label. So if \label is in calculus.tex then
the information is in calculus.aux. LaTeX puts the
information in that file every time it runs across a \label.
The behavior described in the prior paragraph results in a quirk that
happens when your document has a forward reference, a \ref
that appears before the associated \label. If this is the first
time that you are compiling the document then you will get ‘LaTeX
Warning: Label(s) may have changed. Rerun to get cross references right’
and in the output the forward reference will appear as two question
marks ‘??’, in boldface. A similar thing happens if you
change some things so the references changes; you get the same warning
and the output contains the old reference information. In both cases,
resolve this by compiling the document a second time.
The cleveref package enhances LaTeX’s
cross referencing features. You can arrange that if you enter
\begin{thm}\label{th:Nerode}...\end{thm} then
\cref{th:Nerode} will output ‘Theorem 3.21’, without you
having to enter the “Theorem.”
| • \label: | Assign a symbolic name to a piece of text. | |
| • \pageref: | Refer to a page number. | |
| • \ref: | Refer to a section, figure or similar. |