Am 06.08.2009 um 23:42 schrieb Hans Hagen:

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]

not very nice and don't look pleasant to me

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

i get the feeling we're moving towards latex3 (brr), before this happens drop the whole
thing and i don't like \getvariable in this context anyway

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

when the inner list is used inside of a group the following works

  \long\def\processcommalistwithcontent[#1]#2%
    {\def\currentcommalistcommand##1{#2}%
     \processcommalist[#1]\currentcommalistcommand}

\processcommalistwithcontent[a,b,c] {{\processcommalistwithcontent[x,y,z]{This is subelement ##1 of element #1.\par}}}

but the extra pair of braces is kind of akward. Working without them is not the problem

  \newcount\commalistdepth

  \long\def\processcommalistwithcontent[#1]#2%
    {\advance\commalistdepth\plusone
\long\expandafter\def\csname list:\number\commalistdepth \endcsname##1{#2}% \def\currentcommalistcommand{\csname list:\number\commalistdepth \endcsname}%
     \processcommalist[#1]\currentcommalistcommand
     \advance\commalistdepth\minusone}

\processcommalistwithcontent[a,b,c] {\processcommalistwithcontent[x,y,z]{This is subelement ##1 of element #1.\par}}

but as you mentioned above some kind of check (depth counter) is needed.

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)

yes, more or less what you do with xml in mkiv

  \startxmlsetups ...
  do this in that
  \xmlflush{#1}
  do more things
  \stopxmlsetups

in my games module for the input for chess, go ...

  \startpgnsetups move
  do a few things before the move
  \pgnflush{#1}
  do a few things after the move
  \stoppgnsetups

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)

if the context way is to avoid comma values and assignment values in the same list the message should better remain

Wolfgang

_______________________________________________
dev-context mailing list
[email protected]
http://www.ntg.nl/mailman/listinfo/dev-context

Reply via email to