im试图重叠多个节点以可视化子集的三个级别,并为每个子集包含一些文本。有没有一种方法可以强制配合命令增加填充?还是手动调整每个框的尺寸更有效?感谢您的支持。
\documentclass[a4paper, 12pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning, fit, calc}
\begin{document}
\begin{tikzpicture}
[every node/.style={align=center, inner xsep=6mm, inner ysep=3mm, rounded corners}, very thick]
\node (inner1) [draw] {text text text text text text text text};
\node (outer) [fit=(inner1)] {};
\coordinate (o) at ($(inner1.north)!1!(inner1.south)$);
\draw [blue, rounded corners] (outer.north west) rectangle (outer.east |- o) node [above=5mm of inner1, anchor=center] {text text text text text text text text};
\node (doubleouter) [fit=(outer)(inner1)] {};
\draw [red, rounded corners] (doubleouter.north west) rectangle (doubleouter.north east |- o) node [above=15mm of inner1, anchor=center] {text text text text text text text text};
\end{tikzpicture}
\end{document}
由于您希望实现不对称的节点间分隔(下部为0,上部为xmm),因此无法直接实现。您需要计算节点坐标或使用多个节点。
这里是具有多个节点的解决方案。
Box节点对应于Box。它们具有一个0pt的内部ysep,以使它们可以简单地包含在内而无需增加额外的垂直间距。它们虽然内部有隔片,但尺寸不断增大。
文本节点内部有y分隔,以正确显示文本。
由于要使用配件库,因此您必须先绘制文本,然后绘制框,将文本和上一个框括起来。
\documentclass[a4paper, 12pt]{article}
\usepackage{tikz}
\usetikzlibrary{positioning, fit, calc}
\begin{document}
\begin{tikzpicture}
[
box/.style={inner xsep=6mm, inner ysep=0, draw=#1, rounded corners, very thick},
txt/.style={align=center, inner xsep=0mm, inner ysep=3mm},
]
\node[txt] (inner1 txt) {text text text text text text text text};
\node[box=black,fit=(inner1 txt)] (inner1) (inner1 box) {} ;
\node[txt, above=0 of inner1 box] (inner2 txt) {\ldots} ;
\node[box=blue,fit={(inner1 box) (inner2 txt)}] (inner2 box) {} ;
\node[txt, above=0 of inner2 box] (inner3 txt) {text text text text text text text text} ;
\node[box=red,fit={(inner2 box) (inner3 txt)}] (inner3 box) {} ;
\end{tikzpicture}
\end{document}