# [NTG-context] How to \processcommalist inside another commalist?

nico nicolas.marsgui at libertysurf.fr
Tue Aug 22 00:26:16 CEST 2006

On Mon, 21 Aug 2006 23:08:59 +0200, Hans Hagen <pragma at wxs.nl> wrote:

>>> but after some thinking I realized that it would indeed be a better
>>> idea (less to type?) to have
>>>     \useGNUPLOTgraphic[name][1,3]
>>> and
>>>     \useGNUPLOTgraphic[name][1,3][width=.9\textwidth]
>>>
>>> At the beginning the main reason against it was that I didn't know how
>>> to distinguish which kind of parameters are being used in the second
>>> pair of brackets, but I guess that I can safely use \ifnumberelse as a
>>> test on the first item to distinguish between the two.
>>>
>>
>> Maybe you could play only with the parameter count. The limitation is
>> that
>> an empty second argument is required when only options need to be
>> passed.
>>
> why? in that case #3 is empty and #2 contains the options

Hm, I thought that the initial goal was to know if the parameter passed is
a number list, or an option list. In the suggested code, the assumption is
that the number list (if any) is always the second parameter.

If not, how to handle those cases?

\useGNUPLOTgraphic[name][2,3,5]
\useGNUPLOTgraphic[name][width=2in]

But I guess there are clever internal macros that could help :-)

Regards,
BG

>> \def\printPrime#1{#1 is prime.\crlf}
>>
>> \def\useGNUPLOTgraphic
>>    {\dotripleempty\douseGNUPLOTgraphic}
>>
>> \def\douseGNUPLOTgraphic[#1][#2][#3]%
>>    {\ifthirdargument
>>       \doprime{#2}
>>       parameters are #3
>>       \getparameters[gnuplot][#3]
>>     \else\ifsecondargument
>>       \doprime{#2}
>>     \fi\fi}
>>
>> \def\doprime#1{\processcommalist[#1]\printPrime}
>>
>> \starttext
>> \useGNUPLOTgraphic[name]
>> \useGNUPLOTgraphic[name][2,3,5]
>> \useGNUPLOTgraphic[name][3,5,7][width=2in]
>> \useGNUPLOTgraphic[name][][width=4in]
>> \stoptext