Wie führe ich eine Arithmetikoperation für einen Knoten in TikZ durch?

Wie führe ich eine Arithmetikoperation für einen Knoten in TikZ durch?

Ich habe eine Reihe von Boxen und möchte diese schnell mit TikZ nummerieren. Meine Idee war, so etwas zu verwenden:

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

Ein Knoten node sieht jetzt jedoch wie 0+1+5*2im Beispiel aus. Gibt es eine Möglichkeit, TikZ 0+1+5*2in umzuwandeln 11?

Antwort1

Sie müssen zuerst den Wert berechnen \x+1+5*\yund dann das Ergebnis als Inhalt des Knotens verwenden:

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

Bildbeschreibung hier eingeben

Zur Verwendung der pgfmathBibliothek (sie wird standardmäßig geladen) siehe KapitelMathematische und objektorientierte Engines, S. 1010 in tikzder Dokumentation (Version für 4.1.4a), spezieller Abschnitt94.1 Ausdrücke analysierenauf Seite 1012.

Antwort2

Wenn ich das richtig verstanden habe, möchten Sie eine Tabelle aus quadratischen Feldern erstellen, 1 cmdie breit und durch voneinander getrennt sind 1 cm.

nodesSie können mit einem minimum sizevon verwenden 1cm, mit der drawOption, die den Umriss standardmäßig als zeichnet rectangle, in diesem Fall ein Quadrat.

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

Bildschirmfoto

verwandte Informationen