是否可以使用该fit
库来仅适合后半部分内的节点?
梅威瑟:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart, fit}
\begin{document}
\begin{tikzpicture}[thick,
dot/.style={fill=blue,circle,minimum size=3pt}]
\node[dot] (a) at (1,1) {};
\node[dot] (b) at (2,2) {};
\node[dot] (c) at (1,2) {};
\node[draw, rectangle split,
rectangle split parts=2,fit=(a) (b) (c)]
{points: \nodepart{second}};
\end{tikzpicture}
\end{document}
结果
希望
答案1
另一种选择是使用fit
库。第一次拟合仅包含节点 (a)、(b)、(c),不绘制框架。第二次拟合使用绘制,然后包含文本和 (a)、(b)、(c)
代码
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart, fit}
\begin{document}
\begin{tikzpicture}[thick,
dot/.style={fill=blue,circle,minimum size=3pt}]
\node[dot] (a) at (1,1) {};
\node[dot] (b) at (2,2) {};
\node[dot] (c) at (1,2) {};
\node[fit=(a) (b) (c), inner sep=0.2cm] (d) {};
\draw (d.north west) -- (d.north east);
\node[anchor=south, at=(d.north) ] (e) {Points:};
\node[draw, fit=(a) (b) (c) (e), inner sep=0.2cm, rectangle, rounded corners]{};
\end{tikzpicture}
\end{document}
答案2
您可以使用嵌套的tikzpicture
:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}
\begin{document}
\begin{tikzpicture}
\node[draw, rectangle split,
rectangle split parts=2]
{points: \nodepart{second}
\begin{tikzpicture}[thick,
dot/.style={fill=blue,circle,minimum size=3pt}]
\node[dot] (a) at (1,1) {};
\node[dot] (b) at (2,2) {};
\node[dot] (c) at (1,2) {};
\end{tikzpicture}
};
\end{tikzpicture}
\end{document}
在这些情况下,我更喜欢使用嵌套图片,而不是,fit
因为这样可以有效地定义“模块”,因此重新排列/转换块会更容易。使用fit
,要移动整个块,您必须移动内容,而使用嵌套图片,您只需移动外部节点。