On Thu, May 13, 2010 at 09:30, Taco Hoekwater
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