Como realizar aritmética para um nó no TikZ?

Como realizar aritmética para um nó no TikZ?

Tenho uma série de caixas e gostaria de numerá-las rapidamente usando o TikZ. Minha ideia era usar algo assim:

\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}

No entanto, um nó de nó agora parece 0+1+5*2um exemplo. Existe alguma maneira de converter o TikZ 0+1+5*2em 11?

Responder1

Você precisa primeiro calcular o valor \x+1+5*\ye depois usar o resultado como conteúdo do nó:

\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}

insira a descrição da imagem aqui

Para uso da pgfmathbiblioteca (ela é carregada por padrão) veja o capítuloMotores matemáticos e orientados a objetos, pp 1010 na tikzdocumentação (versão 4.1.4a), seção específica94.1 Análise de Expressõesna página 1012.

Responder2

Se bem entendi, você deseja construir uma mesa de caixas quadradas 1 cmde largura e separadas umas das outras por 1 cm.

Você pode usar nodescom um minimum sizede 1cm, com a drawopção que por padrão desenha seu contorno como um rectangle, aqui um quadrado.

\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 tela

informação relacionada