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