表格中的 tikzpictures 如何独立于节点居中?

表格中的 tikzpictures 如何独立于节点居中?

tikzpicture我在 a 中有以下内容tabular,我想让圆居中,以便它们在列和行中排列,即使节点位于不同位置。如何做到这一点?

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tabular}{cc}
    \begin{tikzpicture}[scale=1]
        \draw (0, 0) circle (1cm);
        \draw (90:1.3) node {$A$};
    \end{tikzpicture}
    &
    \begin{tikzpicture}[scale=1]
        \draw (0, 0) circle (1cm);
        \draw (-90:1.3) node {$B$};
    \end{tikzpicture}
    \\
    \begin{tikzpicture}[scale=1]
        \draw (0, 0) circle (1cm);
        \draw (0:1.3) node {$C$};
    \end{tikzpicture}
    &
    \begin{tikzpicture}[scale=1]
        \draw (0, 0) circle (1cm);
        \draw (180:1.3) node {$D$};
    \end{tikzpicture}
\end{tabular}
\end{document}

节点使中心tikzpicture远离圆心。可以手动将中心设置为圆心吗?或者是否有任何选项可以tikzpicture忽略节点?

答案1

如果将选项添加overlay到第二条路径(顺便问一下,为什么不使用\node at (90:1.3) {$A$}:?),则在边界框的计算中会忽略该路径(和节点),但这会使它们在的邻居单元中突出tabular

以下解决方案重置图片末尾的边界框,并将其替换为其自己的边界框,即围绕一个点的矩形(实际上是正方形),语法如下

center around={<distance>:(<point>)}

由于节点的高度和宽度不同,因此需要<distance>手动指定。否则,需要计算所有四个中最大的 TikZ 图片,这将需要第二次传递,并且需要文件.aux

代码

\documentclass{article}
\usepackage{tikz}
\tikzset{%
  center around/.style args={#1:(#2)}{%
    execute at end picture={%
      \pgfresetboundingbox
      \path[use as bounding box, reset cm] (#2) circle [radius={#1}];
    }
  }
}
\begin{document}
{\tikzset{every picture/.append style={center around={1.5cm:(0,0)}}}
\begin{tabular}{cc}
    \begin{tikzpicture}[scale=1]
        \draw (0, 0) circle (1cm);
        \draw (90:1.3) node {$A$};
    \end{tikzpicture}
    &
    \begin{tikzpicture}[scale=1]
        \draw (0, 0) circle (1cm);
        \draw (-90:1.3) node {$B$};
    \end{tikzpicture}
    \\
    \begin{tikzpicture}[scale=1]
        \draw (0, 0) circle (1cm);
        \draw (0:1.3) node {$C$};
    \end{tikzpicture}
    &
    \begin{tikzpicture}[scale=1]
        \draw (0, 0) circle (1cm);
        \draw (180:1.3) node {$D$};
    \end{tikzpicture}
\end{tabular}}
\end{document}

输出(边界框路径用 绘制help lines

在此处输入图片描述

相关内容