将节点放置在子图的边界框下

将节点放置在子图的边界框下

我想绘制一个由两个子图组成的图形。

如何使用边界框放置标签(例如(a)和(b))?

这是我目前的代码,但我没有取得任何进展。

\documentclass[tikz]{standalone}
\begin{document}
    \centering
    \begin{tikzpicture}
        \begin{scope}
            \draw(0,0) -- (0,2) -- (2,2)-- (2,0)-- cycle;
            \node [anchor=north] at (current bounding box.south) {(a)};
        \end{scope}     
        \begin{scope}[xshift = 3cm]
            \draw(0,0) -- (0,2) -- (2,2)-- (2,0)-- cycle;
            \node [anchor=north] at (current bounding box.south) {(b)};
        \end{scope}     
    \end{tikzpicture}
\end{document}

我的结果: 在此处输入图片描述

我希望“(b)”位于右侧子图的中心。

欢迎任何帮助。谢谢。

答案1

我找到了!

对于每个范围,我必须定义一个局部边界框并使用这个特定框的锚点。

\documentclass[tikz]{standalone}
\begin{document}
    \centering
    \begin{tikzpicture}
        \begin{scope}[draw, local bounding box=bounding box 0]
            \draw(0,0) -- (0,2) -- (2,2)-- (2,0)-- cycle;
            \node [anchor=north] at (bounding box 0.south) {(a)};
        \end{scope}     
        \begin{scope}[draw, local bounding box=bounding box 1, xshift = 3cm]
            \draw(0,0) -- (0,2) -- (2,2)-- (2,0)-- cycle;
            \node [anchor=north] at (bounding box 1.south) {(b)};
        \end{scope}     
    \end{tikzpicture}
\end{document}

结果: 在此处输入图片描述

解决了!

答案2

我可以使用以下简单代码重现所需结果:

\documentclass[tikz, margin=3mm]{standalone}

\begin{document}
\begin{tikzpicture}[
N/.style = {draw, minimum size=20mm}
                    ]
\node (a)   [N, label=below:{(a)}] {};
\node (b)   [N, label=below:{(b)},
             right=20mm] {};
    \end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容