带居中数字的网格

带居中数字的网格

我正在尝试在 Tikz 中绘制一个网格,每个方格中都有居中的数字,从 1901 年到 2000 年。但是,我不知道如何正确地让数字出现在方格中。这是我写的:

\documentclass[tikz]{standalone}

\begin{document}
    \begin{tikzpicture}
        \draw[very thin, black!30] (0,0) grid (10,10);

        \foreach \y in {9,...,0}
            \foreach \x[evaluate=\x as \z using int( 1900+\x+(10*\y) )] in {1,...,10}
                \node at (\x-0.5,\y+0.5) {\z};

    \end{tikzpicture}

\end{document}

生成以下内容。evaluate上面的代码不起作用。你能帮助我吗? 在此处输入图片描述

答案1

您可以\pgfmathsetmacro\foreach循环内使用:

\documentclass[tikz]{standalone}

\begin{document}
    \begin{tikzpicture}
        \draw[very thin, black!30] (0,0) grid (10,10);

        \foreach \y in {9,...,0}
            \foreach \x in {1,...,10}
                \pgfmathsetmacro\z{int(1900+\x+(10*\y))}
                \node at (\x-0.5,\y+0.5) {\z};

    \end{tikzpicture}

\end{document}

相关内容