# mpost


MPOST(1)                                                              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 pic-
tures.  The MetaPost language is similar to Knuthâ€™s Metafont with addi-
tional features for including tex(1) or troff(1) commands and accessing

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
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, 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 â€˜â€˜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 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
\begin{document} commands.  You can use the  â€˜%&â€™  construct  in
the  first verbatimtex block to ensure that the correct TeX for-
mat 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
output that can be used directly or included in a troff document, start
your MetaPost input file with the command  prologues:=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  simi-
lar 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 pro-
cessing.

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

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 normal 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 -translate-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 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, MetaPost attempts to
put its output files in it, if they cannot be put in the current direc-
tory.

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

MPSUPPORT
Directory  for  various  tables for handling included tex
and troff.

MPXCOMMAND
The name of a shell script that converts  embedded  type-
setting  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 ver-
sion of MetaPost allows you  to  use  a  â€˜%&formatâ€™  line

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

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



## 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/metapost/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.



       Donald  E.  Knuth,  The  Metafontbook (Volume C of Computers and
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).



       tex(1), mf(1), dvips(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 relying on it except for the actual Web-to-C transla-
tor.

worked towards fully integrating  MetaPost  into  the  canonical
Unix TeX distribution.  He also updated and extended this manual
page.



## TRIVIA

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

Web2C 7.5.4                    10 November 2001                       MPOST(1)


Man(1) output converted with man2html