我正在尝试将单词或树添加到通过波浪线连接到主树的 DP 节点,就像 V 节点下面有表达式“smokes”一样。我该怎么做?
\documentclass[12pt,a4paper]{article}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\begin{document}
\ex.
\leavevmode\vadjust{\vspace{-\baselineskip}}\newline
\begin{tikzpicture}
\tikzset{level 1+/.style={sibling distance=2\baselineskip}}
\Tree [.\node(z){TP}; \edge[white]; ˜ [.T\1 T [.\node(y){DP}; \edge[white];
˜ [.V smokes ]]]]
\node (x) at (-4,-4) {DP} ;
\draw (x.east) to [out=0, in=180] (y.south);
\draw (x.east) to [out=0, in=180] (z.south);
%\draw[help lines] (-4,-4) grid (4,4)
\end{tikzpicture}
\end{document}
答案1
问题是,您\Tree
在一个命令中有两个命令tikzpicture
,因此 Tikz 会混淆它们并认为它们只是一棵树。通常,通过将每个命令放在单独的命令中来解决此问题tikzpicture
,但在您的情况下,这并不可取。执行相同操作的侵入性较小的方法是使用范围。
在这种情况下,我们将把移位应用于其scope
本身而不是第二棵树的主节点。
输出
代码
\documentclass[12pt,a4paper]{article}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\begin{document}
%\ex
\leavevmode\vadjust{\vspace{-\baselineskip}}\newline
\begin{tikzpicture}
\begin{scope}
\tikzset{level 1+/.style={sibling distance=2\baselineskip}}
\Tree [.\node(z){TP}; \edge[white]; ˜ [.T\1 T [.\node(y){DP}; \edge[white];
˜ [.V smokes ]]]]
\end{scope}
\begin{scope}[shift={(-4,-4)}]
\Tree [.\node(x){DP}; [.smokes ]]
\end{scope}
\draw (x.east) to [out=0, in=180] (y.south);
\draw (x.east) to [out=0, in=180] (z.south);
%\draw[help lines] (-4,-4) grid (4,4)
\end{tikzpicture}
\end{document}