TikZ 节点不完全居中

TikZ 节点不完全居中

在我的解决方案中用点绘制图,有人指出包含\textbullet和的节点$\circ$没有精确地放置在指定点的中心。我觉得这很难相信,但事实确实如此。

这是放大到 2400% 的图像,显​​示了这一点。左侧图片为:

\node [red] at (0,0) {\textbullet};
\draw [brown]  (0,0) circle (3pt);

正确的是:

\node [blue] at (1,0) {$\circ$};
\draw [brown]   (1,0) circle (3pt);

显然,两者都没有以给定点为中心。

在此处输入图片描述

问题:

  1. 我认为节点默认位于中心,那么在这种情况下有什么不同?
  2. 您如何确保它们的中心位于指定点?

代码:

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\draw [very thin, gray] (-1,-1) grid (2,1);

\node [red] at (0,0) {\textbullet};
\draw [brown]  (0,0) circle (3pt);

\node [blue] at (1,0) {$\circ$};
\draw [brown]   (1,0) circle (3pt);
\end{tikzpicture}
\end{document}

答案1

字符的边界框始终包含基线点:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\foreach \txt[count=\c] in {\textbullet,$\circ$,',x}{
  \node [inner sep=0pt,draw=red,line width=.1pt,text=violet](a) at (.25*\c,0) {\txt};
  \draw [brown]  (.25*\c,0) circle (3pt);
  \fill (.25*\c,0) circle[radius=.1pt];
  \fill (a.base) circle[radius=.1pt];
}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

问题 1:我的最后一个例子表明节点正确居中,在您的例子中,如果您使用选项draw,您可以看到节点也正确居中。使用的锚点是 (center),但如果您将文本放在节点内,则文本的位置取决于基线。

问题 2:将图形精确地放置在节点的中心很容易,但字符不对称,基线取决于字符。这里的问题是确定您的字符是否对称以及基线在哪里。

如果您查看最后一个圆圈,则未正确居中。在四个圆圈中,尝试垂直居中正确但水平居中$\circ$的框。p$\circ$b

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\draw [very thin, gray] (-1,-1) grid (5,1);

\node [blue,draw,circle,minimum  size=10pt,anchor=center] at (0,0) {$\circ$};
\draw [brown]  (0,0) circle (3pt);

\node [blue,draw,circle,minimum  size=10pt,anchor=center] at (1,0) {p$\circ$ };
\draw [brown]   (1,0) circle (3pt); 

\node [blue,draw,circle,minimum  size=10pt,anchor=center] at (2,0) {$\circ$b };
\draw [brown]   (2,0) circle (3pt); 

\node [blue,draw,circle,minimum  size=10pt,anchor=center] at (3,0) {p$\circ$b };
\draw [brown]   (3,0) circle (3pt); 

\node [blue,draw,circle,minimum  size=10pt,anchor=text] at (4,0) {p$\circ$b };
\draw [brown]   (4,0) circle (3pt);      
\end{tikzpicture}  

\end{document} 

在此处输入图片描述

我建了一个盒子(这里是一个正确居中的正方形)。更容易看出正方形是否正确居中。最后一张图片也是如此,但不是$\circ$。当您使用角色时,该角色位于具有基线的盒子中,并且角色在节点内的位置取决于基线。

\documentclass{article}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\draw [very thin, gray] (-1,-1) grid (5,1);
\def\tvi{\vrule height 4pt depth 4pt width 8pt}  

\node [blue,draw,circle,minimum  size=10pt,anchor=center] at (0,0) {\tvi};
\draw [red]  (0,0) circle (3pt);    

\def\tvi{\vrule height 4pt depth 4pt width 1pt}   
\node [blue,draw,circle,minimum  size=10pt,anchor=center] at (1,0) {\tvi$\circ$\tvi};
\draw [red]  (1,0) circle (3pt);   

\end{tikzpicture}  

\end{document}   

在此处输入图片描述

答案3

\circ 的基线

​​​​​​​​​​

相关内容