Table of Contents
             
mpost, inimpost, virmpost - MetaPost, a system for drawing
pictures 
mpost [options] [commands]  
This manual page
is not meant to be exhaustive.  The complete documentation for this version
of  can be found in the info file or manual Web2C: A TeX implementation.
 interprets the  language and produces PostScript pictures.  The  language
is similar to Knuth's  with additional features for including tex(1)
 or
troff(1)
 commands and accessing features of PostScript not found in .  
Like
 and ,  is normally used with a large body of precompiled macros.  This
version of  looks at its command line to see what name it was called under.
 Both inimpost and virmpost are symlinks to the mpost executable.  When
called as  inimpost (or when the --ini option is given) it can be used to
precompile macros into a .mem file.  When called as virmpost it will use
the plain mem.  When called under any other name,  will use that 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.  Other mems than plain
are rarely used. 
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 's favorite symbols, like semicolons, unless you quote
them.)  The first line should begin with a filename, a \controlsequence,
or a &memname. 
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.
There is normally one output file for each picture generated, and the output
files are named jobname.nnn, where nnn  is a number passed to the beginfig
macro.  The output file name can also be jobname.ps if this number is negative.
The output files can be used as figures in a  document by including 
\special{psfile=jobname.nnn}
in the  document.  Alternatively, one can  \input epsf.tex and then use the
macro \epsfbox{jobname.nnn} to produce a box of the appropriate size containing
the figure. 
- btex TeX commands etex 
- This causes mpost to generate a  picture
expression that corresponds to the  commands.  If the  commands generate
more than one line of text, it must be in a \vbox or a minipage environment.
- verbatimtex TeX commands etex 
- This is ignored by mpost except that the
 commands are passed on to .  When using X instead of  the input file must
start with a verbatimtex block that gives the \documentstyle and \begin{document}
commands.  You can use the `%&' construct in the first verbatimtex block to
ensure that the correct  format is used to process the commands. 
Since most
 fonts have to be downloaded as bitmaps, the btex feature works best when
the output of mpost is to be included in a  document so that dvips(1)
 can
download the fonts.  For self-contained PostScript output that can be used
directly or included in a troff document, start your  input file with the
command prologues:=1 and stick to standard PostScript fonts.   and  use
the names in the third column of the file trfonts.map, which can be found
in the directories with support files for . 
 output can be included in a
troff document via the -m pictures macro package.  In this case mpost should
be invoked with the -T flag so that the commands between btex and etex or
between verbatimtex and etex are interpreted as troff instead of .  (This
automatically sets prologues:=1 ).  
This version of  understands
the following command line options. 
- --file-line-error-style 
-  Print error messages
in the form file:line:error which is similar to the way many compilers
format them. 
- --help 
-  Print help message and exit. 
- --ini 
-  Be inimpost, for dumping
bases; this is implicitly true if the program is called as inimpost. 
- --interaction mode
-  Sets the interaction mode.  The mode can be one of batchmode, nonstopmode,
scrollmode, and errorstopmode. The meaning of these modes is the same as
that of the corresponding commands. 
- --jobname name 
-  Use name for the job name,
instead of deriving it from the name of the input file. 
- --kpathsea-debug bitmask
-  Sets path searching debugging flags according to the bitmask.  See the
Kpathsea manual for details. 
- --mem mem 
-  Use mem as the name of the mem to be
used, instead of the name by which  was called or a %& line. 
- --parse-first-line
-  If the first line of the main input file begins with %& parse it to look
for a dump name or a --translate-file option. 
- --progname name 
-  Pretend to be program
name. This affects both the format used and the search paths. 
- --recorder 
-  Enable
the filename recorder.  This leaves a trace of the files opened for input
and output in a file with extension .fls. 
- -T 
-  Produce TROFF output. 
- --translate-file tcxname
-  Use the tcxname translation table. 
- --troff 
-  As -T. 
- --version 
-  Print version information
and exit.  
See the Kpathsearch library documentation (the `Path
specifications' node) for the details of how the environment variables are
use when searching.  The kpsewhich utility can be used to query the values
of the variables.
If the environment variable TEXMFOUTPUT is set,  attempts
to put its output files in it, if they cannot be put in the current directory.
Here is a list of the environment variables affect the behavior of mpost:
- MPINPUTS 
- Search path for input files. 
- MFINPUTS 
- Auxiliary search path for
input files with .mf extensions. 
- MPSUPPORT 
- Directory for various tables for
handling included tex and troff. 
- MPXCOMMAND 
- The name of a shell script that
converts embedded typesetting commands to a form that  understands.  Defaults:
makempx for tex and troffmpx for troff. 
- TEX 
- The version of  - or X - to use
when processing btex and verbatimtex commands.  Default tex. This version
of  allows you to use a `%&format' line instead. 
- TROFF 
- The troff pipeline for
btex and verbatimtex commands.  Default eqn -d\$\$ | troff 
- MPEDIT 
- A command
template for invoking an editor. 
A .mem file is a binary file that permits
fast loading of macro packages. mpost reads the default plain.mem unless
another .mem file is specified at the start of the first line with an & just
before it.  There is also an mfplain.mem that simulates plain  so that mpost
can read .mf fonts.  (Plain  is described in The book). 
Experts can create
.mem files be invoking inimpost and giving macro definitions followed by
a dump command. 
The  language is similar to , but the manual A User's Manual
for  assumes no knowledge of .   does not have bitmap output commands or
's online display mechanism.  
- mpost.pool 
- Encoded text of 's messages. 
- *.mem
- Predigested  mem files. 
- plain.mp 
- The standard mem file. 
- mfplain.mp 
- The -compatible
mem file.  This is loaded when  virmp is invoked via a symbolic link as
mfmp. 
- $TEXMFMAIN/metapost/base/*.mp 
- The standard  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/examples.mp
- The source file for a few sample figures that are part of a X document
$TEXMFMAIN/doc/metapost/mpintro.tex  that describes the  system  in a little
more detail.  
Donald E. Knuth, The book (Volume C of Computers
and Typesetting), Addison-Wesley, 1986, ISBN 0-201-13445-4.
John D. Hobby, A User's Manual for , CSTR 162, AT&T Bell Labs, 
John D. Hobby, Drawing Graphs with , CSTR 164, AT&T Bell Labs, 
TUGboat (the journal of the  Users Group).  
tex(1)
, mf(1)
, dvips(1)
.
 
 was designed by John D. Hobby, incorporating algorithms from  
by Donald E. Knuth.  It was originally implemented on Unix, incorporating
system-dependent routines from web2c, while not relying on it except for
the actual -to-C translator. 
Ulrik Vieth adapted  to take advantage of the
advanced path  searching features in more recent versions of web2c and
worked towards fully integrating  into the canonical Unix   distribution.
 He also updated and extended this manual page.  
Unlike  and ,  originally
didn't use any fancy logo. John Hobby says he prefers the spelling ``MetaPost'',
yet Don Knuth  has updated the   logo.mf font to be able to typeset a proper
 logo similar to the   logo.  Feel free to use whatever you think is more
appropriate! 
Table of Contents