我使用 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
。
为了将空节点A
与R
其父节点对齐,我们使用。此键是父节点的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}