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. |

© 2007–2018 Karl Berry

Public Domain Software

http://latexref.xyz/Cross-references.html