On Thu, May 13, 2010 at 09:30, Taco Hoekwater <t...@elvenkind.com> wrote:
> Like many of the more complex commands, \processaction does not
> expand totally. If you are using mkiv, you could define \Shape
> like this:
>
> \def\Shape#1%
>  {\directlua{
>     local known = {square = 'unitsquare', circle = 'unitcircle' }
>     tex.sprint(known[#1] or 'unitsquare')}}

Thanks Taco. That does the trick provided you enclose #1 with quotes:

\def\Shape#1%
 {\directlua{
    local known = {square = 'unitsquare', circle = 'unitcircle' }
    tex.sprint(known['#1'] or 'unitsquare')}}

Another, maybe uglier but plain TeX, solution I've come up with is
defining auxiliary macros:

\def\ShapeSSSsquare{unitsquare}
\def\ShapeSSScircle{unitcircle}
\def\Shape#1{\csname ShapeSSS#1\endcsname}

But of course, this does not handle unknown options (though that could
be added).

I'll add this to the wiki.

Vianney
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / 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
___________________________________________________________________________________

Reply via email to