Am 21.04.2011 um 12:28 schrieb Verhaag, G.C.H.M.:
> Hi,
>
> I try this example from the wiki page System Macros/Argument handling:
>
> \def\dodefinesomething[#1][#2]%
> {\getparameters[\??xx#1][#2]}
>
> \def\definesomething%
> {\dodoubleargumentwithset\dodefinesomething}
>
> \starttext
> \definesomething[alfa][variable=test]
> \stoptext
>
>
> Running this yields
>
> ! Undefined control sequence
>
> I'm trying to write a few macros with optional delimited arguments with
> key-value sets and started reading the appropriate pages, but can't figure
> out why this example fails to run.
>
> Anybody any idea?
I guess the message comes from your namespace which is in this form
only allowed in unprotected mode, to enter you need \unprotect before
and \protect after your command declarations. Another problem is that
you use a system namespace (two “?” and two letters) but for modules
we use now four “?” and also more than two letter, e.g.
\def\????something{@@@@something}
\def\definesomething
{\dodoubleargumentwithset\dodefinesomething}
\def\dodefinesomething[#1][#2]%
{\getparameters[\????something#1][#2]}
You should also take a look at the \definenamespace command which
creates the \define… and \setup… commands for you:
- http://wiki.contextgarden.net/Module_Namespaces
- http://tex.stackexchange.com/questions/15157/how-to-make-a-ruler/15185#15185
Wolfgang
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the
Wiki!
maillist : [email protected] / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://tex.aanhet.net
archive : http://foundry.supelec.fr/projects/contextrev/
wiki : http://contextgarden.net
___________________________________________________________________________________