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
Synopsis:
\label{key}
Assign a reference number to key. In ordinary text
\label{key}
assigns to key the number of the
current sectional unit. Inside an environment with numbering, such as a
table
or theorem
environment, \label{key}
assigns to key the number of that environment. Retrieve the
assigned number with the \ref{key}
command
(see \ref).
A key name can consist of any sequence of letters, digits, or common punctuation characters. Upper and lowercase letters are distinguished, as usual.
A common convention is to use labels consisting of a prefix and a suffix
separated by a colon or period. Thus, \label{fig:Post}
is a
label for a figure with a portrait of Emil Post. This helps to avoid
accidentally creating two labels with the same name, and makes your
source more readable. Some commonly-used prefixes:
ch
for chapters
sec
subsec
for lower-level sectioning commands
fig
for figures
tab
for tables
eq
for equations
In the auxiliary file the reference information is kept as the text of
a command of the form
\newlabel{label}{{currentlabel}{pagenumber}}
.
Here currentlabel is the current value of the macro
\@currentlabel
that is usually updated whenever you call
\refstepcounter{counter}
.
Below, the key sec:test
will get the number of the current
section and the key fig:test
will get the number of the figure.
(Incidentally, put labels after captions in figures and tables.)
\section{section name} \label{sec:test} This is Section~\ref{sec:test}. \begin{figure} ... \caption{caption text} \label{fig:test} \end{figure} See Figure~\ref{fig:test}.
\pageref
Synopsis:
\pageref{key}
Produce the page number of the place in the text where the corresponding
\label
{key} command appears.
If there is no \label{key}
then you get something like
‘LaTeX Warning: Reference `th:GrensThm' on page 1 undefined on
input line 11.’
Below, the \label{eq:main}
is used both for the formula number
and for the page number. (Note that the two references are forward
references so this document would need to be compiled twice to resolve
those.)
The main result is formula~\ref{eq:main} on page~\pageref{eq:main}. ... \begin{equation} \label{eq:main} \mathbf{P}=\mathbf{NP} \end{equation}
\ref
Synopsis:
\ref{key}
Produces the number of the sectional unit,
equation, footnote, figure, …, of the corresponding
\label
command (see \label). It does not produce any text,
such as the word ‘Section’ or ‘Figure’, just the bare number itself.
If there is no \label{key}
then you get something like
‘LaTeX Warning: Reference `th:GrensThm' on page 1 undefined on
input line 11.’
In this example the \ref{popular}
produces ‘2’. Note that
it is a forward reference since it comes before \label{popular}
so this document would have to be compiled twice.
The most widely-used format is item number~\ref{popular}. \begin{enumerate} \item Plain \TeX \item \label{popular} \LaTeX \item Con\TeX t \end{enumerate}
The cleveref package includes text such as ‘Theorem’ in the reference. See the documentation on CTAN.