我有一个带有尖括号的语法树来表示运动:
\begin{tikzpicture}
\Tree [
.TP [
.T' \node{T+verb}; [
.vP \qroof{`ana}.DP [
.v' \node{v+{\textlangle}verb{\textrangle}}; [
.VP [
.V' \node{V+{\textlangle}verb{\textrangle}}; \qroof{taalib}.DP
]
]
]
]
]
]
\end{tikzpicture}
我需要在三个节点之间画箭头,但 tikz-qtree 文档中的示例不起作用;使用
\draw[semithick,->] (V+{\textlangle}verb{\textrangle}).. controls +(south west:5)
and +(south:5) .. (v+{\textlangle}verb{\textrangle});
我得到:
! TeX capacity exceeded, sorry [input stack size=5000].
\font@name ->
\OT1/cmr/m/n/10
l.23 ...ick,->] (V+{\textlangle}verb{\textrangle})
..controls +(south west:5)...
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.
我猜想在节点名称中使用符号会造成混乱。我可以指定一个内容用于显示,另一个内容用作节点名称吗?或者还有其他方法可以解决这个问题吗?
答案1
创建节点时,有不同的分隔符用于不同的目的:
\node[options](node name){node content};
任何关于例如,节点的外观在方括号中指定。node name
,可用作draw
ing 的坐标,在括号中指定。最后,节点的内容,即图片中实际显示的文本,在括号中指定。
\documentclass{standalone}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat,textcomp}
\begin{document}
\begin{tikzpicture}
\Tree [
.TP [
.T' \node{T+verb}; [
.vP \qroof{`ana}.DP [
.v' \node(A){v+{\textlangle}verb{\textrangle}}; [
.VP [
.V' \node(B){V+{\textlangle}verb{\textrangle}}; \qroof{taalib}.DP
]
]
]
]
]
]
\draw [thick,red] (A) to[out=270,in=180] (B);
\end{tikzpicture}
\end{document}