如何在森林包中拥有两个根节点?

如何在森林包中拥有两个根节点?

我用它forest来制作树木。这个包可以自动测量和放置节点(太棒了!!)我希望森林树的一个节点可以容纳在两棵树中。

看一下这个代码。

\documentclass{standalone}
\usepackage{tikz}

\begin{document}
    \begin{tikzpicture}
    \draw (1,1) -- (1,-2) node[below]{a};
    \draw (1,1) -- (3,-2) node[below]{b};
    \draw (1,1) -- (-1,-2) node[below]{c};
    \draw[dotted] (5,1) -- (3,-2);
    \draw (5,1) -- (5,-2) node[below]{d};
    \draw (5,1) -- (7,-2) node[below]{e};
    \end{tikzpicture}
\end{document}

此代码产生 -

1

这正是我想要的。现在让我们转到forest。我不希望位置计算出现在图中。我希望上面的树是自动化的。这是一个伪森林代码,我想让它可行。在这个代码中有两棵树(这本身对于 来说是一件陌生的事情forest)并且它们两个中都有一个模糊节点。可能吗?

\documentclass{standalone}
\usepackage[linguistics]{forest}

\begin{document}
    \begin{forest}
        [[c]
        [a]
        {b}%Special brackets to have this node in both the trees
        ]%This bracket should end the first tree

        [%This bracket should start a new tree
        {b}%Special brackets to have this node in both the trees
        [d]
        [e]
        ]
    \end{forest}
\end{document}

PS-如果可能的话,我也想要虚线,但这绝对是可选的。

答案1

多主宰树不是树,因此没有好的方法用树绘制包(如forest或)来自动化绘制多主宰tikz-qtree树。但是有办法手动创建相同的效果(我知道这不是你想要的)。这是一个示例。第二棵树更对称,但更复杂,因为它涉及幻影第三中心节点以使共享节点正确对齐。

\documentclass{article}
\usepackage[linguistics]{forest}
\begin{document}
\begin{forest}
[,phantom [A [B ][C,name=C]] [D,name=D [,phantom][F]]]
\draw[dotted] (C.north) -- (D.south);
\end{forest}

\begin{forest}where n children=0{tier=T}{}
[,phantom [A,name=A [B, ][,phantom]][,phantom [C,name=C ]][D,name=D [,phantom][F]]]
\draw (C.north) -- (A.south);
\draw[dotted] (C.north) -- (D.south);
\end{forest}

\end{document}

代码输出

相关内容