如何在添加节点标签时防止对象移动

如何在添加节点标签时防止对象移动

我正在尝试使用生成圆圈的宏来制作各种月相的垂直列,但是当我将节点标签添加到圆圈(以表示它是满月)时,它会将包含标签的圆圈稍微向右移动。

\documentclass[leqno,12pt]{article}
\usepackage{tikz}
\usetikzlibrary{calendar,fpu}

\newcommand{\moon}[2][]{%
    \def\lunarage{#2}%
    \pgfmathsetmacro\textF{ifthenelse(\lunarage==15,"F","")}
    \tikz []{
        \draw (0,0) circle [radius=1ex];
        \node[color=black] (0,0) {\textF};
        %
    }%
}
\begin{document}\noindent%
    \foreach \d in {0,1,...,30}{%
    \moon[]{\d}  \\   }
\end{document}

谢谢你的帮助!

答案1

问题在于节点的大小。这些节点比标签更宽(也更高),从而使 tikzpicture 略宽,从而导致偏移(您的 tikz 环境左对齐)。如果将inner sep和设置outer sep为零,则会得到所需的结果:

\documentclass[leqno,12pt]{article}
\usepackage{tikz}
\usetikzlibrary{calendar,fpu}

\newcommand{\moon}[2][]{%
    \def\lunarage{#2}%
    \pgfmathsetmacro\textF{ifthenelse(\lunarage==15,"F","")}
    \tikz []{
        \draw (0,0) circle [radius=1ex];
        \node[color=black, inner sep=0pt, outer sep=0pt] (0,0) {\textF};
        %
    }%
}
\begin{document}\noindent%
    \foreach \d in {0,1,...,30}{%
    \moon[]{\d}  \\   }
\end{document}

请参阅 pgfmanual 版本 3.0.0 第 220 页。

相关内容