Tikz:零填充节点标签?

Tikz:零填充节点标签?

我以以下方式定义一个数组:

\begin{tikzpicture}
  \def\n{10}
  \pgfmathparse{int(\n-1)}
  \foreach \x in {0,...,\pgfmathresult} {
    \foreach \y in {0,...,\pgfmathresult} {
      \pgfmathtruncatemacro{\nodelabel}{\x + \y*\n}
      \node at (\x,\y) (\x) {c\nodelabel};
    }
  }
\end{tikzpicture}

我怎样才能用零填充节点标签以便得到c001等等c010

答案1

另一个解决方案是siuntix

\documentclass{article}
\usepackage{siunitx}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  \def\n{10}
  \pgfmathparse{int(\n-1)}
  \foreach \x in {0,...,\pgfmathresult} {
    \foreach \y [evaluate=\y as \ni using {int(\x+\y*\n)}] in {0,...,\pgfmathresult} {
            \node at (\x,\y) {c\num[minimum-integer-digits=3]{\ni}};
    }
  }
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

调整此处给出的 PGF 答案:如何输出带有前导零的计数器?我们可以对您的示例使用相同的方法。\pgfmathtruncatemacro我没有使用,而是使用了\pgfmathsetcounter,然后使用基数转换来填充零。

\documentclass{article}
\usepackage{tikz}
\newcounter{nodelabel}
\begin{document}
\begin{tikzpicture}
  \def\n{10}
  \pgfmathsetbasenumberlength{3}
  \pgfmathparse{int(\n-1)}
  \foreach \x in {0,...,\pgfmathresult} {
    \foreach \y in {0,...,\pgfmathresult} {
      \pgfmathsetcounter{nodelabel}{\x + \y*\n}
      \pgfmathbasetodec\nodelabel{\the\value{nodelabel}}{10}%
            \node at (\x,\y) (\x) {c\nodelabel};
    }
  }
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

更新:

我可能误解了这个问题,因为标签可以像这样自然地写出来:

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \def\n{10}
  \pgfmathparse{int(\n-1)}
  \foreach \x in {0,...,\pgfmathresult} {
    \foreach \y in {0,...,\pgfmathresult} {
      \node at (\x,\y) (\x) {c0\y\x};
    }
  }
\end{tikzpicture}
\end{document}

旧答案:

\opprint您可以使用包中的宏xlop来打印数字,包括无用的零。例如00000.000将写成00000.000

\documentclass{article}
\usepackage{tikz}
\usepackage{xlop}
\begin{document}
\begin{tikzpicture}
  \def\n{10}
  \pgfmathparse{int(\n-1)}
  \foreach \x in {0,...,\pgfmathresult} {
    \foreach \y in {0,...,\pgfmathresult} {
      \node at (\x,\y) (\x) {c\opprint{0\y\x}};
    }
  }
\end{tikzpicture}
\end{document}

大批

相关内容