[dev-context] A few questions

Hans Hagen pragma at wxs.nl
Thu Aug 6 23:42:49 CEST 2009

Wolfgang Schuster wrote:
> Hi Hans,
> here are a few questions which I want to ask since a few days.
> 1. texdefinition
> I like start/stoptexdefinition because it makes the source for certain 
> macros more readable
> than \def allows me but is there a way to use it for macros without 
> parameters?

this works

\starttexdefinition test {}


we can consider something like:

\starttexdefinition test optional,optional,argument,argument

which then becomes


etc but i'm only willing to support that if we can stick to reasonable 

or even

\starttexdefinition test optional:ns,argument:name

which then automatically makes you a \getvariable{ns}{key} as well as \name

or maybe like xml:

\starttexdefinition test ns:optional,argument

with then makes an \getvariable{ns}{first} and so

needs a bit of thinking

> 2. commalists
> Together with texdefinition I use now start/stopprocesscommalist 
> (feature request: I need also
> start/stopprocessassignmentlist) but I can use the list value without 
> the need to define a command
> where I specify what should happen with it
>   \startprocesscommalist[a,b,c,...]
>   the current list value is #1\par
>   \stopprocesscommalist
> but why is there not something equivalent for the normal 
> processcommalist because the start/stop
> method is not the best method when you need nested lists, something like 
> this would be nice then
> (I know \doprocesscommalist is already defined):
>   \doprocesscommalist[a,b,c,...]%
>     {\processcommalist[x,y,z,...]%
>        {do something with #1 and ##1}}

hm, probably possible but not trivial (maybe not even robust) ... needs 
thinking (also a bit slower as we explicitly need a trick similar to the 
one used in dorecurse

> 3. setups
> The various start/stopsetups environments another nice feature but 
> what's the correct method when
> I want my own setup environment, should I adapt the following line from 
> core-env to my own command
>   \def\startsetups     {\xxstartsetups\plusone  \stopsetups     } 
> \let\stopsetups     \relax
> and use method from lxml-ini to access/flush the content?

you mean that you want to pass an argument to a setup? (mandate in 

> 4. Mixed assignment/comma lists
> Are mixed lists of normal comma elements and assignments are allowed by 
> ConTeXt’s syntax because
> there is a command in the source (\processassignlist) to process the non 
> assignment values from
> the list? On the other side these values generate a error message on the 
> terminal where one can read
> there is a missing '=' in the element and this message can't be disabled 
> (without hacks).

yeah, a matter of choice ... we can drop the message if users don't mind

we shouldn't end up with too many variants and personally i don't like 
the mix (i.e. foo==yes can be used)


                                           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 dev-context mailing list