[NTG-context] \startuseMPgraphic

Wolfgang Schuster schuster.wolfgang at gmail.com
Mon Apr 11 22:27:06 CEST 2016


> Meer, Hans van der <mailto:H.vanderMeer at uva.nl>
> 11. April 2016 um 21:50
> But why should typing \MPcolor{\MPvar{color}}be necessary or useful 
> when \MPvar(color) obviously is sufficient?
> Or is there a special reason for the nested macros?
Let's separate your question in two separate things, the first is colors.

There are two way to define colors for a metapost graphics, the first is 
to define it with metapost itself.

%% begin example
\startMPpage
color myred ; myred := (1,0,0) ;
fill fullcircle scaled 3cm withcolor myred ;
\stopMPpage
%% end example

The disadvantage is that you can use this color only in your graphics 
but not in your tex code.

Now comes the second method where I define the color in tex with the 
\definecolor command and access it in metapost with the color \MPcolor 
command.

%% begin example
\definecolor[myred][r=1]

\startMPpage
fill fullcircle scaled 3cm withcolor \MPcolor{myred} ;
\stopMPpage
%% end example


The second part of the questions concerns metapost variables.

%% begin example
\startuseMPgraphic{mycircle}{diameter,color}
fill fullcircle scaled \MPvariable{diameter} withcolor \MPvariable{color} ;
\stopuseMPgraphic

\startTEXpage
\useMPgraphic{mycircle}{diameter=3cm,color=red}
\stopTEXpage
%% end example

The second argument of the \startuseMPgraphic command initializes
the variables of your command and the \MPvariable accesses the value
of the variable. In this case "color" is only the name of the variable
and doesn't tell if we want a tex defined color or a metapost defined color.

In my example the color has to be defined in metapost because after
expansion we end with "withcolor red" in the example. We you want
a color which has been defined in tex you have put \MPcolor around
the \MPvariable command, i.e. "\MPcolor{\MPvariable{color}}".

Wolfgang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ntg.nl/pipermail/ntg-context/attachments/20160411/2cd16527/attachment-0001.html>


More information about the ntg-context mailing list