如何使用 qtree 连接两棵树?

如何使用 qtree 连接两棵树?

我想采用以下我创建的代码并按照以下方式执行操作http://alpage.inria.fr/~clerger/tutorial/tag_example.png对于中间两棵树,虚线将 V 与左侧树中的 V 连接起来。这可能吗(我更喜欢 tikz)?

\documentclass{article}
\usepackage{qtree}


\begin{document}


\begin{tabular}{ll}

\Tree [.S [.NP John ] [.VP [.V sleeps ] ] ]

&

\Tree [.V [.V ] [.Adv a lot ] ]

\end{tabular}


\end{document}

最好不要像我的树中那样将“很多”拆分成两个节点,也不要在我发送的示例中那样。

答案1

是否使用tikz-qtree选项?然后,您可以将两棵树放在同一个 中,对第二棵树tikzpicture使用,在需要的地方向树中添加命名节点,并在这些节点之间绘制箭头。scopexshift

对于最后一个问题:{a lot},不是a lot

在此处输入图片描述

\documentclass{article}
\usepackage{tikz-qtree}
\usepackage{amsmath}

\begin{document}
\begin{tikzpicture}

\Tree [.\node (s) {S}; [.NP John ] [.VP [.\node(v1){V}; sleeps ] ] ]

\begin{scope}[xshift=3cm]
\Tree [.\node(v2){V}; [.\node(v3){V}; ] [.Adv {a lot} ] ]
\end{scope}

\path (s) -- node[yshift=4pt] {$\stackrel{\text{adj}}{\implies}$} (v2);

\draw [red,dashed,-stealth] (v2) to[bend right] (v1);
\draw [red,dashed,-stealth] (v3) to[bend right] (v1);
\end{tikzpicture}

\end{document}

答案2

无需tikz-qtree为此使用:尽管常规qtree不在tikz内部使用,但它完全兼容。这是 Torbjørn 的 tikz 解决方案,翻译为使用常规qtree(并使用 OP 的方法将树并排放置):

\documentclass{article}
\usepackage{tikz}
\usepackage{qtree}

\tikzstyle{every picture}+=[remember picture] 

\begin{document}

\begin{tabular}{ll}
\Tree [.S [.NP John ] [.VP [.\tikz\node(v1){V}; sleeps ] ] ]
&
\Tree [.\tikz\node(v2){V}; [.\tikz\node(v3){V}; ] [.Adv {a lot} ] ]
\end{tabular}

\begin{tikzpicture}[overlay]
\draw [red,dashed,-stealth] (v2) to[bend right] (v1);
\draw [red,dashed,-stealth] (v3) to[bend right] (v1);
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容