mpost - MetaPost, a system for creating graphics


mpost [ options ] [ commands ]


--dvitomp dvifile [.dvi] [ mpxfile [.mpx]]


\*(MP interprets the \*(MP language and produces PostScript (EPS) or Scalable Vector Graphics (SVG) pictures. The \*(MP language is similar to Knuth's \*(MF with additional features for including

R tex (1) or

R troff (1) commands and accessing features of PostScript not found in \*(MF.

Like \*(TX and \*(MF, \*(MP is normally used with a large body of precompiled macros. When the

--ini option is given, it can be used to precompile macros into a .mem file. When called without that option, \*(MP will use its executable name as the name of the mem to use. For example, when called as

mpost the mpost mem is used, which is identical to the plain mem.

The commands given on the command line to the \*(MP program are passed to it as the first input line. (But it is often easier to type extended arguments as the first input line, since UNIX shells tend to gobble up or misinterpret \*(MP's favorite symbols, like semicolons, unless you quote them.) The normal usage is to say mpost figs to process the file figs.mp . The basename of figs becomes the ``jobname'', and is used in forming output file names. If no file is named, the jobname becomes mpout . The default extension, .mp , can be overridden by specifying an extension explicitly.

When the

--dvitomp option is given, \*(MP acts as DVI-to-MPX converter only. See dvitomp (1) for details.

This manual page is not meant to be exhaustive. The complete documentation for this version of \*(MP can be found in the User Manual that should have been installed along with the program and is also available from http://tug.org/metapost. See the FILES section below.

The \*(MP language is similar to \*(MF, but the manual assumes no knowledge of \*(MF. \*(MP does not have bitmap output commands or \*(MF's online display mechanism.


  • *.mem
        Predigested \*(MP mem files.
  • plain.mp
        The standard mem file.
  • mfplain.mp
        The \*(MF-compatible mem file.
  • $TEXMFMAIN/metapost/base/*.mp
        The standard \*(MP macros included in the original distribution.
  • $TEXMFMAIN/metapost/support/*
        Various tables for handling included tex and troff .
  • $TEXMFMAIN/metapost/support/trfonts.map
        Table of corresponding font names for troff and PostScript.
  • psfonts.map
        Table of corresponding font names for tex and PostScript.
  • $TEXMFMAIN/doc/metapost/*
        The \*(MP manual and tutorial source, also including sample figures


Donald E. Knuth, "The \*(MFbook" (Volume C of "Computers and Typesetting" ), Addison-Wesley, 1986, ISBN 0-201-13445-4.
TUGboat (the journal of the \*(TX Users Group).


R dvitomp (1),

R epstopdf (1),

R mf (1),

R mptopdf (1),

R tex (1),

.URL "http://foundry.supelec.fr/gf/project/metapost/" "MetaPost source code" .

R .URL "http://tug.org/metapost/" "MetaPost home page" .


\*(MP was designed by John D. Hobby, incorporating algorithms from \*(MF by Donald E. Knuth. It was originally implemented on Unix, incorporating system-dependent routines from

R web2c , while not relying on it except for the actual \*(WB-to-C translator.

Ulrik Vieth adapted \*(MP to take advantage of the advanced path searching features in more recent versions of

web2c and worked towards fully integrating \*(MP into the canonical Unix \*(TX distribution.

The current, CWEB based version of MetaPost is maintained by Taco Hoekwater.

The manual and tutorial are maintained by Stephan Hennig and Troy Henderson.


Email bug reports to .