Difference between revisions of "Command/startuseMPgraphic"

From Wiki
Jump to navigation Jump to search
(Created page with "{{Reference |name={{subst:SUBPAGENAME}} |attributes= }} == Syntax == <table cellspacing="4" cellpadding="2" class="cmd"> <tr> <td colspan="2" class="cmd...")
 
m (Taco moved page Environment/useMPgraphic to Command/startuseMPgraphic over a redirect without leaving a redirect)
 
(12 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
|attributes=
 
|attributes=
 
}}
 
}}
 +
 +
== [[Help:Reference|Syntax]] (autogenerated) ==
 +
<syntax>startuseMPgraphic</syntax>
  
 
== [[Help:Reference|Syntax]] ==
 
== [[Help:Reference|Syntax]] ==
Line 10: Line 13:
 
       --><span class="first">{...}</span><!--
 
       --><span class="first">{...}</span><!--
 
  --></td>
 
  --></td>
 +
  </tr>
 +
<tr><td>%% MetaPost code</td></tr>
 +
<tr>
 +
    <td colspan="2" class="cmd">\stopuseMPgraphic</td>
 
   </tr>
 
   </tr>
 
   <tr valign="top" class="first">
 
   <tr valign="top" class="first">
Line 16: Line 23:
 
   </tr>
 
   </tr>
 
</table>
 
</table>
 +
  
 
== Description ==  
 
== Description ==  
 +
Define code for a MetaPost graphic. The graphic can be placed in the document with {{cmd|useMPgraphic}}, and will be recompiled every time it is placed.
  
 +
If a custom MetaPost instance (defined with {{cmd|defineMPinstance}}) should be used, the name of the graphic has to be preceded by the name of the MetaPost instance, with a double colon in between: {{cmd|startuseMPgraphic|{instancename::graphicname}|link=no}}.
  
 
== Example ==
 
== Example ==
<!-- something like this:
+
<texcode>
 +
\def\mycolor{.625red}
 +
 
 +
\defineMPinstance
 +
  [myinstance]
 +
  [metafun]
 +
 
 +
\startuseMPgraphic{myinstance::name}
 +
  fill fullcircle scaled 20pt withcolor \mycolor;
 +
\stopuseMPgraphic
 +
 
 +
\startuseMPgraphic{name}
 +
  fill fullcircle scaled 20pt withcolor \mycolor;
 +
\stopuseMPgraphic
 +
 
 +
red: \useMPgraphic{name}
 +
red: \useMPgraphic{myinstance::name}
 +
 
 +
\def\mycolor{.625blue}
 +
blue: \useMPgraphic{name}
 +
</texcode>
 +
 
 +
 
 +
The command is very nice for defining [[Overlays|overlays]] that vary randomly:
 +
 
 
<context source=yes>
 
<context source=yes>
...
+
\startuseMPgraphic{randomcolor}
 +
fill unitsquare
 +
xyscaled (\overlaywidth, \overlayheight)
 +
                % `uniformdeviate 1` produces a random number between 0 and 1
 +
withcolor (uniformdeviate 1, uniformdeviate 1, uniformdeviate 1);
 +
\stopuseMPgraphic
 +
 
 +
\defineoverlay
 +
[beta]
 +
[\useMPgraphic{randomcolor}]
 +
 
 +
\dontleavehmode
 +
\framed[background=beta]{randomcolor}
 +
\framed[background=beta]{randomcolor}
 +
\framed[background=beta]{rather wide}
 
</context>
 
</context>
Or use <texcode> tags if the example doesn't compile on this wiki
+
 
-->
 
  
 
== See also ==
 
== See also ==
* {{cmd|defineMPinstance}}
+
{{MetaPost see also}}
  
 
== Help from ConTeXt-Mailinglist/Forum ==
 
== Help from ConTeXt-Mailinglist/Forum ==
Line 35: Line 82:
 
{{Forum|startuseMPgraphic}}
 
{{Forum|startuseMPgraphic}}
  
[[Category:Commands|startuseMPgraphic]]
+
[[Category:Command/MetaPost|startuseMPgraphic]]

Latest revision as of 09:50, 7 August 2020

\startuseMPgraphic

Syntax (autogenerated)

\startuseMPgraphic{...}{...,...} ... \stopuseMPgraphic
{...}name
{...,...}key


Syntax

\startuseMPgraphic{...}
%% MetaPost code
\stopuseMPgraphic
{...} name under which the graphic will be known


Description

Define code for a MetaPost graphic. The graphic can be placed in the document with \useMPgraphic, and will be recompiled every time it is placed.

If a custom MetaPost instance (defined with \defineMPinstance) should be used, the name of the graphic has to be preceded by the name of the MetaPost instance, with a double colon in between: \startuseMPgraphic{instancename::graphicname}.

Example

\def\mycolor{.625red}

\defineMPinstance
  [myinstance]
  [metafun]

\startuseMPgraphic{myinstance::name}
  fill fullcircle scaled 20pt withcolor \mycolor;
\stopuseMPgraphic

\startuseMPgraphic{name}
  fill fullcircle scaled 20pt withcolor \mycolor;
\stopuseMPgraphic

red: \useMPgraphic{name}
red: \useMPgraphic{myinstance::name}

\def\mycolor{.625blue}
blue: \useMPgraphic{name}


The command is very nice for defining overlays that vary randomly:

\startuseMPgraphic{randomcolor}
	fill unitsquare
		xyscaled (\overlaywidth, \overlayheight)
                % `uniformdeviate 1` produces a random number between 0 and 1
		withcolor (uniformdeviate 1, uniformdeviate 1, uniformdeviate 1);
\stopuseMPgraphic

\defineoverlay
	[beta]
	[\useMPgraphic{randomcolor}]

\dontleavehmode
\framed[background=beta]{randomcolor}
\framed[background=beta]{randomcolor}
\framed[background=beta]{rather wide}


See also

Help from ConTeXt-Mailinglist/Forum

All issues with: