Meer, Hans van der
4. April 2016 um 11:48


On 04 Apr 2016, at 00:12, Hans Hagen <pragma@wxs.nl> wrote:

On 4/3/2016 4:07 PM, Meer, Hans van der wrote:
Previously I could do the following

\starttext
\startMPenvironment[+]\switchtobodyfont[small]\stopMPenvironment
\startMPpage
% metafont code
\stopMPpage
\stoptext
\endinput

This is called by context --run --once etc. producing the figure and in this case modifying the font to a smaller size. Note, the context call occurs on the fly inside a \directlua{{os.execute(..)}. You may find this complicated, but it works for me and I would rather like not having to change may things all over the place.

Now I learn from the ConTeXtgarden that startMPenvironment is deprecated and that I should use defineMPinstance and setupMPinstance instead.
Thus I tried

\defineMPinstance[mp:local][metafun][setups=mp:smallfont,textcolor=red]
\startsetups mp:smallfont
\switchtobodyfont[small]
\stopsetups
\startMPpage  and also \startMPpage[mp:local]
% metafont code
\stopMPpage
\stoptext
\endinput

But nothing happens. How do I get the effect earlier obtained with startMPenvironment without having to rely an a deprecated macro?

the bodyfont environment was needed because we had to communicate to the external mp run what the intended settings were
in mkiv the run is internal so the mp text generator adapts to the current settings and there is no need to pass anything


Indeed, I can see the effect of mp functioning inside mkiv. But there is still something I do not understand.

I get small italic text doing this:

\startMPenvironment[+]
\switchtobodyfont[small]
\it
\stopMPenvironment

But italic only doing:

%\startMPenvironment[+]
\switchtobodyfont[small]
\it
%\stopMPenvironment

How is that possible?
Please send complete examples and not only snippets.

Wolfgang