Page 1 of 1

What happens if I put \label before \caption?

Posted: Thu Oct 07, 2021 4:59 pm
by Reader
In Chapter 7, Cross-Referencing, I read that the \label command has to be placed after the \caption command, not before.

What happens if I put \label before \caption?

What happens if I put \label before \caption?

Posted: Thu Oct 21, 2021 4:03 am
by Stefan Kottwitz
\caption takes care of the figure counter that \label should ise. If \label comes before \caption, it takes some previous counter, which is wrong.

Let's look at this in this example:

Code: Select all

\documentclass{article}
\usepackage{graphicx}
\begin{document}
\section{Introduction}
\section{Figures}
\begin{figure}[hb]
\centering
\includegraphics[height=2cm,width=3cm]{example-image}
\label{fig:example}% before \caption, which is wrong
\caption{An example figure}
\end{figure}
\section{Appendix}
\begin{figure}[hb]
\centering
\includegraphics[height=2cm,width=3cm]{example-image}
\label{fig:other}% before \caption, which is wrong
\caption{Another example figure}
\end{figure}
% Now we get wrong reference numbers:
See example figure \ref{fig:example} and another figure \ref{fig:other}.
\end{document}
When we compile it, we get:
figures-labels.png
figures-labels.png (24.28 KiB) Viewed 36419 times
We can see that the references at the end are clearly wrong. If we take a closer look, we see that they refere to the section number, where they are in. Move \label after \caption, and the issue is fixed.

Stefan