
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*2
im Beispiel aus. Gibt es eine Möglichkeit, TikZ 0+1+5*2
in umzuwandeln 11
?
Antwort1
Sie müssen zuerst den Wert berechnen \x+1+5*\y
und 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}
Zur Verwendung der pgfmath
Bibliothek (sie wird standardmäßig geladen) siehe KapitelMathematische und objektorientierte Engines, S. 1010 in tikz
der 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 cm
die breit und durch voneinander getrennt sind 1 cm
.
nodes
Sie können mit einem minimum size
von verwenden 1cm
, mit der draw
Option, 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}