森林パッケージで木を育てる

森林パッケージで木を育てる

forest パッケージを使用して、次のように子要素が垂直に積み重ねられるようにツリーを成長させることは可能ですか? 多くの子を持つツリーノード

最終的に、次のようにしました。親が A で、3 つの子 (BCD) があり、上記のようにすべての子をアタッチしたい場合は、次のようにする必要がありました。

\begin{forest}
for tree={
draw,
%  minimum height=2cm,
%  anchor=west,
align=center
% calign
%  child anchor=west
},
[{ROOT},  align=center
[{ A} , parent anchor=south, child anchor=north  
[{B}, parent anchor=east,  anchor=east, child anchor=east , calign=child edge 
[{C}, parent anchor=east, anchor=east, child anchor=east, calign=child edge
    [{D}, parent anchor=east, anchor=east, child anchor=east 
    ]
  ]
 ]
]
\end{forest}

ご覧のとおり、それらはすべて A の子ですが、B を C の親にし、C を D の親にする必要がありました。

答え1

この図のコードは以前何人かの人が提供していただけでなく、私も Forest を使用して回答したことがありました。

質問内の画像がソースにリンクされていれば、手がかりが得られる可能性が高くなるため、はるかに簡単になります。

私は Forest の解決策を見つけたのでそれを示したことはわかっていますが、回答へのリンクを示していないようです。また、以前に回答されていたのでコピー アンド ペーストして適応できるコードに OP がリンクしていたのに、私は最初から図を描いたのでイライラしたのを覚えています (ただし、コードはもう機能していなかったか、Forest を使用していなかったか、何か他の理由があったのかもしれません)。

この図は、私に何度も起こるので非常に迷惑です。

とにかく、私はForest v.2のコードに、私の答えリンクインTorbjørn T. のコメントこのバージョンではライブラリfolderのスタイルを使用しますedges

\documentclass[border=5pt,tikz,multi]{standalone}
\usepackage[edges]{forest}
\usetikzlibrary{arrows.meta,shadows.blur}
\forestset{%
  colour me out/.style={outer color=#1!75, inner color=#1!50, draw=darkgray, thick, blur shadow, rounded corners},
  rect/.append style={rectangle, rounded corners=2pt},
  dir tree switch/.style args={at #1}{%
    for tree={
      edge=-Latex,
      font=\sffamily,
      fit=rectangle,
    },
    where level=#1{
      for tree={
        folder,
        grow'=0,
      },
      delay={child anchor=north},
    }{},
    before typesetting nodes={
      for tree={
        content/.wrap value={\strut ##1},
      },
      if={isodd(n_children("!r"))}{
        for nodewalk/.wrap pgfmath arg={{fake=r,n=##1}{calign with current edge}}{int((n_children("!r")+1)/2)},
      }{},
    },
  },
}

\begin{document}
\begin{forest}
  dir tree switch=at 1,
  for tree={
    font=\sffamily\bfseries,
    rect,
    align=center,
    edge+={thick, draw=darkgray},
    where level=0{%
      colour me out=green!50!white,
    }{%
      if level=1{%
        colour me out=green!95!black,
      }{%
        colour me out=magenta!50!orange!75!white,
        edge+={-Triangle},
      },
    },
  }
  [Drawing\\Diagrams
    [Defining node\\and arrow styles
      [Setting shape]
      [Choosing colour]
      [Adding shading]
    ]
    [Positioning\\the nodes
      [Using a matrix
        [Absolutely]
        [Relatively]
        [Using overlays]
      ]
    ]
    [Drawing arrows\\between nodes
      [Default arrows
        [Arrow library]
        [Re-sizing tips]
        [Shortening]
        [Bending]
      ]
    ]
  ]
\end{forest}
\end{document}

フォレスト2出力

関連情報