* processaction inside MP graphic
@ 2010-05-12 17:22 Vianney le Clément
2010-05-13 7:30 ` Taco Hoekwater
0 siblings, 1 reply; 8+ messages in thread
From: Vianney le Clément @ 2010-05-12 17:22 UTC (permalink / raw)
To: mailing list for ConTeXt users
Hello,
I'm having some trouble with a macro using \processaction inside a
metapost graphic. Here is a minimal example.
\def\Shape#1%
{\processaction[#1]
[square=>unitsquare,
circle=>unitcircle]}
\starttext
\startuseMPgraphic{test}
fill \Shape{square} scaled 1cm;
\stopuseMPgraphic
\useMPgraphic{test}
\stoptext
It stops with the error "Use of \p!compareprocessaction doesn't match
its definition."
Any ideas?
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: processaction inside MP graphic
2010-05-12 17:22 processaction inside MP graphic Vianney le Clément
@ 2010-05-13 7:30 ` Taco Hoekwater
2010-05-13 8:45 ` Vianney le Clément
0 siblings, 1 reply; 8+ messages in thread
From: Taco Hoekwater @ 2010-05-13 7:30 UTC (permalink / raw)
To: mailing list for ConTeXt users
Vianney le Clément wrote:
> Hello,
>
> I'm having some trouble with a macro using \processaction inside a
> metapost graphic. Here is a minimal example.
>
> \def\Shape#1%
> {\processaction[#1]
> [square=>unitsquare,
> circle=>unitcircle]}
> \starttext
> \startuseMPgraphic{test}
> fill \Shape{square} scaled 1cm;
> \stopuseMPgraphic
> \useMPgraphic{test}
> \stoptext
>
> It stops with the error "Use of \p!compareprocessaction doesn't match
> its definition."
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')}}
I don't know of a simple solution for mkii.
Best wishes,
Taco
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: processaction inside MP graphic
2010-05-13 7:30 ` Taco Hoekwater
@ 2010-05-13 8:45 ` Vianney le Clément
2010-05-13 9:13 ` luigi scarso
0 siblings, 1 reply; 8+ messages in thread
From: Vianney le Clément @ 2010-05-13 8:45 UTC (permalink / raw)
To: mailing list for ConTeXt users
On Thu, May 13, 2010 at 09:30, Taco Hoekwater <taco@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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: processaction inside MP graphic
2010-05-13 8:45 ` Vianney le Clément
@ 2010-05-13 9:13 ` luigi scarso
2010-05-13 9:19 ` Hans Hagen
2010-05-13 11:04 ` Vianney le Clément
0 siblings, 2 replies; 8+ messages in thread
From: luigi scarso @ 2010-05-13 9:13 UTC (permalink / raw)
To: mailing list for ConTeXt users
2010/5/13 Vianney le Clément <vleclement@gmail.com>:
> On Thu, May 13, 2010 at 09:30, Taco Hoekwater <taco@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
> ___________________________________________________________________________________
>
Also
\getparameters[Shape][square={unitsquare },
circle={unitcircle }]
\starttext
\startuseMPgraphic{test}
fill \Shapesquare scaled 1cm;
\stopuseMPgraphic
\useMPgraphic{test}
\stoptext
%%%%%%%%%%%%%%
\setevalue{square}{unitsquare}
\setevalue{circle}{unitcircle}
\starttext
\startuseMPgraphic{test}
fill \getvalue{square} scaled 1cm;
\stopuseMPgraphic
\useMPgraphic{test}
\stoptext
--
luigi
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-05-13 11:16 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-12 17:22 processaction inside MP graphic Vianney le Clément
2010-05-13 7:30 ` Taco Hoekwater
2010-05-13 8:45 ` Vianney le Clément
2010-05-13 9:13 ` luigi scarso
2010-05-13 9:19 ` Hans Hagen
2010-05-13 11:04 ` Vianney le Clément
2010-05-13 11:12 ` luigi scarso
2010-05-13 11:16 ` Vianney le Clément
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).