minimaler gehts nicht, da ich keine ahnung habe, was hier fragil ist und was robust.
\usetikzlibrary{shapes.multipart} \begin{tikzpicture} \newcommand{\ntimes}[2]{ \newcounter{i} \setcounter{i}{0} \whiledo{\value{i}<#1}{\stepcounter{i}#2} } \newcommand{\toword}[1]{ \ifcase#1 \relax \or one \or two \or three \or four \or five \or six \or seven \or eight \or nine \else \relax \fi } \pgfmathtruncatemacro{\maxcount}{3*2+1} \node (test) [ rectangle split, rectangle split horizontal, rectangle split parts=\protect\maxcount, rectangle split part fill={orange\ntimes{3}{,white,orange}}, draw ] at (0,0) { \foreach \x in {1,...,3} \pgftruncatemacro{\twox}{2*\x} \nodepart{\toword{\twox}} \toword{\x} }; \end{tikzpicture}
ziel: ich möchte einen multipart-node erstellen, bei dem jeder ungerade part orange und schmal ist, jeder gerade weiß und mit kₐ beschriftet, wobei a eine fortlaufende nummer ist. sinn ist es, einen b-baum darzustellen, die orangen nodes sind pointer, die weißen werte.
im beispielcode hab ich, anstatt ein neues kommando zu erstellen, konstanten eingesetzt (variablen werden im fertigen code alle vorkommen von „3“ sein, die koordinate des knoten (0,0) und sein name (test))
problem: latex macht mir einen strich durch die rechnung und motzt mit
Argument of \pgffor@next has an extra }