Error al intentar calcular el módulo 3 dentro de un bucle foreach en TikZ

Error al intentar calcular el módulo 3 dentro de un bucle foreach en TikZ

Mi objetivo es dibujar una serie de formas de la siguiente manera: cuadrado, cuadrado, triángulo, cuadrado, cuadrado, triángulo...

Utilizo un \foreachbucle en el que utilizo aritmética modular para determinar cuándo dibujar un triángulo. Aquí está mi MWE:

\documentclass{article}
\usepackage{pgfplots,tikz,tikz-3dplot}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture} [scale=0.35,
triangle/.style = {regular polygon, regular polygon sides=3, scale=2.5},
square/.style = {regular polygon, regular polygon sides=4, scale=2}]
\foreach \i in {1,...,9}
{
    \ifthenelse{mod(\i,3) = 0}
    {
        \node[triangle] (\i) at (\i,0) {};
    }
    {
        \node[square] (\i) at (\i,0) {};
    }
}
\end{tikzpicture}
\end{figure}
\end{document}

Recibo los errores:

! Missing number, treated as zero.
! Missing = inserted for \ifnum.

La pregunta más relacionada con estos errores esestepero considera números decimales, que no es mi caso. ¿Qué me estoy perdiendo?

Respuesta1

Si observa el archivo de registro, verá el error completo, donde podrá ver la queja m, así que supongo mque no es un número. Aquí mestá el men mod.

El punto es que \ifthenelseno conoce pgflas funciones matemáticas y modno se analiza en esa ubicación. Puedes hacer el cálculo con \foreach [evaluate={\j=int(mod(\i,3));}]y hacer la comparación con \j.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture} [scale=0.35,
triangle/.style = {draw, regular polygon, regular polygon sides=3, scale=2.5},
square/.style = {draw, regular polygon, regular polygon sides=4, scale=2}]
\foreach [evaluate={\j=int(mod(\i,3));}] \i in {1,...,9}
{
    \ifthenelse{\j = 0}
    {
        \node[triangle] (\i) at (\i,0) {};
    }
    {
        \node[square] (\i) at (\i,0) {};
    }
}
\end{tikzpicture}
\end{figure}
\end{document}

información relacionada