我用它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}
此代码产生 -
这正是我想要的。现在让我们转到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}