将节点标签放置在森林树中的外部节点下方

将节点标签放置在森林树中的外部节点下方

我是 LaTeX 新手,需要制作一个 beamer 演示文稿,其中我想展示一棵树,如下图所示。由于时间有限,我使用了 forest,因为这对我来说似乎是最简单、最快捷的方法。

现在我希望数字位于外部节点下方。最佳解决方案是节点本身下方和外部的数字较小,但目前我希望节点内部的数字较小,并且实际节点条目与新行中自制“标签”之间的距离较小。

我已经尝试了node 中的label选项pin,但它并不像我想要的那样。有人能帮我吗?这就像我试图让它看起来像:节点下方带有标签的树

这是我已经取得的成果:

\documentclass[aspectratio=169,xcolor=dvipsnames]{beamer}
\usepackage[edges]{forest}
\begin{document}

    \begin{forest}
                for tree={circle, draw, 
                 minimum size=1.5em,
                    inner sep=1pt, 
                   align=center, top color=white},
                for leaves={rectangle}     
            [, top color=gray, bottom color=gray, minimum size=4mm
             [E
               [ILIG, pin={\tiny 3}]
               [U
                 [CH,label=1]
                 [LE\\ \scriptsize 5]]]
             [FLOG \\ \scriptsize 2]
             [GEL
                 [BE\\ \scriptsize 7]
                 [D\\ \scriptsize 8]]
             [MIT\\ \scriptsize 4]
             [ZU\\ \scriptsize 6]]
    \end{forest}
    
\end{document}

外观

使用建议的解决方案后,我在环境中收到以下错误frame:!定义中的参数编号非法\[电子邮件保护]\end{frame} 通过[fragile]在框架后添加来修复错误,因此这是有效的代码:

\documentclass[aspectratio=169,xcolor=dvipsnames]{beamer}
\usepackage[edges]{forest}

\begin{document}
\begin{frame}[fragile]

\begin{forest}
  for tree={circle, draw, 
    minimum size=1.5em,
    inner sep=1pt, 
    align=center, top color=white
  },
  for leaves={rectangle},
  my label/.style={label={[font=\scriptsize]south:#1}},
  [, top color=gray, bottom color=gray, minimum size=4mm
    [E
      [ILIG, my label=3]
      [U
        [CH, my label=1]
        [LE, my label=5]]]
    [FLOG, my label=2]
    [GEL
      [BE, my label=7]
      [D, my label=8]]
    [MIT, my label=4]
    [ZU, my label=6]]
\end{forest}
\end{frame}
\end{document}

答案1

label是正确的做法,但是为了达到预期的效果,需要将标签放置在主要节点的南面:label={south:label text}。更改标签字体大小的最佳方法是使用标签选项:label={[font=\scriptsize]south:label text}。有关键的更多信息,label请参阅 PGF/TikZ 手册第 17.10 节。

下面my label定义了样式,设置标签的位置和字体大小,以方便在树中使用。

\documentclass[aspectratio=169,xcolor=dvipsnames]{beamer}
\usepackage[edges]{forest}
\begin{document}

\begin{forest}
  for tree={circle, draw, 
    minimum size=1.5em,
    inner sep=1pt, 
    align=center, top color=white
  },
  for leaves={rectangle},
  my label/.style={label={[font=\scriptsize]south:#1}},
  [, top color=gray, bottom color=gray, minimum size=4mm
    [E
      [ILIG, my label=3]
      [U
        [CH, my label=1]
        [LE, my label=5]]]
    [FLOG, my label=2]
    [GEL
      [BE, my label=7]
      [D, my label=8]]
    [MIT, my label=4]
    [ZU, my label=6]]
\end{forest}

相关内容