![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
Pawel Jackowski wrote:
Hello,
I suppose the issue was discussed before but couldn't find that is archives.
Making high level macros in (pure) TeX encounters problem of optionality; the number of macro `properties' (agruments) is limited and making parameters *optional* needs some trickery. And yes, syntax like
\macro[...,...,...]{...}
is quite robust ConTeXt or LaTeX but is also time, space and resource consuming. Must be, since there is no robust way to build macros with parameters organized similar to <rulespec>,
\macro key1 val1 key2=val2 key3{val3} ...
at least not with optional key-val pairs.
In pure TeX, such optional parameter text is rather exceptional, but in pdfTeX it becomes quite common. Would it be possible to implement some extension to definition building mechanism that allows to create macros with rulespec-like shape? I admit for the moment I can't even imagine a consistent syntax for such a feature. Macro parameters rules are Knuthish enough :)
in the previosu century taco made some extensiong dealing with key/val parsing (and other kinds of parsing); at that time we did quite some testing with speed issues, and the price to pay was higher that the gain; keep in mind that in tex catcodes and expansion always kind of interfere in such things; ok, if you limit key/val parsing to 'strings' only (i.e. no expansion, no catcode support) then it can be faster, but at the same time it also becomes useless for everyday usage; as with more tex things, because tex is rather optimized, hard coded alternatives (extensions to the language) not always pay off; also consider implementation issues like namespacing, scope of keys, etc Hans