# [NTG-context] internal mptopdf converter skips some glyphs in labels

Sat Aug 10 02:09:10 CEST 2013

```On Fri, 9 Aug 2013, Sanjoy Mahajan wrote:

>>      prologues := 2;
>> or
>>      prologues := 3;
>>
>
> Good thought, which I tried, though neither setting resolved the
> problem.
>
>> Any particular reason that you are compiling metapost files using mp and
>> then including them in ConTeXt rather than directly using any one of the
>> inbuilt ConTeXt environments for handling mp (\startMPcode, \useMPgraphic,
>> \processMPbuffer, etc.)
>
> Mostly conservatism.  I cannot quite figure out the canonical
> replacement for btex ... etex (textext, sometext?), and then I get
> confused by the many possible environments.
>
> What do you recommend as the best btex...etex replacement

Nothing. Just leave them as it is and MkIV is smart enough to process
them [^1]. If you used the TEX macros (to build strings with metapost
variables), use textext("...") instead of TEX("....").

> and the best
> environment for replacing a standalong metapost figure (that I would
> otherwise just include with \externalfigure)?

I use the following:

\startcomponent figures

\startbuffer[system-1]
... mp code ..
\stopbuffer

% Other figures in separate buffer

\stopcomponent

and then use

\processMPbuffer[list of buffers]

to typeset them [^2]. With this approach you loose some of the features of
\externalfigure (scaling, backgrounds, etc.) For scaling, you can use

\scale[....]{\processMPbuffer[...]}

and if you really need a background, you can use \framed.

Another option is to use \startMPcode .... \stopMPcode environment, but I
usually like my figures to be separate files.

[^1]: To process btex ... etex, the content of each metapost
environment is processed twice. This can sometimes lead to unexpected
results. Basically you have to careful with := vs =, otherwise you'll get
inconsistent equations.

[^2]: You also need to keep in mind that all metapost graphics are
processed in a single run (think of a single mp file with multiple
beginfigs). So you have to be careful with initializing and resetting
variables (\startMPinclusions, \startMPinitializations,
\startMPdefinitions, see wiki for difference) or adding bgroup ... egroup
at appropriate location to limit scope.

Another way to avoid interference is to use separate MPinstances, but in
my opinion that feature is more useful to module writers than normal
users.