mpost
| Chapter 6. Programs |

## Name

mpost — MetaPost, a system for drawing pictures

## Synopsis

`mpost` [`option`...] [[`command`...] | [`file`]]

## Description

MetaPost (installed as mpost) reads a series of pictures specified in the MetaPost programming language, and outputs corresponding PostScript code.

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 aliases for the mpost executable. When called as inimpost (or when the `--initialize` 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 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 `&`basename``.

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.

## Options

`--alias=`app``

  Pretend to be `app`, i.e., set program (and memory dump) name to `app`. This may affect the search paths and other values used. Using this option is equivalent to copying the executable file to ``app`.exe` and invoking ``app`.exe`.

`--aux-directory=`dir``

  Set the directory `dir` to which auxiliary files are written. Also look for input files in `dir` first, before along the normal search path.

`--c-style-errors`

  Change the way, error messages are printed. The alternate style looks like error messages from many compilers and is easier to parse for some editors. This option implies \scrollmode.

`--disable-installer`

  Disable automatic installation of missing packages. Specifying this option overwrites the global configuration setting in MiKTeX Options (see the section called “Automatic Package Installation”).

`--disable-pipes`

  Disable input (output) from (to) child processes.

`--dont-parse-first-line`

  Disable checking whether the first line of the main input file starts with %&.

`--enable-installer`

  Enable automatic installation of missing packages. Specifying this option overwrites the global configuration setting in MiKTeX Options (see the section called “Automatic Package Installation”).

`--enable-pipes`

  Enable input (output) from (to) child processes.

`--halt-on-error`

  Quit after the first error.

`--help`

  Give help and exit.

`--hhelp`

  This option is only available on Windows systems: show the manual page in an HTML Help window and exit when the window is closed.

`--include-directory=`dir``

  Prefix `dir` to the search path.

`--initialize`

  Become the INI variant of the compiler.

`--interaction=`mode``

  Set the interaction mode. Must be one of `batchmode`, `nonstopmode`, `scrollmode` and `errorstopmode`. The meaning of these modes is the same as the corresponding commands.

`--job-name=`name``

  Set the name of the job (\jobname. This has an affect on the output file names.

`--job-time=`file``

  Set the time-stamp of all output files equal to `file`'s time-stamp.

`--no-c-style-errors`

  Don't change the way, error messages are printed.

`--output-directory=`dir``

  Create output files in `dir`. This implies `--include-directory=`dir``.

`--parse-first-line`

  Check whether the first line of the main input file starts with %&, and parse if it does. This can be used to specify extra command-line options.

`--quiet`

  Suppress all output, except errors.

`--record-package-usages=`file``

  Record all package usages and write them into `file`.

`--recorder`

  Enable the file name recorder. This leaves a trace of the files opened for input and output in a file with the extension `.fls`.

`--tcx=`name``

  Process the TCX table `name`.

`-tex=`texprogram``

  Use `texprogram` instead of tex when compiling text labels.

  This flag overrides the environment variable `TEX`.

`--time-statistics`

  Show processing time statistics.

`--trace[=`tracestreams`]`

  Enable trace messages. The `tracestreams` argument, if speciefied, is a comma-separated list of trace stream names (Chapter 9, Trace Streams).

`--undump=`name``

  Use `name` as the name of the format to be used, instead of the name by which the program was called or a

      %&

  line.

`--version`

  Show version information and exit.

## Environment

`MFINPUTS`

  Extra paths to locate METAFONT input and openin files.

`MPINPUTS`

  Extra paths to locate MetaPost input files.

## See also

AT&T technical report CSTR-162

  Run `mthelp mpman`

mpm |  | mthelp