¿Cómo realizar aritmética para un nodo en TikZ?

¿Cómo realizar aritmética para un nodo en TikZ?

Tengo una serie de cuadros y me gustaría numerarlos rápidamente usando TikZ. Mi idea era usar algo como esto:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}[font=\tiny]
  \foreach \x in {0,...,4}
    \foreach \y in {0,...,4}
      \draw (\x*2-.5,\y*2-.5) rectangle (\x*2+.5,\y*2+.5) node[midway] {\x+1+5*\y};
\end{tikzpicture}

\end{document}

Sin embargo, ahora se muestra un nodo 0+1+5*2como ejemplo. ¿Hay alguna manera de convertir TikZ 0+1+5*2en 11?

Respuesta1

Primero debe calcular el valor del \x+1+5*\yy luego usar el resultado como contenido del nodo:

\documentclass[tikz, margin=3mm]{standalone}

\begin{document}
    \begin{tikzpicture}
\foreach \x in {0,...,4}
    \foreach \y in {0,...,4}
    \pgfmathtruncatemacro{\xy}{\x+1+5*\y} % macro which calculate value of \x+1+5*\y
        \draw (\x*8-1,\y*8+1) rectangle (\x*8+1,\y*8-1) node[midway] {\xy};
    \end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Para el uso de la pgfmathbiblioteca (está cargada por defecto) ver capítuloMotores matemáticos y orientados a objetos, pág. 1010 en tikzla documentación (versión para 4.1.4a), sección particular94.1 Análisis de expresionesen la página 1012.

Respuesta2

Si entendí correctamente, desea construir una tabla de cajas cuadradas 1 cmde ancho y separadas entre sí por 1 cm.

Puedes usar nodescon a minimum sizeof 1cm, con la drawopción que por defecto dibuja su contorno como a rectangle, aquí un cuadrado.

\documentclass[tikz,border=5mm]{standalone}

\begin{document}

\begin{tikzpicture}[font=\tiny]
  \foreach \x in {0,...,4}{
    \foreach \y [evaluate =\y as \xy using int(\x+1+5*\y)]in {0,...,4}
      \node[draw,minimum size=1cm] at (2*\x,2*\y) {\xy};
      }

\end{tikzpicture}
\end{document}

captura de pantalla

información relacionada