# Man Pages

mpost(1) - phpMan mpost(1) - phpMan

Command: man perldoc info search(apropos)

MPOST(1)                          Web2C 7.5.6                         MPOST(1)

NAME
mpost, inimpost, virmpost - MetaPost, a system for drawing pictures

SYNOPSIS
mpost [options] [commands]

DESCRIPTION
MetaPost  interprets  the MetaPost language and produces PostScript pictures.  The MetaPost language is similar
to Knuth's Metafont with additional features for including tex(1) or troff(1) commands and  accessing  features

Like  TeX  and  Metafont,  MetaPost  is normally used with a large body of precompiled macros.  This version of
MetaPost looks at its command line to see what name it was called under.  Both inimpost and virmpost  are  sym-
links  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, MetaPost 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 MetaPost 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 MetaPost'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 ''job-
name'', 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 TeX document by including
\special{psfile=jobname.nnn}
in the TeX 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 MetaPost picture expression that corresponds to the TeX commands.  If
the TeX 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 TeX commands are passed on to TeX.  When using LaTeX instead of
TeX  the  input  file must start with a verbatimtex block that gives the \documentstyle and \begin{docu-
ment} commands.  You can use the '%&' construct in the first verbatimtex block to ensure that  the  cor-
rect TeX format is used to process the commands.

Since  most TeX fonts have to be downloaded as bitmaps, the btex feature works best when the output of mpost is
to be included in a TeX 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 MetaPost input file with the command pro-
logues:=1 and stick to standard PostScript fonts.  TeX and MetaPost use the names in the third  column  of  the
file trfonts.map, which can be found in the directories with support files for MetaPost.

MetaPost  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 TeX.  (This automatically sets prologues:=1 ).

OPTIONS
This version of MetaPost understands the following command line options.

-file-line-error
Print error messages in the form file:line:error which is similar to the way many compilers format them.

-no-file-line-error
Disable printing error messages in the file:line:error style.

-file-line-error-style
This is the old name of the -file-line-error option.

-halt-on-error
Exit with an error code when an error is encountered during processing.

-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  errorstop-
mode.  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.

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 MetaPost was called or a %&
line.

-output-directory directory
directory instead of the current directory.  Look up input files in directory first, the along the  nor-
mal search path.

-parse-first-line
If  the  first  line of the main input file begins with %& parse it to look for a dump name or a -trans-
late-file option.

-no-parse-first-line
Disable parsing of the first line of the main input file.

-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.

ENVIRONMENT
See  the Kpathsearch library documentation (the 'Path specifications' node) for the details of how the environ-
ment 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, MetaPost 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  MetaPost
understands.  Defaults: makempx for tex and troffmpx for troff.

TEX    The  version  of  TeX - or LaTeX - to use when processing btex and verbatimtex commands.  Default
tex.  This version of MetaPost 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 Metafont so that mpost can  read  .mf  fonts.   (Plain
Metafont is described in The Metafontbook).

Experts  can create .mem files be invoking inimpost and giving macro definitions followed by a dump com-
mand.

The MetaPost language is similar to Metafont, but the manual A User's Manual  for  MetaPost  assumes  no
knowledge of Metafont.  MetaPost does not have bitmap output commands or Metafont's online display mech-
anism.

FILES
mpost.pool
Encoded text of MetaPost's messages.

*.mem  Predigested MetaPost mem files.

plain.mp
The standard mem file.

mfplain.mp
The Metafont-compatible mem file.  This is loaded when virmp is invoked via a  symbolic  link  as
mfmp.

$TEXMFMAIN/metapost/base/*.mp The standard MetaPost 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 LaTeX document \$TEXMFMAIN/doc/meta-
post/mpintro.tex that describes the MetaPost system in a little more detail.

NOTES
This manual page is not meant to be exhaustive.  The complete documentation for this version of MetaPost
can  be found in the info manual Web2C: A TeX implementation.  See also mpman.pdf, the manual written by
John Hobby (it lives in the documentation directory).

MetaPost is the native graphics language for ConTeXt, a typesetting system built on top of the TeX  fam-
ily.  See texexec(1).

Donald  E.  Knuth,  The Metafontbook (Volume C of Computers and Typesetting), Addison-Wesley, 1986, ISBN
0-201-13445-4.
John D. Hobby, A User's Manual for MetaPost, CSTR 162, AT&T Bell Labs,
John D. Hobby, Drawing Graphs with MetaPost, CSTR 164, AT&T Bell Labs,
TUGboat (the journal of the TeX Users Group).

dvips(1), dvitomp(1), epstopdf(1), mf(1), mpto(1), mptopdf(1), pdftex(1), tex(1), texexec(1).

AUTHORS
MetaPost was designed by John D. Hobby, incorporating algorithms from Metafont by Donald E.  Knuth.   It
was  originally implemented on Unix, incorporating system-dependent routines from web2c, while not rely-
ing on it except for the actual Web-to-C translator.

versions  of  web2c  and worked towards fully integrating MetaPost into the canonical Unix TeX distribu-
tion.  He also updated and extended this manual page.

The current maintainer of MetaPost is Taco Hoekwater.

TRIVIA
Unlike TeX and Metafont, MetaPost originally didn't use any fancy logo.  John Hobby says he prefers  the
spelling  ''MetaPost'',  yet  Don  Knuth  has  updated the Metafont logo.mf font to be able to typeset a
proper MetaPost logo similar to the Metafont logo.  Feel free to use whatever you think is  more  appro-
priate!

MetaPost 0.993                  7 January 2007                        MPOST(1)