梅威瑟:

梅威瑟:

是否可以使用该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,要移动整个块,您必须移动内容,而使用嵌套图片,您只需移动外部节点。

相关内容