[NTG-context] How to "\processcommalist"?
Mojca Miklavec
mojca.miklavec.lists at gmail.com
Fri Jul 1 20:45:19 CEST 2005
Taco Hoekwater wrote:
> Mojca Miklavec wrote:
> > I would like to define a command, which would be called in the following way:
> > \TheBossWantsTheWorkToBeDoneOn[monday,wednesday,thursday]{tidy up}
> >
> > so that it would be equivalent to:
> > \WeHaveToDo[monday]{tidy up}
> > \WeHaveToDo[wednesday]{tidy up}
> > \WeHaveToDo[thursday]{tidy up}
> >
> > I played a bit with different variants of \processcommalist, but I
> > can't figure out how to use it in this particular case.
>
> The trick is to store the tidy up inside the processing command,
> like so:
>
> \def\WeHaveToDo[#1]#2{\message{(#1: #2)}}
>
> \def\TheBossWantsTheWorkToBeDoneOn[#1]#2%
> {\begingroup
> \def\processitem##1{\WeHaveToDo[##1]{#2}}%
> \processcommalist[#1]\processitem
> \endgroup }
>
> \TheBossWantsTheWorkToBeDoneOn[monday,wednesday,thursday]{tidy up}
Great, thanks Taco! It works. It seems easier than I thought, but I
could have spent hours looking for the proper solution alone.
I hope this will land in the t-rsteps module (\OnSteps[1,2,3,6]{...}).
> > Is there also a possibility to define a command like
> > \IHaveToDoTheTasks[1-4,7,9-11]{until tomorrow}
>
> There was not, but knowing Hans I trust that soon there will be :-).
:)
> For now, here is my solution.
>
> [...]
>
> With these, you can do:
>
> \def\IHaveToDoTheTask[#1]#2{\message{(#1: #2)}}
>
> \def\IHaveToDoTheTasks[#1]#2%
> {\begingroup
> \def\processitem##1{\IHaveToDoTheTask[##1]{#2}}%
> \uncompresslist[#1]% <= Yeah!
> \processcommacommand[\uncompressedlist]\processitem
> \endgroup }
>
> I hope you understand what I've done, but otherwise, feel
> free to ask, of course.
Well, my stomach needs some time to process the latter example. But if I write
\def\IHaveToDoTheTask[#1]#2{\message{(#1: #2)}The task #1 has to
be done #2.\crlf}
\IHaveToDoTheTasks[1-3]{until tomorrow}
nothing happens.
Thanks again,
Mojca
More information about the ntg-context
mailing list