树木和箭

树木和箭

我需要画一个箭头,使用\draw[semithick,->] (t)..controls +(south west:5) and +(south:5) .. (wh);

我想要箭头连接e3到下面树的底部和其中e3较高位置出现的单个节点:

    \documentclass[12pt,a4paper]{article}   
    \usepackage{tikz-qtree}
    \usepackage{tikz-qtree-compat}
    \usepackage{ulem}

    \begin{document}

     \begin{tikzpicture}
\Tree [.{$<$t$_{1}$,\hspace{0.1cm} \\$\lbrack$ \hspace{0.3cm} $\rbrack$, $\lbrack$ \hspace{0.3cm} $\rbrack$ $>$} [.{$<$(e$_{3}$ $\rightarrow$ t$_{1}$) $\rightarrow$ t$_{1}$),\hspace{0.1cm} \\$\lbrack$ e$_{3}$ $\rbrack$ $>$} \node(wh){something} ;]
[.{$<$(e$_{3}$  $\rightarrow$ t$_{1}$), \hspace{0.1cm} \\$\lbrack$ e$_{2}$ $\rbrack$, \hspace{0.1cm} \\$\lbrack$ \hcancel{e$_{3}$}
 \thinspace $\rbrack$ $>$ } [.{e$_{3}$}  ]
[.\node[draw]{{$<$t$_{1}$, \hspace{0.1cm} \\$\lbrack$ e$_{2}$ $\rbrack$, \hspace{0.1cm} \\$\lbrack$ e$_{3}$ $\rbrack$ $>$ }}; 
[.\node[draw]{e$_{2}$ }; ]
[.{$<$(e$_{2}$  $\rightarrow$ t$_{1}$), \hspace{0.1cm} \\$\lbrack$ e$_{3}$ $\rbrack$ $>$} [.{$<$(e$_{3}$ $\rightarrow$ e$_{2}$  $\rightarrow$ t$_{1}$),\hspace{0.1cm} \\$\lbrack$ $\emptyset$ $\rbrack$ $>$}  {$<$(e$_{3}$ $\rightarrow$ e$_{2}$  $\rightarrow$ t$_{1}$),\hspace{0.1cm} \\$\lbrack$ $\emptyset$ $\rbrack$ $>$} ]
[.\node[draw]{e$_{3}$ }; 
[. e$_{3}$; ] ] ] ] ] ] ] ]
\end{tikzpicture}

\end{document}

我怎样才能做到这一点?

答案1

只需将\node这些元素的名称与 s 一起使用,然后使用名称连接它们:

\documentclass[12pt,a4paper]{article}   
    \usepackage{tikz-qtree}
    \usepackage{tikz-qtree-compat}
    \usepackage{ulem}

\def\hcancel#1{}% provissional definition; delete this line in your actual code

    \begin{document}

     \begin{tikzpicture}
\Tree 
[.{$<$t$_{1}$,\hspace{0.1cm} \\$\lbrack$ \hspace{0.3cm} $\rbrack$, $\lbrack$ \hspace{0.3cm} $\rbrack$ $>$} 
  [.{$<$(e$_{3}$ $\rightarrow$ t$_{1}$) $\rightarrow$ t$_{1}$),\hspace{0.1cm} \\$\lbrack$ e$_{3}$ $\rbrack$ $>$} \node(wh){something} ;
  ]
  [.{$<$(e$_{3}$  $\rightarrow$ t$_{1}$), \hspace{0.1cm} \\$\lbrack$ e$_{2}$ $\rbrack$, \hspace{0.1cm} \\$\lbrack$ \hcancel{e$_{3}$}
 \thinspace $\rbrack$ $>$ } 
    [. \node (ue) {e$_{3}$};  ]
    [.\node[draw]{{$<$t$_{1}$, \hspace{0.1cm} \\$\lbrack$ e$_{2}$ $\rbrack$, \hspace{0.1cm} \\$\lbrack$ e$_{3}$ $\rbrack$ $>$ }}; 
      [.\node[draw]{e$_{2}$ }; ]
      [.{$<$(e$_{2}$  $\rightarrow$ t$_{1}$), \hspace{0.1cm} \\$\lbrack$ e$_{3}$ $\rbrack$ $>$} 
        [.{$<$(e$_{3}$ $\rightarrow$ e$_{2}$  $\rightarrow$ t$_{1}$),\hspace{0.1cm} \\$\lbrack$ $\emptyset$ $\rbrack$ $>$}  {$<$(e$_{3}$ $\rightarrow$ e$_{2}$  $\rightarrow$ t$_{1}$),\hspace{0.1cm} \\$\lbrack$ $\emptyset$ $\rbrack$ $>$} 
        ]
        [.\node[draw]{e$_{3}$ }; 
          [. \node (le) {e$_{3}$}; ] 
        ]
      ]
    ]
  ]
]
\draw[semithick,->] 
  (le)..controls +(south west:5) and +(south:5) .. (ue);
\end{tikzpicture}

\end{document}

在此处输入图片描述

由于我不知道 \hcancel 命令来自哪里,我提供了一个简单的定义

\def\hcancel#1{}

使示例代码可编译。在实际代码中删除该定义。

相关内容