10

This is the code I have:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\tikz \node[rectangle split, rectangle split parts=2]
  {first\nodepart{second}second\linebreak{}third};
\end{document}

Second and third lines are glued to each other. When I'm adding text width=5em to the style of this node — everything works fine. How can I make this \linebreak work, without explicit specification of the node width? Thanks.

1

3 Answers 3

11

As long as you set an alignment for the text, you can use \\ without needing a tabular environment.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\tikz \node[rectangle split,draw,rectangle split parts=2,align=center]
  {first\nodepart{second}second\\third};
\end{document}

output of code

0
3

There following example works here:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\tikz \node[rectangle split,draw,double]
  {first
    \nodepart{second}
    second
    \nodepart{third}
 third
};
\end{document}

With \nodepart you don't need a linebreak.

1

You could use a simple tabular environment, so you can get a line break without specifying the width, further you can define alignment. For example, together with draw option to see the node parts:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\tikz \node[draw,rectangle split, rectangle split parts=2]
  {first\nodepart{second}
  \begin{tabular}{@{}c@{}}second\\third\end{tabular}};
\end{document}

multi line node

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