使用 tikzmath 编译时出错

使用 tikzmath 编译时出错

我正在尝试学习如何使用 Tikz 及其库 Tikzmath 制作图形。我正尝试通过沿一条线绘制一系列圆圈来进行练习。

我的代码如下:

\documentclass[tikz]{standalone}
\usetikzlibrary{math}

\tikzmath
{
    function num(\n)
    {
         int \i;
         \i=0;
         for \i in {\i,1,...,\n}
         {
            \draw[red] circle[radius=0.5] (\i, 0);
         };
    };
}

\begin{document}
    \begin{tikzpicture}
        \draw[help lines,step=2mm] (-1,-1) grid (4,1);
        \tikzmath{num(2);}
    \end{tikzpicture}
\end{document}

但是我不断收到一条错误消息,指出:

.Math.tex.swp:20: \tikz@@math 的参数有一个额外的 }。\par l.20 \tikzmath{num(2);}

我找不到代码中可能导致此错误的多余括号。我已经尝试了 40 分钟!

答案1

我现在无法使用电脑,所以我的回答会很简短,而且未经验证。我发现三个错误:

  1. 在循环中,在当前版本的 tikzmath 中,和for之间不能有空格。}{
  2. 您的绘图命令必须包含在{ };
  3. 绘图命令中的坐标必须在圆圈之前。

您可以检查以下代码:

\documentclass[tikz]{standalone}
\usetikzlibrary{math}

\tikzmath
{
    function num(\n)
    {
         for \i in {0,...,\n}{
            {\draw[red] (\i, 0) circle[radius=0.5];};
         };
    };
}

\begin{document}
    \begin{tikzpicture}
        \draw[help lines,step=2mm] (-1,-1) grid (4,1);
        \tikzmath{num(2);}
    \end{tikzpicture}
\end{document}

相关内容