Ich zeichne mit Tikz Baumstrukturen von Sätzen, bei denen Knoten Wörter enthalten, die manchmal länger sein können. Wenn das passiert, überlappen sie sich wahrscheinlich mit benachbarten Knoten. Wie kann ich Tikz anweisen, einen Mindestabstand zwischen benachbarten Knoten einzuhalten? Mein MWE:
\documentclass{standalone}
\usepackage{tikz}
\tikzset{
treenode/.style = {align=center, inner sep=3pt, text centered,
font=\sffamily},
arn_n/.style = {treenode, rectangle, text width=3em},
arn_x/.style = {treenode},
gray-arrow/.style = {draw=gray}
}
\usetikzlibrary{arrows}
\begin{document}
\begin{tikzpicture}[->,>=stealth',level/.style={sibling distance = 10cm/#1,
level distance = 1cm}]
\node [arn_n]{NP}
child { node [arn_n] {N'}
child { node [arn_n] {N'}
child { node [arn_n] {aa}
child { node [arn_x] {der}
}
}
child { node [arn_n] {N'}
child { node [arn_n] {AP}
child { node [arn_x] {geduldigsten}
}
}
child { node [arn_n] {N'}
child { node [arn_n] {N}
child { node [arn_x] {Konservativen}
}
}
}
}
}
child { node [arn_n] {N'}
child { node [arn_n] {aa}
child { node [arn_x] {unserer}
}
}
child { node [arn_n] {N'}
child { node [arn_n] {N}
child { node [arn_x] {Partei}
}
}
}
}
}
;
\end{tikzpicture}
\end{document}
In diesem Fall überlappen sich die Knoten, die „unserer“ und „N‘“ enthalten, auf der fünften Ebene. Wie kann man das auf intelligente Weise verhindern?
Antwort1
forest
erledigt das für Sie:
\documentclass{standalone}
\usepackage{forest}
\usetikzlibrary{arrows.meta}
\begin{document}
\begin{forest}
for tree={
treenode/.style = {align=center, inner sep=3pt,
text centered, font=\sffamily},
arn_n/.style = {treenode, rectangle, text width=3em},
arn_x/.style = {treenode},
gray-arrow/.style = {draw=gray},
edge=-{Stealth}}
[NP, arn_n
[N', arn_n
[N', arn_n
[aa, arn_n
[der, arn_x]]
[N', arn_n
[AP, arn_n
[geduldigsten, arn_x]]
[N', arn_n
[N, arn_n
[Konservativen, arn_x]]]]]
[N', arn_n
[aa, arn_n
[unserer, arn_x]]
[N', arn_n
[N, arn_n
[Partei, arn_x]]]]]]
\end{forest}
\end{document}