Foreach - 评估 - 模数问题

Foreach - 评估 - 模数问题

在此 MWE 中,该mod功能不起作用。

\documentclass[margin=5pt,tikz]{standalone}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}

\foreach \i
    [evaluate=\i as \x using mod(\i,13)] in {0,...,12} {%
    \begin{scope}[shift={(1.5*\x,0)},rotate=-\i*15,]
        \filldraw (135:.5)
                arc (135:-135:.5) -- cycle ;
    \end{scope}
}

\end{tikzpicture}
\end{document}

答案1

里面的逗号mod(\i,13)是键值列表的语法字符,第一个选项是evaluate=\i as \x using mod(\i,第二个选项是13。拆分求值表达式的结果就是循环中的键错误\foreach。可以使用花括号来避免拆分:

\documentclass[margin=5pt,tikz]{standalone}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}

\foreach \i
    [evaluate=\i as \x using {mod(\i,13)}] in {0,...,12} {%
    \begin{scope}[shift={(1.5*\x,0)},rotate=-\i*15,]
        \filldraw (135:.5)
                arc (135:-135:.5) -- cycle ;
    \end{scope}
}

\end{tikzpicture}
\end{document}

Result

相关内容