我正在尝试将一个节点(或者说一个链)放在分割矩形形状的节点部分之一内。到目前为止,我还没能让它工作。本质上,我试图在内存中表示一个简单的数据结构。似乎没有现成的库支持这些,所以大多数时候,只要有意义,我都会使用分割矩形形状。
\begin{tikzpicture}
\node (mysplitrectangle) [rectangle split, rectangle split parts=5,
draw, text width=3.75cm,
rounded corners]
{ %
\textbf{Nice split rectangle}
\nodepart{two}
\texttt{XYZ}
\nodepart{three}
XXX
\nodepart{four}
XXX
\nodepart{five}
\begin{tikzpicture}
\node (pewp) [draw] {foo};
\end{tikzpicture}
};
\end{tikzpicture}
答案1
我不太确定您想要使用哪种图表或链,但一个可能的选择是使用一个盒子来存储链,然后在多部分矩形内使用这个盒子:
\documentclass{article}
\usepackage{pdfpages}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart,chains}
\begin{document}
\newbox\boxa
\savebox\boxa{%
\begin{tikzpicture}[start chain=1 going right,
start chain=2 going below,
node distance=5mm,
every node/.style={draw,fill=blue!30}]
\node [on chain=1] {A};
\node [on chain=1] {B};
\node [on chain=1] {C};
\node [on chain=2] at (0.5,-.5) {0};
\node [on chain=2] {1};
\node [on chain=2] {2};
\node [on chain=1] {D};
\node [on chain=1] {E};
\node [on chain=1] {F};
\node [on chain=1] {G};
\end{tikzpicture}%
}
\begin{tikzpicture}
\node (mysplitrectangle) [rectangle split, rectangle split parts=5,
draw,rectangle split part align=left,
rounded corners]
{ %
\textbf{Nice split rectangle}
\nodepart{two}
\texttt{XYZ}
\nodepart{three}
XXX
\nodepart{four}
XXX
\nodepart{five}
\usebox\boxa
};
\node[xshift=5pt,anchor=west] at (mysplitrectangle.text east) {label1};
\node[xshift=5pt,anchor=west] at (mysplitrectangle.two east) {label2};
\node[xshift=5pt,anchor=west] at (mysplitrectangle.three east) {label3};
\node[xshift=5pt,anchor=west] at (mysplitrectangle.four east) {label4};
\node[xshift=5pt,anchor=west] at (mysplitrectangle.five east) {label5};
\end{tikzpicture}
\end{document}
要添加标签,您可以使用多部分矩形的锚点(请参阅 pgf 手册第 453 页)。注释中提到的另一个问题(内容溢出到右侧)是由您用 声明的固定宽度引起的;可以通过增加 的值或不指定固定值(如我在修改的示例中所做的那样)text width=3,75
来解决。text width