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}