Problem with TikZ and vertical alignment of text inside nodes
This situation is described in Section 5.1 Styling the Nodes of the pgfmanual; one possible solution is to explicitly declare height
and depth
for the nodes:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,positioning,shapes.geometric}
\begin{document}
\begin{tikzpicture}[%
->,
thick, shorten >=1pt,
>=latex,
node distance=7mm,
noname/.style={%
rectangle, rounded corners=9pt,
text height=1.5ex,
text depth=.25ex,
text width=11em,
text centered,
minimum height=3em,
draw=black!50,fill=black!20
}
]
\node[noname] (configload) {Loads config};
\node[noname] (varsdec) [right=of configload] {New variables};
\path (configload) edge node {} (varsdec);
\end{tikzpicture}
\end{document}
Here I add an image showing that now the baseline of the text is aligned:
The red line showing the alignment was obtained by adding
\draw[help lines,red,<->] let \p1 = (configload.base), \p2 = (varsdec.base) in (-1.5,\y1) -- (6.5,\y1)
(-1.5,\y2) -- (6.5,\y2);
to the example code above.
You can solve this by adding anchor=mid
to the node's definition.
\documentclass[11pt]{article}
\usepackage{tikz}
\usetikzlibrary{arrows,calc,positioning,shapes.geometric}
\begin{document}
\begin{tikzpicture}[%
->,
thick, shorten >=1pt,
>=latex,
node distance=7mm,
noname/.style={%
rectangle, rounded corners=9pt,
text width=11em,
text centered,
minimum height=3em,
draw=black!50,fill=black!20
}
]
\node[noname,anchor=mid] (configload) {Loads config};
\node[noname,anchor=mid] (varsdec) [right=of configload] {New variables};
\draw[help lines,red,<->] ($(configload.base)-(2,0)$)--($(varsdec.base)+(2,0)$);
\path (configload) edge node {} (varsdec);
\end{tikzpicture}
\end{document}
add some phantom text with the same height as the other one. For example
\node[noname,anchor=mid] (configload) {Loads config};
\node[noname,anchor=mid] (varsdec) [right=of configload] {\vphantom{g} New variables};