在我的解决方案中用点绘制图,有人指出包含\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);
显然,两者都没有以给定点为中心。
问题:
- 我认为节点默认位于中心,那么在这种情况下有什么不同?
- 您如何确保它们的中心位于指定点?
代码:
\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