![连接树矩形中的两个节点](https://linux22.com/image/259387/%E8%BF%9E%E6%8E%A5%E6%A0%91%E7%9F%A9%E5%BD%A2%E4%B8%AD%E7%9A%84%E4%B8%A4%E4%B8%AA%E8%8A%82%E7%82%B9.png)
我想画一棵这样的树:
我能最接近的是以下代码:
\documentclass{minimal}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}
\tikzset{level 1+/.style={level distance=2\baselineskip}}
\Tree[.IP NP
[.VP [.\node(v){V}; [ \node(v1){}; ] ]
NP
[.PP [.\node(p){P}; \node(p1){}; ]
NP ]
]
]
\draw (v) -- (v1) -- (p1) -- (p);
\end{tikzpicture}
\end{document}
但这涉及空的辅助节点,并且线中间有一些空间。有没有更简单的方法来做到这一点?有没有\draw
可以做到这一点的选项?
答案1
您可以使用正交交叉节点和少量手动移位。
\documentclass{standalone}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}
\tikzset{level 1+/.style={level distance=2\baselineskip}}
\Tree[.IP NP
[.VP [.\node(v){V};]
NP
[.PP [.\node(p){P};]
NP ]
]
]
\draw (v) |- ([yshift=-5mm]v |- p) -| (p);
\end{tikzpicture}
\end{document}