森林树木的定制边缘

森林树木的定制边缘

按照文档,使用tikz-qtree包裹。以下代码说明了这一点:

\documentclass{standalone}
\usepackage{tikz-qtree}

\begin{document}

\begin{tikzpicture}
  \tikzset{
    edge from parent/.style={
      draw,
      edge from parent path={
        (\tikzparentnode.south) -- (\tikzparentnode.south |- 0,-10pt -| \tikzchildnode) -- (\tikzchildnode)
      }
    }
  }
  \Tree [.ZZ
          [.Bax
            [.X
              [.Y [.A ] [.B ] ]
              [.Z [.C ] [.D ] ] ]
            [.F
              [.M [.E ] [.F ] ]
              [.G [.G ] [.H ] ] ] ]
          [.A
            [.B
              [.S  [.I P R T V U ] [.J ] ]
              [.I  [.K ] [.L ] ] ]
            [.M
              [.L  [.M ] [.N ] ]
              [.A  [.O ] [.P ] ] ] ] ]
\end{tikzpicture}

\end{document}

其输出为:

示例文档的输出

如何用forest包裹

答案1

虽然我仍然对 感到疑惑(\tikzparentnode.south |- 0,-10pt -| \tikzchildnode),但通常的 TikZ (和 ) 中的方法forest甚至更容易理解一些 (至少对我来说):

edge path={\noexpand\path[\forestoption{edge}] 
                (\forestOve{\forestove{@parent}}{name}.parent anchor)
             -- ([shift={(0,-10pt)}]
                         \forestOve{\forestove{@parent}}{name} -| \forestove{name})
             -- (\forestove{name}.child anchor)
                \forestoption{edge label};
          }

线的弯折处10pt从 向下移动parent -| child

代码

\documentclass[tikz,convert=false]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
  for tree={%
    % re-establishing the defaults:
    child anchor=north,
    parent anchor=south,
    edge path={\noexpand\path[\forestoption{edge}] 
                    (\forestOve{\forestove{@parent}}{name}.parent anchor)
                 -- ([shift={(0,-10pt)}]
                             \forestOve{\forestove{@parent}}{name} -| \forestove{name})
                 -- (\forestove{name}.child anchor)
                    \forestoption{edge label};
              }
  }
 [ZZ
 [Bax
 [X
 [Y [A ] [B ] ]
 [Z [C ] [D ] ] ]
 [F
 [M [E ] [F ] ]
 [G [G ] [H ] ] ] ]
 [A
 [B
 [S  [I [P][R][T][V][U]] [J ] ]
 [I  [K ] [L ] ] ]
 [M
 [L  [M ] [N ] ]
 [A  [O ] [P ] ] ] ] ] ]
\end{forest}
\end{document}

输出

在此处输入图片描述

相关内容