在 tikz-qtree 中向 qroof 添加节点

在 tikz-qtree 中向 qroof 添加节点

我需要在 tikz-qtree 中 qroof 的 head 元素中有一个节点(使用 tikz-qtree-compat)。我需要“np”作为节点,这样我就可以向它画一个箭头。但是,以下情况会中断:

\documentclass[10pt]{article}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\begin{document}
\begin{tikzpicture}
\Tree [ .TP I [ .T' T[past] [ .\node(vp){vP}; { } [ .v' v\\saw [ .VP { } [ .V' V(saw) \qroof{a man}.\node(nP){nP} ] ] ] ] ] ]
\end{tikzpicture}
\end{document}

错误是:Undefined control sequence \node(nP)nP

关于如何在那里完成节点有什么想法吗?

答案1

命令的直接兼容性存在限制qtree。 该\qroof命令是用 命令模拟的\node,这就是为什么它不能使用 a\node作为其标签的原因。但 tikz-qtree它有自己的方法来构建屋顶结构。您应该将其用于更复杂的屋顶:

\documentclass[10pt]{article}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\tikzset{every tree node/.style={align=center, anchor=north}} % to allow linebreaks
\begin{document}
\begin{tikzpicture}
\Tree [ .TP I [ .T\1 T\\{[past]} [ .\node(vp){vP}; { } [ .v\1 v\\saw 
      [ .VP { } [ .V\1 V\\(saw) [.\node(nP){nP}; \edge[roof]; {a man} ] ] ] ] ] ] ]
\end{tikzpicture}
\end{document}

PS 我还清理了您的一些格式:您应该使用\1格式化条形级别而不是仅仅使用'

相关内容