ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* 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

* Re: processaction inside MP graphic
  2010-05-13  9:13     ` luigi scarso
@ 2010-05-13  9:19       ` Hans Hagen
  2010-05-13 11:04       ` Vianney le Clément
  1 sibling, 0 replies; 8+ messages in thread
From: Hans Hagen @ 2010-05-13  9:19 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On 13-5-2010 11:13, luigi scarso wrote:

> \setevalue{square}{unitsquare}
> \setevalue{circle}{unitcircle}
>
> \starttext
>
> \startuseMPgraphic{test}
> fill \getvalue{square} scaled 1cm;
> \stopuseMPgraphic
> \useMPgraphic{test}
> \stoptext

or

 > \setevalue{mynamespace:square}{unitsquare}
 > \setevalue{mynamespace:circle}{unitcircle}
 >
 > \starttext
 >
 > \startuseMPgraphic{test}
 > fill \executeifdefined{mynamespace:square}{diamond} scaled 1cm;
 > \stopuseMPgraphic
 > \useMPgraphic{test}
 > \stoptext


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
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  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
  1 sibling, 1 reply; 8+ messages in thread
From: Vianney le Clément @ 2010-05-13 11:04 UTC (permalink / raw)
  To: mailing list for ConTeXt users

> \getparameters[Shape][square={unitsquare },
>                     circle={unitcircle }]
> \starttext
>
> \startuseMPgraphic{test}
> fill \Shapesquare  scaled 1cm;
> \stopuseMPgraphic
> \useMPgraphic{test}
> \stoptext

This one's very nice. Thanks.

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 11:04       ` Vianney le Clément
@ 2010-05-13 11:12         ` luigi scarso
  2010-05-13 11:16           ` Vianney le Clément
  0 siblings, 1 reply; 8+ messages in thread
From: luigi scarso @ 2010-05-13 11:12 UTC (permalink / raw)
  To: mailing list for ConTeXt users

2010/5/13 Vianney le Clément <vleclement@gmail.com>:
>> \getparameters[Shape][square={unitsquare },
>>                     circle={unitcircle }]
>> \starttext
>>
>> \startuseMPgraphic{test}
>> fill \Shapesquare  scaled 1cm;
>> \stopuseMPgraphic
>> \useMPgraphic{test}
>> \stoptext
>
> This one's very nice. Thanks.
becareful at the spaces at the end, ie
\getparameters[Shape][square={unitsquare},
                    circle={unitcircle}]

doesn't work.

-- 
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

* Re: processaction inside MP graphic
  2010-05-13 11:12         ` luigi scarso
@ 2010-05-13 11:16           ` Vianney le Clément
  0 siblings, 0 replies; 8+ messages in thread
From: Vianney le Clément @ 2010-05-13 11:16 UTC (permalink / raw)
  To: mailing list for ConTeXt users

> becareful at the spaces at the end, ie
> \getparameters[Shape][square={unitsquare},
>                    circle={unitcircle}]
>
> doesn't work.

That's logical, because \Shapesquare eats the spaces following it. In
my case, I define my macros like

\getparameters[Shape:]
  [square=unitsquare,
   circle=unitcircle]
\def\Shape#1{\csname Shape:#1\endcsname}

and then use \Shape{square}, so it doesn't have the problem. But
thanks for pointing that out.

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

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).