PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Übergabe von "Array" für Schleife an Funktion per Variable in TIKZ



MC3330
18-02-2020, 16:59
Hallo,

ich habe verschiedene Methoden geschrieben, an die ich per pgf-Key den Bereich für eine Schleife übergeben kann. Das klappt soweit auch. Ich würde es jetzt gerne hinbekommen, dass ich die Angabe nicht direkt in die Optionen der Methoden sondern in eine Variable schreiben kann. Daran scheite ich jetzt leider. Unten ist ein Minimalbeispiel. Die beiden ersten Ausführungen der Methoden machen genau das, was ich haben will. Ich würde es gerne so ausführen, wie beim dritten Variante, da klappt es aber leider nicht.

Hat da jemand eine Idee?

Viele Grüße und Vielen Dank im Voraus

MB


\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{math}

\newcommand\bauplan[1][]{
\pgfkeys{
/bauplan/hilfe/.initial={0,0,0},
}%\
\pgfkeys{/bauplan/.cd,#1}
\pgfkeysgetvalue{/bauplan/hilfe}{\hilfe}
\draw[step=1 cm,color=gray] (0,0) grid (3 cm,-1 cm);
\foreach \hoehe [count=\i from 0] in \hilfe{
\node at (\i+0.5,-0.5){\hoehe};
}%\
}%\

\begin{document}
\begin{tikzpicture}
%ohne Angabe der Hilfeoption
\bauplan

%mit direkter Angabe der Hilfeoption
\begin{scope}[yshift=-2 cm]
\bauplan[hilfe={1,2,3}]
\end{scope}

%mit Angabe der Hilfeoption per Variable
\begin{scope}[yshift=-4cm]
\def\test{3,2,1}
\bauplan[hilfe=\test]
\end{scope}
\end{tikzpicture}
\end{document}

rais
18-02-2020, 20:45
versuch es mal so:


\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{math}

\newcommand\bauplan[1][]{
\pgfkeys{
/bauplan/hilfe/.initial={0,0,0},
}%\
\pgfkeys{/bauplan/.cd,#1}
\pgfkeysgetvalue{/bauplan/hilfe}{\hilfe}
\edef\hilfei{\hilfe}%
\draw[step=1 cm,color=gray] (0,0) grid (3 cm,-1 cm);
\foreach \hoehe [count=\i from 0] in \hilfei{
\node at (\i+0.5,-0.5){\hoehe};
}%\
}%\

\begin{document}
\begin{tikzpicture}
%ohne Angabe der Hilfeoption
\bauplan

%mit direkter Angabe der Hilfeoption
\begin{scope}[yshift=-2 cm]
\bauplan[hilfe={1,2,3}]
\end{scope}

%mit Angabe der Hilfeoption per Variable
\begin{scope}[yshift=-4cm]
\def\test{3,2,1}
\bauplan[hilfe=\test]
\end{scope}
\end{tikzpicture}
\end{document}

VG

MC3330
18-02-2020, 21:55
Vielen Dank.