答案1
这是 的工作fit=band
。当您将此选项置于节点时,Forest 不会计算其子树的精确轮廓,而是将其放在“带”中——包含子树的最小矩形,该矩形一直延伸到生长方向,即它占据 OP 图片中蓝线所占的空间。有关更多信息和图片,请参阅手册第 3.7.2 节。
\documentclass{article}
\RequirePackage{forest}
\useforestlibrary{linguistics}
\begin{document}
\begin{forest}
for tree = {grow' = 0, sn edges},
[
[A, fit = band]
[B
[C
[D]
[E]]
[F]]]
\end{forest}
\end{document}
在这个特殊情况下,可能需要调整s sep
根节点的,以便节点 A 不会太靠北。请记住,s sep
控制兄弟子树轮廓之间的距离。上面,子树 A 的轮廓是一条延伸超过 D 的“无限”带,因此根s sep
有效地控制了这个距离。
\documentclass{article}
\RequirePackage{forest}
\useforestlibrary{linguistics}
\begin{document}
\begin{forest}
for tree = {grow' = 0, sn edges},
[,s sep=0
[A, fit = band]
[B
[C
[D]
[E]]
[F]]]
\end{forest}
\end{document}
PS 为了更清楚地看到距离,我喜欢在树上工作时draw
在里面添加。在第二个示例中这样做可以清楚地表明 D 的北部和 A 的南部对齐,并且 A 和 D 之间任何剩余的垂直距离都归因于这些节点。for tree
inner ysep