编辑

编辑

在 或 中tikz-qtreeqtree是否可以标记或编号 (垂直) 树的不同级别?此类标签可以位于整个树的右侧或左侧。

答案1

您可以使用\nodes 来命名一些特殊节点,并允许访问它们在树中的位置,然后使用命名的节点来放置文本。在两侧放置文本的小示例:

\documentclass[border=3pt]{standalone}
\usepackage{tikz-qtree}

\begin{document}

\begin{tikzpicture}
\Tree 
[.\node (level0-right) {S}; 
  [.NP 
    [.Det \node (level3-left) {the}; 
    ] 
    [.N cat 
    ] 
  ]
  [.\node (level1-right) {VP}; 
    [.V sat 
    ]
    [.\node (level2-right) {PP}; 
      [.P on 
      ]
      [.\node (level3-right) {NP}; 
        [.Det the 
        ] 
        [.\node (level4-right) {N}; \node (level5-right) {mat}; 
        ] 
      ]
    ] 
  ] 
]
\foreach \Value/\Text in {0/{Texto 1},1/{Texto 2},2/{Texto 3},3/{Texto 4},4/{Texto 5},5/{Texto 6}}
{  
  \node[anchor=west] 
    at ([xshift=1cm]{level5-right}|-{level\Value-right}) 
    {\Text};
  \node[anchor=east] 
    at ([xshift=-1cm]{level3-left}|-{level\Value-right}) 
    {\Text};
}
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

只是为了好玩,这是Gonzalo Medina 的示例树prooftrees

\documentclass[tikz,border=10pt]{standalone}
\usepackage{prooftrees}% version 0.8
\begin{document}
\begin{prooftree}
  {
    single branches
  }
  [S, just=explan 1
    [NP, just=explan 2
      [Det [the]]
      [N [cat]]
    ]
    [VP
      [V [sat]]
      [PP, just=explan 3
        [P [on]]
        [NP, just=explan 4
          [Det, just=explan 5 [the, just=explan 6]]
          [N [mat]]
        ]
      ]
    ]
  ]
\end{prooftree}
\end{document}

垫子上防猫

请注意,左侧的编号是自动的。(可以关闭,但这是默认设置。)但请记住,该包实际上是专门为逻辑证明而设计的,而不是为其他类型的树而设计的。

编辑

以下是 Beamer 中具有一些覆盖规范的同一棵树:

带树的覆盖规范

tikzpicture这是我对s 和树通常使用的标准定义forest,特别是:

\documentclass{beamer}
\usepackage{prooftrees}% version 0.8
\tikzset{% set up for transitions using tikz with beamer overlays
    invisible/.style={opacity=0,text opacity=0},
    visible on/.style={alt=#1{}{invisible}},
    alt/.code args={<#1>#2#3}{%
      \alt<#1>{\pgfkeysalso{#2}}{\pgfkeysalso{#3}} % \pgfkeysalso doesn't change the path
    },
    transparent/.style={opacity=0.1,text opacity=0.1},
    opaque on/.style={alt=#1{}{transparent}},
    alerted/.style={color=red},
    alert on/.style={alt=#1{alerted}{}},
}
\forestset{%
  visible on/.style={%
        for tree={%
          /tikz/visible on={#1},
          edge={/tikz/visible on={#1}}}},
  opaque on/.style={%
        for tree={%
          /tikz/opaque on={#1},
          edge={/tikz/opaque on={#1}}}},
  alerted on/.style={%
        for tree={%
          /tikz/alerted on={#1},
          edge={/tikz/alerted on={#1}}}},
}%
\begin{document}
\begin{frame}{A Tree}
\begin{prooftree}
  {
    single branches,
  }
  [S, just=explan 1
    [NP, just=explan 2, alert on=<4->, for children={opaque on=<5->}
      [Det [the]]
      [N [cat]]
    ]
    [VP
      [V [sat]]
      [PP, just=explan 3
        [P [on]]
        [NP, just=explan 4, alert on=<2>
          [Det, just=explan 5, opaque on=<3-> [the, just=explan 6]]
          [N [mat]]
        ]
      ]
    ]
  ]
\end{prooftree}
\end{frame}
\end{document}

相关内容