森林:延伸分叉边缘的向上连接

森林:延伸分叉边缘的向上连接

我尝试使用forest分叉边选项来绘制家谱,除了绘制两个父母都显示在树中的孩子外,这种方法似乎效果很好。在这种情况下,我希望有一条线连接父母,从父母那里画出孩子。我已经使用空节点实现了类似的事情:

\documentclass{standalone}

\usepackage[edges]{forest}

\begin{document}

\begin{forest}
  forked edges,
  [,phantom
    [Parent 1,draw,name=p1]
    [
      [Child 1,draw]
      [Child 2,draw]
    ]
    [Parent 2,draw,name=p2]
  ]
  \draw (p1)--(p2);
\end{forest}

\end{document}

这将产生以下输出:

森林

显然,下面的实际树连接和上面的连接之间的间隙很烦人,但我还没有找到消除它的方法。理想情况下,我可以延伸分叉边缘的向上连接,直到它到达父母之间的线。这样的事情可能吗?

答案1

您可以使用tikz键添加缺失的行。这样做的好处是,如果您重复使用,您可以为其定义样式。

\documentclass{standalone}

\usepackage[edges]{forest}

\begin{document}

\begin{forest}
  forked edges,
  [,phantom
    [Parent 1,draw,name=p1]
    [,tikz={\draw (.south)|-(p1);}
      [Child 1,draw]
      [Child 2,draw]
    ]
    [Parent 2,draw,name=p2,tikz={\draw ()--(p1);}]
  ]
\end{forest}
\end{document}

在此处输入图片描述

答案2

\documentclass[border=3mm]{standalone}
\usepackage[edges]{forest}
\usetikzlibrary{positioning}

\begin{document}
    \begin{forest}
for tree = {draw,
            forked edge,
        l sep = 8mm,
     fork sep = 5mm,
        s sep = 9mm,
            }
[,coordinate, name=root
      [Child 1]
      [Child 2]
]
\node[draw, left =of root, name=p1] {Parent 1};
\node[draw, right=of root, name=p2] {Parent 2};
\draw (p1)--(p2);
    \end{forest}
\end{document}

在此处输入图片描述

相关内容