[Tex/LaTex] Flowchart: adding label in top of picture

tikz-pgf

I've got the following TikZ picture:

\begin{tikzpicture}[node distance=2cm, scale=0.7, transform shape]
\node (start) [func-entry] {Config.getText(\textbf{key})};
\node (dec1) [decision, below of=start] {\textbf{key} in\\ \emph{localized \_labels?}};
\node (dec2) [decision, right of=dec1, node distance=4cm] {\textbf{key} in\\ \emph{default \_language \_labels?}};
\node (stop) [stop, right of=dec2, node distance=4cm] {Return \textbf{key}};
\node (stop2) [stop, below of=dec1, node distance=2.6cm, xshift=2cm] {Return its value};

\draw [arrow] (start) -- (dec1);
\draw [arrow] (dec1) -- node[anchor=south] {No} (dec2);
\draw [arrow] (dec2) -- node[anchor=south] {No} (stop);
\draw [arrow] (dec1) |- node[anchor=east] {Yes} (stop2);
\draw [arrow] (dec2) |- node[anchor=west] {Yes} (stop2);

\end{tikzpicture}

which looks like this with my concrete node definitions:
Result

How do I add a label, like localized_labels = /some/file/path/here to the top or bottom of the picture without affecting the layout of the current nodes? I want the label to be included IN the picture (e.g. just doing it outside the tikzpicture is not ideal). I've tried drawing a node with [draw=none] at (0,0), but it draws on top of the existing nodes. What I want to do is to "shift" the current group of nodes down and then add the label in the top, but without affecting alignment of current nodes.

Best Answer

Three suggestions:

  • You could add it relative to another node, for example

    \node [above=of dec2] {Whatever text you wanted};
    

    This requires \usetikzlibrary{positioning}.

  • You could place it relative to the current bounding box:

     \node [above=of current bounding box.north] {Whatever text you wanted};
    

    With this method you have to place the above line at the very end of the tikzpicture.

  • You could specify the position. I think (0,0) is the default position for a node without coordinates, so your start node is probably in (0,0). Hence, you could do

     \node at (2,1) {Whatever text you wanted};
    

    to place it two units to the right, and one unit above, the start node.

Related Question