Automatic cross referencing in LaTeX

In technical and scientific writing it is common to references figures, tables and equations in the text. The figure, for example, would have a caption that reads “Figure 1: Robot at the beach”. In the text we then want to reference this figure as (see Figure 1). For far too long I made my own life too difficult by not taking advantage of some of the more advanced featurs of LaTeX. Here are some leasons I learned.

It would be possible to hard code the reference in the text by writing (see Figure 1), but this is not recommendet since the numbering might change when you add more figure or tables . Hence we use dynamic referencing by giving each figure or table a label which we reference using the \ref{label} command. In the text we would write (see Figure \ref{fig:robot}). Here is a complete example:

\documentclass[a5paper]{article}
\usepackage{graphicx}
\usepackage{lipsum}
\begin{document}

\lipsum[2] (see Figure \ref{fig:robot})

\begin{figure}[h]
\includegraphics[width=0.5\linewidth]{robot.jpg}
\caption{Robot at the beach}
\label{fig:robot}
\end{figure}

\end{document}

This will be rendered to PDF as:

Cross_referencing_documentation_01

The first, and possibly most effective time safer, is to use the \autoref{label} feature of the hyperref package. You should probably always use this package anyway for other reasons by adding \usepackage{hyperref}.

\documentclass[a5paper]{article}
\usepackage{graphicx}
\usepackage{lipsum}
\usepackage{hyperref}
\begin{document}

\lipsum[2] (see \autoref{fig:robot})

\begin{figure}[h]
\includegraphics[width=0.5\linewidth]{robot.jpg}
\caption{Robot at the beach}
\label{fig:robot}
\end{figure}

\end{document}

This will automatically add the appropriate type of reference. For the figure type, it will add “Figure” to the text for you. This will be rendered to:

Cross_referencing_documentation_02

This also works for tables and equation. I wished I had know this little feature much earlier.