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.

4
  • 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, 2011 at 14:54
  • related question: tex.stackexchange.com/questions/20816/…
    – matth
    Nov 21, 2011 at 15:04
  • Thanks for the suggestion about \centering. I've updated my LaTeX file accordingly. Nov 21, 2011 at 16:11
  • If your references still do not resolve after correctly placing the label{} command, see this related question: tex.stackexchange.com/q/377685/61946 Jul 1, 2017 at 12:53

1 Answer 1

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.

3
  • 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. Nov 21, 2011 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, 2011 at 14:32
  • I put the label command after the caption command and not inside it. It worked for me!
    – varsh
    Feb 18, 2019 at 16:17

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .