使用 tikz、tikz-qtree、tikz-qtree-compat 绘制树形图的帮助

使用 tikz、tikz-qtree、tikz-qtree-compat 绘制树形图的帮助

我的期望是:

在此处输入图片描述

我曾尝试过:

\documentclass{book}

\usepackage{tikz,tikz-qtree, tikz-qtree-compat}
\usepackage{gb4e}%
\begin{document}

\begin{exe}
\ex \begin{tabular}[t]{l}%\toprule%[-12pt]
\begin{tikzpicture}\label{bicycletree}
%\tikzset{level distance = 25pt}
\Tree[.DP [.D [.D ] [.Agr$^D$ $[+$m$+$h$+$pl$]$ ] ] [.NumP [.Num [.n$_j$ [.\node(id3){$v_i$}; \node(id2){$\surd$BOY}; ] [.n $+m,+h$ ] ] [.Num $[+]$pl ] ] [.nP [.n$_j$ ] [.\node(id1){v$_i$}; ] ] ] ]
\draw[semithick,<->] (id2)..controls +(south west:5) and +(south:5)..(id1);
\end{tikzpicture}
%\vspace{-38pt}
\end{tabular}
\end{exe}

\end{document}

输出

在此处输入图片描述

我怎样才能达到第一张图片中的输出效果?请提出建议....

答案1

存在空间的原因是控制点的位置。+(south west:5) and +(south:5)通过减少极坐标中的距离将它们向上移动,例如+(south west:2.5) and +(south:3)

添加附加箭头的一种方法是沿着第一个箭头添加一个坐标,然后从该坐标绘制第二个箭头。我只是反复试验才找到合适的值pos

最后,对于垂直对齐,添加baseline到的选项中tikzpicture

在此处输入图片描述

\documentclass{book}

\usepackage{tikz,tikz-qtree, tikz-qtree-compat}
\usepackage{gb4e}%
\begin{document}

\begin{exe}
\ex \begin{tabular}[t]{l}%\toprule%[-12pt]
\begin{tikzpicture}[baseline]
\label{bicycletree}
%\tikzset{level distance = 25pt}
\Tree[.DP [.D [.D ] [.Agr$^D$ $[+$m$+$h$+$pl$]$ ] ] [.NumP [.Num [.n$_j$ [.\node(id3){$v_i$}; \node(id2){$\surd$BOY}; ] [.n $+m,+h$ ] ] [.Num $[+]$pl ] ] [.nP [.n$_j$ ] [.\node(id1){v$_i$}; ] ] ] ]
\draw[semithick,<->] (id2)..controls +(south west:2.5) and +(south:3)..(id1) coordinate [pos=0.17] (tmp);
\draw [->, semithick] ([xshift=-\pgflinewidth]tmp) to[bend left=40] (id3);
\end{tikzpicture}
%\vspace{-38pt}
\end{tabular}
\end{exe}

\end{document}

相关内容