我有一个与森林树中 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}