我想延长连接到 VP 节点的两个直接分支(图中红色的),而不改变上下其他分支的高度。有什么想法吗?谢谢!
\documentclass{article}
\usepackage[margin=.8in]{geometry}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{stmaryrd}
\tikzset{every tree edge/.style={align=center, anchor=north}}
\begin{document}
\begin{tikzpicture}
\Tree
[.TP
[.DP \edge[roof]; {Harvey} ]
[.T\1
[.T {[past]} ]
[.{VP \\ <e,t>}
[.DP \edge[roof]; {t$_1$} ]
[.V\1
[.V {eat} ]
[.DP ]]]]]
\end{tikzpicture}
\end{document}
答案1
您可以使用 来定位特定级别\tikzset
。但请注意,这也会增加与 的[past]
分离T
。
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\tikzset{every tree node/.style={align=center, anchor=north}}
\begin{document}
\begin{tikzpicture}[baseline]
\tikzset{level 3/.style={level distance=5em}} % the root of the tree is level 0
\Tree
[.TP
[.DP \edge[roof]; {Harvey} ]
[.T\1
[.T {[past]} ]
[.VP\\$<e,t>$
[.DP \edge[roof]; {t$_1$} ]
[.V\1
[.V {eat} ]
[.DP ]
]
]
]
]
\end{tikzpicture}
\end{document}
我能想到的解决方法有两种。首先,你可以将其作为[past]
同一节点的一部分。
\begin{tikzpicture}[baseline]
\tikzset{level 3/.style={level distance=5em}}
\Tree
[.TP
[.DP \edge[roof]; {Harvey} ]
[.T\1
[.T\\{[past]} ] % note the difference here
[.VP\\$<e,t>$
[.DP \edge[roof]; {t$_1$} ]
[.V\1
[.V {eat} ]
[.DP ]
]
]
]
]
\end{tikzpicture}
[past]
或者,您也可以使用按键手动换档yshift
。
\begin{tikzpicture}[baseline]
\tikzset{level 3/.style={level distance=5em}}
\Tree
[.TP
[.DP \edge[roof]; {Harvey} ]
[.T\1
[.T \node[yshift=2em]{[past]}; ] % note the difference here
[.VP\\$<e,t>$
[.DP \edge[roof]; {t$_1$} ]
[.V\1
[.V {eat} ]
[.DP ]
]
]
]
]
\end{tikzpicture}
除此之外,使用forest
可能更可取。
答案2
如果您不介意更换套餐,forest
专门从事这种定制:
\documentclass[tikz]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
for tree={
parent anchor=south,
child anchor=north,
}
[TP
[DP
[Harvey, triangle]
]
[T%\1
[T
[{[past]}]
]
[VP, l sep+=\baselineskip
[DP
[{t$_1$}, triangle]
]
[V%\1
[V
[eat]
]
[DP ]
]
]
]
]
\end{forest}
\end{document}