我想要将以下树左子树中的 NP[...]、NP[...] 文本与右子树中的 NP[...]、NP[...] 文本连接起来。
\documentclass{article}
\usepackage{xspace}
\usepackage{tikz-qtree}
\tikzset{every roof node/.append style={inner sep=0.1pt,text height=2ex,text depth=0.3ex}}
\newcommand{\feattab}[1]{[\begin{tabular}[t]{@{}l@{}}#1 ]\end{tabular}}
\newcommand{\vform}{{\sc vform}\xspace}
\newcommand{\type}[1]{{\it #1}}
\newcommand{\sliste}[1]{%
\mbox{%
$\left\langle\mbox{\sc #1}\right\rangle$}%
}
\begin{document}
\begin{tikzpicture}
\tikzset{level 1+/.style={level distance=4\baselineskip}}
\tikzset{frontier/.style={distance from root=8\baselineskip}}
\Tree[.V\feattab{
\vform \type{fin},\\
\sliste{ NP[\type{nom}], NP[\type{acc}] } }
[.V\feattab{
\vform \type{bse},\\
\sliste{ NP[\type{nom}], NP[\type{acc}] } } lesen ]
[.V\feattab{
\vform \type{fin},\\
\sliste{ NP[\type{nom}], NP[\type{acc}], V } } wird ]
]
\end{tikzpicture}
\end{document}
\node
我尝试使用和实现这一点\draw
,但不知何故这不起作用:
\documentclass{article}
\usepackage{xspace}
\usepackage{tikz-qtree}
\tikzset{every roof node/.append style={inner sep=0.1pt,text height=2ex,text depth=0.3ex}}
\newcommand{\feattab}[1]{[\begin{tabular}[t]{@{}l@{}}#1 ]\end{tabular}}
\newcommand{\vform}{{\sc vform}\xspace}
\newcommand{\type}[1]{{\it #1}}
\newcommand{\sliste}[1]{%
\mbox{%
$\left\langle\mbox{\sc #1}\right\rangle$}%
}
\begin{document}
\begin{tikzpicture}
\tikzset{level 1+/.style={level distance=4\baselineskip}}
\tikzset{frontier/.style={distance from root=8\baselineskip}}
\Tree[.V\feattab{
\vform \type{fin},\\
\sliste{ NP[\type{nom}], NP[\type{acc}] } }
[.V\feattab{
\vform \type{bse},\\
\sliste{ \node(lesen){NP[\type{nom}], NP[\type{acc}]}; } } lesen ]
[.V\feattab{
\vform \type{fin},\\
\sliste{ \node(wird){NP[\type{nom}], NP[\type{acc}]};, V } } wird ]
]
\draw[semithick,->] (lesen)..controls +(south east:5) and +(south west:5)..(wird);
\end{tikzpicture}
\end{document}
有没有办法做到这一点?
我还想通过将背景变为灰色来突出显示 NP[...]、NP[...] 部分。
答案1
TiKZ-qtree 手册说
在 \Tree 内部,您可以使用 TikZ \node 命令来代替节点标签。
并且您尝试在 anode
内使用 anode label
而不是 。如果您将所有节点标签都包含在 a 内node
,则它可以工作。
\documentclass{article}
\usepackage{xspace}
\usepackage{tikz-qtree}
\tikzset{every roof node/.append style={inner sep=0.1pt,text height=2ex,text depth=0.3ex}}
\newcommand{\feattab}[1]{[\begin{tabular}[t]{@{}l@{}}#1 ]\end{tabular}}
\newcommand{\vform}{{\sc vform}\xspace}
\newcommand{\type}[1]{{\it #1}}
\newcommand{\sliste}[1]{%
\mbox{%
$\left\langle\mbox{\sc #1}\right\rangle$}%
}
\begin{document}
\begin{tikzpicture}
\tikzset{level 1+/.style={level distance=4\baselineskip}}
\tikzset{frontier/.style={distance from root=8\baselineskip}}
\Tree[.V\feattab{
\vform \type{fin},\\
\sliste{ NP[\type{nom}], NP[\type{acc}] } }
[.\node (lesen) {V\feattab{
\vform \type{bse},\\
\sliste{ NP[\type{nom}], NP[\type{acc}] } } }; ]
[.\node (wird) {V\feattab{
\vform \type{fin},\\
\sliste{ NP[\type{nom}], NP[\type{acc}], V } }}; ]
]
\draw[semithick,->] (lesen)..controls +(south east:5) and +(south west:5)..(wird);
\end{tikzpicture}
\end{document}