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

Aditya Mahajan adityam at umich.edu
Sat Aug 10 02:09:10 CEST 2013


On Fri, 9 Aug 2013, Sanjoy Mahajan wrote:

>> Try adding
>>      prologues := 2;
>> or
>>      prologues := 3;
>> in your mp file.
>>
>
> 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.


Aditya




More information about the ntg-context mailing list