我正在尝试绘制一棵特定的树,其中两个父节点链接到同一个子节点。问题是其中一个父节点在主树之外。
这是我目前拥有的代码:
\documentclass{article}
\usepackage{tikz-qtree,tikz-qtree-compat}
%\usepackage{gb4e}
\usepackage{forest}
\begin{document}
%\begin{exe}
\begin{forest}
qtree edges/.style={for tree= parent anchor=north, child anchor=south}
[A, grow=north
[C, name=C, grow'=north
[D, grow=north ]
[E, name=t5, grow=north ]
]
[B, grow=north ]
]
\hspace{0.8cm}
[$F$, name=F, grow=north ]
%\draw (F.north) -- (C.south);
\end{forest}
%\end{exe}
\end{document}
我希望节点 F 和 C 连接起来。我不知道为什么,但如果我删除美元符号,节点 F 甚至不会出现在我的文档中。
另一件事是我想将森林环境嵌入到示例环境中,但这也不起作用。
在此先感谢您的帮助!
答案1
您的代码存在各种问题。首先,多根结构不是正式的树,所以你不能指望树绘制包直接处理它们。有关这方面的更多技术讨论,请参阅以下问题:
此外,示例的语法gb4e
要求示例由\ex
宏引入(在{exe}
环境内)。
为了处理多重支配,我使用了 Ignasi 的建议来创建一个相对于-|
节点 A 和 E 之间的路径的节点。您也可以使用 TikZpositioning
库来手动放置节点。我还删除了包tikz-qtree
,因为如果您使用,它就不需要了forest
。由于您的“树”向上生长,我已将其添加baseline
到其中一个终端节点,以便它与示例编号正确对齐,并为树全局设置增长函数。此外,您的示例中的节点具有特定的样式,但您从未应用过该样式,我也这样做过。
您还应该gb4e
在大多数其他包之后加载,否则可能会导致问题。)
\documentclass{article}
\usepackage{forest}
\usepackage{gb4e}
\begin{document}
\begin{exe}
\ex
\begin{forest}
qtree edges/.style={for tree={parent anchor=north, child anchor=south}},
for tree={grow=north},qtree edges
[A, name=A,
[C, name=C
[E,baseline,name=E ]
[D, ]
]
[B ]
]
\node (F) at (A-|E) {F};
\draw (F.north) -- (C.south);
\end{forest}
\end{exe}
\end{document}