16

I have the following lines:

\begin{figure}[htbp]
\label{fig:sampleconfig}
\begin{center}
\begin{tikzpicture}[level distance=1.5cm, grow=down,
    every node/.style={minimum size=1cm,circle,thin,draw},
    edge from parent/.style={-latex, thin, draw}
]
\node {$A$}
    child {
        node {$CO_{1}$}
        child {node[rectangle,draw] {$CL_{1}$}}
    }
    child {
        node[circle,dotted,draw] {$\cdots$}
        child {node[rectangle,dotted,draw] {$\cdots$}}
    }
    child {
        node {$CO_{n}$}
        child {node[rectangle,draw] {$CL_{n}$}}
    }
;
\end{tikzpicture}
\caption{Sample configuration}
\end{center}
\end{figure}

In Figure ~\ref{fig:sampleconfig}, the node labelled $A$ is the root APPLICATION node.

No matter how many times I recompile the LaTeX file, I still get two question marks in place of "Figure 1," like so: "Figure ??."

Am I doing something incorrectly?

Thanks in advance for your help.

EDIT

In case it would help to solve the problem: I'm using MikTex 2.9 on Windows 7.

lockstep
  • 250,273
  • 10
    The \label command must go after the \caption (or inside its argument). Besides you shouldn't be using the center environment, but rather the simple command \centering in place of \begin{center} – egreg Nov 21 '11 at 14:54
  • related question: http://tex.stackexchange.com/questions/20816/is-there-any-difference-between-nesting-label-in-caption-and-putting-label-ou – matth Nov 21 '11 at 15:04
  • Thanks for the suggestion about \centering. I've updated my LaTeX file accordingly. – Shredderroy Nov 21 '11 at 16:11
  • If your references still do not resolve after correctly placing the label{} command, see this related question: https://tex.stackexchange.com/q/377685/61946 – Steven C. Howell Jul 01 '17 at 12:53

1 Answers1

30

Put your label in the caption itself. i.e.

\caption{Sample configuration\label{fig:sampleconfig}}

It should work then. You can also place it after the caption as long as it is still in the figure environment. Figure labels do not behave correctly if they are placed before the caption.

qubyte
  • 17,299
  • Unfortunately, the problem persists even after following your suggestion. I have a feeling it might have something to do with MikTex. I think if I transfer the LaTex file to my Fedora workstation, download all the TeX packages and compile there, everything will show up correctly. But someone here must know better than me about this problem. – Shredderroy Nov 21 '11 at 14:28
  • It is extremely unlikely that this is a MikTeX problem. Are you sure? Delete the aux file and try a couple more times if you didn't delete it before. You also need to upgrade the example above to a MWE that demonstrates your problem. Inserting your code in a shell article with just the TikZ package included shows your problem until I perform the change detailed in the answer. – qubyte Nov 21 '11 at 14:32
  • I put the label command after the caption command and not inside it. It worked for me! – varsh Feb 18 '19 at 16:17