diff options
Diffstat (limited to 'Master/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructure.code.tex')
-rw-r--r-- | Master/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructure.code.tex | 56 |
1 files changed, 49 insertions, 7 deletions
diff --git a/Master/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructure.code.tex b/Master/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructure.code.tex index 91caf2a033f..aa21ad13dc4 100644 --- a/Master/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructure.code.tex +++ b/Master/texmf-dist/tex/generic/pgfplots/liststructure/pgfplotsliststructure.code.tex @@ -290,13 +290,55 @@ \newif\ifpgfplotslistforeachungroupedrunning % The same but without groups around #3. +% +% The list can be nested. \long\def\pgfplotslistforeachungrouped#1\as#2#3{% - \ifpgfplotslistforeachungroupedrunning - \pgfplots@error{Sorry, you can't nest pgfplotslistforeachungrouped.}% + \t@pgfplots@tokb={{#2}{#3}}% + \t@pgfplots@tokc=\expandafter{#1}% + \edef\pgfplotslist@loc@TMPa{% + \noexpand\pgfplotslistforeachungrouped@ + \the\t@pgfplots@tokb% + \the\t@pgfplots@tokc + \noexpand\pgfpl@@\noexpand\pgfplotslistforeachungrouped@EOI + }% + \pgfplotslist@loc@TMPa +}% + +% Technical helper method which performs the loop. +% ASSUMPTION: +% \pgfplotslistforeachungrouped@ +% {<macro name>} +% {<code to execute>} +% \pgfpl@@{<list elem>}\pgfpl@@{<list elem>}\pgfpl@@{<list elem>}\pgfpl@@\pgfplotslistforeachungrouped@EOI +% +% -> iterate through argument until \pgfplotslistforeachungrouped@EOI +% comes. +\long\def\pgfplotslistforeachungrouped@#1#2\pgfpl@@#3{% + \def\pgfplots@loc@TMPa{#3}% + \ifx\pgfplots@loc@TMPa\pgfplotslistforeachungrouped@EOI + % ok, terminate loop. + \let\pgfplotslistforeachungrouped@next=\relax \else - \pgfplotslistforeachungroupedrunningtrue - \long\def\pgfpl@@##1{\def#2{##1}#3}% - #1\relax - \pgfplotslistforeachungroupedrunningfalse + % perform loop iteration ... + \def#1{#3}% + #2\relax + % and continue iterating. + \def\pgfplotslistforeachungrouped@next{\pgfplotslistforeachungrouped@{#1}{#2}}% \fi -} + \pgfplotslistforeachungrouped@next +}% +\def\pgfplotslistforeachungrouped@EOI{\pgfplotslistforeachungrouped@EOI}% equals only itself in \ifx + +%-------------------------------------------------- +% \long\def\pgfplotslistforeachungrouped#1\as#2#3{% +% \ifpgfplotslistforeachungroupedrunning +% \pgfplots@error{Sorry, you can't nest pgfplotslistforeachungrouped.}% +% \else +% \pgfplotslistforeachungroupedrunningtrue +% \long\def\pgfpl@@##1{\def#2{##1}#3}% +% #1\relax +% \pgfplotslistforeachungroupedrunningfalse +% \fi +% } +%-------------------------------------------------- + |