答案1
这个qtree
包非常老旧,而且在大多数情况下,都有更好的包可用。但是该qtree
\Tree
命令并不打算以您在示例代码中所做的方式嵌入,所以我不会将您看到的行为称为错误。事实上,大多数树绘制包都不允许您以这种方式将一棵树嵌入另一棵树中。
如果要实现嵌入树的效果,可以使用\savebox
预编译嵌入树。我已经使用 展示了使用该方法的解决方案qtree
。
不过,就我个人而言,我建议使用该forest
包并手动绘制屋顶节点,而不是嵌入树(这两者都是不可能的forest
。)
\documentclass{article}
\usepackage[linguistics]{forest}
\usepackage{qtree}
\newsavebox{\myA}
\newsavebox{\myB}
\begin{document}
\savebox\myA{\Tree [.+ [.+ 2 4 ] 6 ] }
\savebox\myB{\Tree [.+ [.+ 3 5 ] 7 ] }
\Tree [.+ [.+ 1 [.+ 2 3 ] ]
\qroof{\usebox\myA\qquad\usebox\myB }.A
]
\hfill
\begin{forest}
[+ [+ [1] [+ [2] [3] ] ]
[A [+,name=A1 [+ [2] [4] ] [6] ] [+,name=A2 [+ [3] [5] ] [7] ]
]]
\draw (A1.north)--(A2.north);
\end{forest}
\end{document}