绘制一个椭圆形到树形图片-tikz包

绘制一个椭圆形到树形图片-tikz包

我已经使用 tikz 包绘制了一棵树,如下所示

\begin{tikzpicture} 
\tikzstyle{level 1}=[sibling distance=40mm] 
\tikzstyle{level 2}=[sibling distance=20mm] 
\tikzstyle{level 3}=[sibling distance=10mm] 
 \node{S} 
      child{node{N} child{node{mary}} }
      child{node{VP}     
            child{node{V} child{node{brought }}}
            child{node{NP}   child{node{D} child{node{a}}} child{node{N} child{node{cat}}}  }
            child{node{PP}  child{node{IN} child{node{to}}}     child{node{N}  child{node{school}}} }                          }
 ; 
 \end{tikzpicture}

我的照片的结果是这样的

在此处输入图片描述

现在我想在图片中画一个椭圆和一些文字来描述她

在此处输入图片描述

我该怎么做,任何答案都会很感激

答案1

命名节点并使用fit库:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fit,shapes}

\begin{document}

\begin{tikzpicture}[every fit/.style={ellipse,draw,red,inner sep=-2pt},] 
\tikzstyle{level 1}=[sibling distance=40mm] 
\tikzstyle{level 2}=[sibling distance=20mm] 
\tikzstyle{level 3}=[sibling distance=10mm] 
 \node (S) {S} 
      child{node (n) {N} child{node (mary) {mary}} }
      child{node (VP) {VP}     
            child{node{V} child{node{brought }}}
            child{node (np) {NP}   child{node{D} child{node (a) {a}}} child{node{N} child{node (cat) {cat}}}  }
            child{node{PP}  child{node{IN} child{node{to}}}     child{node{N}  child{node{school}}} }                          }
 ; 

\node[fit=(np) (a) (cat)] {};
\node[fit=(n) (mary)] {};
\node[right=1cm,red] at (S) {S $\rightarrow$ N VP};
\node[right=1cm,red] at (VP) {VP $\rightarrow$ V NP PP};

\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容