![森林树木中的叶子合并](https://linux22.com/image/398825/%E6%A3%AE%E6%9E%97%E6%A0%91%E6%9C%A8%E4%B8%AD%E7%9A%84%E5%8F%B6%E5%AD%90%E5%90%88%E5%B9%B6.png)
我正在尝试让树上的叶子汇聚在一起,就像这样:
但我不想B_{n-2}(x)
被画两次,我想B_{n-2}(x)
处于两条线的终点,一条源自B_{n-1}(x+1/2)
,另一条源自B_{n-1}(x-1/2)
。
这可能吗?
这是我当前的代码:
\documentclass{article}
\usepackage{forest}
\begin{document}
\begin{forest}
[$B_n(x)$
[$B_{n-1}(x+1/2)$
[$B_{n-2}(x+1)$]
[$B_{n-2}(x)$]
]
[$B_{n-1}(x-1/2)$
[$B_{n-2}(x)$]
[$B_{n-2}(x-1)$]
]
]
\end{forest}
\end{document}
答案1
多主结构不再是树,因此标准树包没有很好的方法来处理它们。一般的方法是创建一个没有边的节点,然后手动将边绘制到共享节点:
\documentclass{article}
\usepackage{forest}
\usetikzlibrary{positioning}
\begin{document}
\begin{forest}for tree={math content}
[B_n(x)
[B_{n-1}(x+1/2),name=S1
[B_{n-2}(x+1)]
[B_{n-2}(x),phantom]
]
[B_{n-2}(x),tier=term,no edge,name=shared]
[B_{n-1}(x-1/2),name=S2
[B_{n-2}(x),phantom]
[B_{n-2}(x-1),tier=term]
]
]
\draw (S2) -- (shared);
\draw (S1) -- (shared);
\end{forest}
\end{document}