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

Hans Hagen pragma at wxs.nl
Mon Aug 21 23:04:47 CEST 2006


Mojca Miklavec wrote:
> On 8/21/06, nico wrote:
>   
>> On Mon, 21 Aug 2006 17:23:48 +0200, Mojca Miklavec wrote:
>>
>>     
>>> Hello,
>>>
>>> I tried to print out primes (well, I tried to do something else, but I
>>> needed a more illustrative example), but it seems that my approach was
>>> too naive:
>>>
>>> \def\arePrime[#1]{%
>>>       \bgroup
>>>       \getparameters[Prime][p=,#1]
>>>       \def\printPrime##1{##1 is prime.\crlf}
>>>       \processcommalist[\Primep]\printPrime
>>>       \egroup}
>>>
>>> \starttext
>>> \arePrime[p={2,3,5}]
>>> \stoptext
>>>       
>> My 2 cents contribution:
>>
>> \def\printPrime#1{#1 is prime.\crlf}
>>
>> %% Why using parameter for this?
>>     
>
> I was sure that someone would ask that. I want to provide optional
> parameters for both numbers and scaling:
>     \useGNUPLOTgraphic[name]
> or
>     \useGNUPLOTgraphic[name][width=.9\textwidth]
> or
>     \useGNUPLOTgraphic[name][n={1,3}]
> or
>     \useGNUPLOTgraphic[name][n={1,3},width=.9\textwidth]
>
> 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]
> instead.
>
>   
along these lines:

\def\useGNUPLOTgraphic
  {\dotripleempty\douseGNUPLOTgraphic}

\def\douseGNUPLOTgraphic[#1][#2][#3]%
   {\itthirdargument
        \dodouseGNUPLOTgraphic[#1][#2][#3]%
    \else\ifsecondargument
        \def\docommand##1{\dodouseGNUPLOTgraphic[#1][##1][#3]}%
        \processcommalist[#2]\docommand
   \fi}

\def\dodouseGNUPLOTgraphic[#1][#2][#3]%
   {\getparameters[#1:#2][#3]}

etc etc

you can also check for \doifsssignmentelse{#2}{...}{...}
> At the beginning the main reason against it
Hans

-- 

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                             | www.pragma-pod.nl
-----------------------------------------------------------------



More information about the ntg-context mailing list