[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 {}
oeps
\stoptexdefinition

[\test]


we can consider something like:

\starttexdefinition test optional,optional,argument,argument
oeps
\stoptexdefinition

which then becomes

\def\test[#1][#2]#3#4%

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

or even

\starttexdefinition test optional:ns,argument:name
oeps
\stoptexdefinition

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

or maybe like xml:

\starttexdefinition test ns:optional,argument
oeps
\stoptexdefinition

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 
xmlsetup)

> 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

-----------------------------------------------------------------
                                           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