12

Another question about aligning nodes using matrices in tikz. Consider the following:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}

\matrix (m)[matrix of nodes, column  sep=5mm,row  sep=3mm, align=center,
nodes={rectangle,draw, text width = 2cm} ]{
                & \node{row1-2};    &                        \\
\node{row2-1};      &               & \node{row2-3 long in two rows};\\
};

\draw[->] (m-1-2) |- (m-2-1);
\draw[->] (m-1-2) |- (m-2-3);

\end{tikzpicture}
\end{document}

which yields me this:

Unaligned nodes

How can the boxes in the second row be aligned properly?

migrated from stackoverflow.com Oct 3 '12 at 9:23

This question came from our site for professional and enthusiast programmers.

14

Figured it out. Just add anchor=center to the node definition, and this does the trick:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\begin{tikzpicture}

\matrix (m)[
    matrix of nodes, column sep=5mm, row sep=3mm, align=center,
    nodes={rectangle, draw, text width=2cm, anchor=center}
]{
                  & \node{row1-2};  &                                 \\
  \node{row2-1};  &                 & \node{row2-3 long in two rows}; \\
};

\draw[->] (m-1-2) |- (m-2-1);
\draw[->] (m-1-2) |- (m-2-3);

\end{tikzpicture}
\end{document}

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.