固定树干(森林树)

固定树干(森林树)

我使用 Forest 包在 LaTex 中创建了以下树。但是,仍有一些问题我无法解决。您能帮助我吗?提前谢谢您!

\documentclass[border=0.5cm]{standalone}
\usepackage{forest}
\forestset{
cut/.style={
    tikz+={
      \path [decorate, decoration={markings, mark=at position .5 with {\draw [] +(90:2.5pt) -- +(-90:2.5pt);}}] ()  -- (!u);
    }
  },
nice empty nodes/.style={
for tree={calign=fixed edge angles}, delay={where content={}{shape=coordinate,
for current and siblings={anchor=north}}{}}
},
  }
\usetikzlibrary{shapes.geometric,decorations.markings}

\begin{document}
\begin{forest}
[$\Omega$, nice empty nodes[[G][B, cut]]
[, cut
[H]
[, calign=last[A][R]]
[ceteri, cut]]]]]
\end{forest}
\end{document}

在图片中,我用红色标出了无法修复的部分。我需要对线进行第二次切割(右侧的那条线),并将黑线(连接 R 的那条线)置于中心

在此处输入图片描述

答案1

为了获得额外的剪切,我们改变了位的定义cut:我们让它接受一个位置参数,并将参数默认为0.5。要添加另一个剪切,我们可以简单地cut再次使用 key,并使用非默认参数,如下所示cut=0.3

为了将空节点AR其父节点对齐,我们使用。此键是父节点的calign with current快捷方式,表示caling child=2`(这是特定子节点)。calign=child˙ (align with a certain child) and

\documentclass[border=0.5cm]{standalone}
\usepackage{forest}
\forestset{
  cut/.style={
    tikz+={
      \path [decorate, decoration={markings, mark=at position #1 with {\draw [] +(90:2.5pt) -- +(-90:2.5pt);}}] ()  -- (!u);
    }
  },
  cut/.default=0.5,
  nice empty nodes/.style={
    for tree={calign=fixed edge angles},
    delay={
      where content={}{
        shape=coordinate,
        for current and siblings={anchor=north}
      }{}
    }
  },
}
\usetikzlibrary{shapes.geometric,decorations.markings}

\begin{document}
\begin{forest}
  [$\Omega$, nice empty nodes
    [[G][B, cut]]
    [, cut, % calign=child, calign child=2 % an alternative to "calign with current" below
      [H]
      [, calign=last, calign with current
        [A]
        [R]
      ]
      [ceteri, cut, cut=0.3]
    ]
  ]
\end{forest}
\end{document}

在此处输入图片描述

相关内容