tikzツリーノードが重複しないようにする

tikzツリーノードが重複しないようにする

tikz で文章のツリー構造を描いています。ノードには単語が含まれており、単語が長くなることもあります。その場合、隣接するノードと重なり合う可能性があります。隣接するノード間の間隔を最小に保つように tikz に指示するにはどうすればよいですか? 私の 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}

レンダリングされたMWE

この場合、「unserer」と「N'」を含むノードは 5 番目のレベルで重複しています。これを防ぐ賢い方法は何でしょうか?

答え1

forestあなたのためにそれを行います:

\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}

ここに画像の説明を入力してください

関連情報