堆叠多个 TikZ 树标签?

堆叠多个 TikZ 树标签?

我有一个与森林树中 TikZ 圆圈的标记相关的问题。是否可以在圆圈下方堆叠多个标签,以便它们像这样一个接一个地显示?

某物 1
某物 2
某物 3

这是我正在使用的代码:

\documentclass{beamer}
\usepackage{forest}
\forestset{default preamble={for tree={s sep=7mm, inner sep=-1, l=0}}, fairly nice empty nodes/.style={delay={where content={}{shape=coordinate,for siblings={anchor=north}}{}},for tree={s sep=4mm}},}
\useforestlibrary{linguistics}
\forestapplylibrarydefaults{linguistics}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\usetikzlibrary{arrows,decorations.pathreplacing}

\begin{document}


\begin{forest}
           [[\textsc{AP},tikz={\node [draw,circle,inner sep=-1pt,fit to=tree,label=below:\emph{something 1}] {};}[\textsc{CP}[...,roof]] [\textsc{DP}[...,roof]]][\textsc{EP}[...,roof]]]
        \end{forest}

\end{document}

我已经尝试过了:

  • 双破折号:label=below: \emph{something 1 \\ something 2}
  • 将其放在 forest: 之后\emph{something 1} \ \ \hspace{1cm} \emph{something 2},但文本没有整齐对齐
  • 添加多个标签:label=below: \emph{something 1}, label=below: \emph{something 2},但它们只是彼此相邻添加

目前,我已经通过将文本框放置在正确的位置来暂时解决了这个问题,但我发现需要对坐标进行大量的调整,因此更快的解决方案会更好。

答案1

适应

  • (为了便于阅读,我添加了一些换行符)
  • 给第一个节点命名(a)
  • 在下面放置第二个节点(使用\usetikzlibrary{positioning}),并使用选项align=center,以允许换行

label或者使用一个节点中的选项获得相同的结果:

\node [
    draw,circle,inner sep=-1pt,fit to=tree,
    label={[align=center]below:{\emph{something 1}\\something 2\\something 3}}
] (a) {};

代码

\documentclass[margin=3mm]{standalone}
\usepackage{forest}
\forestset{
    default preamble={for tree={s sep=7mm, inner sep=-1, l=0}},
    fairly nice empty nodes/.style={delay={where content={}{shape=coordinate,for siblings={anchor=north}}{}},for tree={s sep=4mm}},
}
\useforestlibrary{linguistics}
\forestapplylibrarydefaults{linguistics}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{tikz-qtree-compat}
\usetikzlibrary{arrows,decorations.pathreplacing}
\usetikzlibrary{positioning}

\begin{document}
\begin{forest}
   [
       [
            \textsc{AP},
            tikz={
                \node [draw,circle,inner sep=-1pt,fit to=tree] (a) {};
                \node [below=0mm of a, align=center] {\emph{something 1}\\something 2\\something 3};
            }
            [\textsc{CP}[...,roof]]
            [\textsc{DP}[...,roof]]
       ][
        \textsc{EP}[...,roof]
       ]
   ]
\end{forest}
\end{document}

结果

在此处输入图片描述

相关内容