19

I wrote a long table with a label in a tex file and \input it into my main tex file. The reference in the main tex file to the table, however, does not show the numbering of the table but the one of the next table that are written directly in the main tex file. All long tables that are written directly in the main tex file have correct references. How to fix my problem? Must the label be defined in the same tex file as its reference?

The label is \label{tab:yy}, and the reference is \ref{tab:yy}, and every table has a distinct label.

lockstep
  • 250,273
Tim
  • 5,763
  • If you have not already done so, check for spelling and coping errors in the \label's. Also for duplicate \labels. I've been stymied by that kind of thing once or twice. – dmckee --- ex-moderator kitten Mar 19 '10 at 16:01
  • The label is \label{tab:yy}, and the reference is \ref{tab:yy}, and every table has a distinct label. – Tim Mar 19 '10 at 16:34
  • 2
    I had the same error! Unless I moved the label inside the caption, I was getting all kinds of wacky errors on the referenced tables and figures! Thank goodness I found this conversation!!! SO: moral of the story, just put the \label{uniquelabelhere} inside the caption affiliated with the intended referenced figure or table! –  Mar 22 '12 at 23:26
  • 2
    One of the stupidities of LaTeX. I never understood why, but as a matter of fact you have to put the caption above the label, e.g. \caption{Picture} \label{pic} otherwise LaTeX will get it wrong. – Daniel May 07 '12 at 20:58
  • 5
    The \label macro always labels the last thing which increased a counter. If you put it before \caption you are labeling usually the last sectioning command. This makes perfectly sense and is not a stupidity. This fact is also usually mentioned in many beginner texts about LaTeX. – Martin Scharrer May 07 '12 at 21:43
  • @MartinScharrer not only is it described in beginner texts, the problem was one of my targets when i was developing the uk tex faq in 1994. unfortunately, as i've discussed on meta, nobody actually reads the faq now, despite my nearly 20 years of development work on it. :-( – wasteofspace Jul 09 '13 at 10:34

4 Answers4

33

This may or may not help, but I've had similar problems with figure references where the figure number inserted into the text in place of the \ref command was wrong. I managed to solve it by putting the \label inside the figure's \caption, viz:

\begin{figure}
\caption{Some caption.\label{fig:some-figure}}
\includegraphics{some-figure.eps}
\end{figure}

It's difficult to say more without a more extensive example of what's going wrong, though!

  • Thanks! It works. I put \label just before \end when it did not work. Why is this? – Tim Mar 19 '10 at 17:06
  • @Tim: I'm not entirely sure! If anyone else could answer this I'd be interested to hear. – Will Vousden Mar 19 '10 at 17:07
  • 2
    I think it has something to do with when the counter is generated, see this answer: http://tex.stackexchange.com/questions/23385/table-numbering-mismatch-in-caption-and-in-text – Steve Heim Apr 27 '15 at 00:02
7

In my case I solved it by writing \caption and \label together.

\caption{Test table}
\label{tb:testTable}
1

Could it be that you need to rerun (La)TeX in order to imbed the new .aux file with the updated references?


OK, not that.

Could you post a minimal example that fails?


Sorry, don't know why @Will's answer works. Neither of my two bibles (the memoir manual and the Guide to LaTeX2e) says anything. The examples from there show \label{} coming right after \caption{}, not inside it.

???

David Carlisle
  • 757,742
-1

I am using memoir and I learnt that the label has always to go after the caption.