Comprehensive TeX Archive Network

Direc­tory obsolete/systems/msdos/metapost

MetaPost for MS-DOS

Updated Sept 3, 1996


    MetaPost is a programming language similar to Metafont. However it is
    not used for making fonts, although to a certain extent it can be used
    for that, but to generate Postscript figures. It shares with Metafont
    most of the language features, like: the ability to solve linear
    equations, a powerfull macro language, automatic calculation of Bezier
    control points, and pen-like drawing commands. It also has macro
    libraries for x-y graphing and box figure drawings. Metapost was
    designed and implemented by John Hobby.

    This is metapost 0.631 for MS-DOS. It is compiled from the web2c
    sources, translated to C on a Unix workstation, with some manual
    editing of the C files.  Some empty files like .web and .p files have
    been added with appropriate timestamps to make the makefile happy.
    It has also been patched to accept 8-bit characters in TeX code.

    This version is compiled with GCC (emx) and therefore will only run on a
    80386 or higher. Moreover you must have EMX installed, and if you want to
    run under MS-Windows, also RSX.
    You can find the required files in the emtex distribution on CTAN
    in the file emxrsx.zip.


    1. copy MP.EXE from the MP directory to a place that is in
    your PATH or add this directory to your PATH.

    2. copy the directories MPLIB and MPINPUTS to your hard disk. You may
    choose to copy these to the same directory, by default C:\METAPOST. 

    3. Set the following environment variables if you don't like the
    defaults. The preferred way is to enter the variables in a
    configuration file, and to set only the environment variable
    MPCONFIG to the name of the configuration file, e.g.

    The configuration file can contain the definitions without the
    'SET' command, e.g.

    If you don't specify MPCONFIG, or the file cannot be found,
    Metapost will silently use the values drom the environment. If a
    variable is defined both in the configuration file and in the
    environment, the configuration file value will be used. In fact
    the values in the configuration file will replace the existing
    environment variables, even for variables not mentioned below. In
    this way you can pass on other environment variables e.g. to TeX.
    The configuration file is only read by MP, not by the auxiliary
    programs, they will get the value passed on by MP through the
    environment. There is no check on the contents of the
    configuration file!

    You can have more than one filename, separated by ';' e.g.
    In this case all files will be read (if present), and values in
    later files will override values from earlier files. This is
    mainly meant to override values in local directories.

    TEXFONTS      * The location of the tfm files for TEX
    TEXVFONTS     * virtual font path for TeX
    MFINPUTS      * Metafont input path
    MPINPUTS      * Metapost input path (must contain the directory where
		    you copied MPINPUTS) 
    MPLIB	    The location of directory MPLIB 
    MPXCOMMAND	    The command makempx if you don't want the default
    MPEDITOR	    An editor to be called when metapost finds an error
    MPTEX	    The command to call TeX if it is different from just "tex"
    EMXOPT	    -X may be necessary depending on your XMS usage.


    TEXFONTS		.;c:/emtex/tfm!
    MFINPUTS		.;c:/emtex/mf/macros!
    MPINPUTS		.;c:/metapost!
    MPEDITOR		emacs %s
    TEXVFONTS		c:/emtex/vf!
    MPLIB		c:/metapost
    MPXCOMMAND		see 4. below
    MPTEX		tex
    MPCONFIG		none.

    The environment variables marked with * can have (recursive)
    subdirectory searching by specifying ! or !! at the end of a name.
    ! means one level subdirectory searching, !! means recursive searching.

3.  The MPEDITOR value can have %s for inserting the input filename, %d
    for the line number and %l for the logfile. The filenames will have
    '/' replaced by '\', unless the capitalized versions %S and %L are given.

4.  If MPXCOMMAND is not set, an internal routine will be called which
    essentially does the same as the MAKEMPX.BAT file supplied. If you
    want to try something different you can set MPXCOMMAND to the desired
    command, e.g. set MPXCOMMAND=MAKEMPX.BAT, or you can make your own
    batch file by editing MAKEMPX.BAT.
    The command is called with 2 parameters: the first parameter is
    the input file name (the MP file), the second parameter is the
    name of an MPX file that should be created by the command.
    Metapost supposes that the MPXCOMMAND has successfully completed
    if a new MPX file has been created (i.e. newer than the MP file). In
    case of an error an incomplete MPX file should be deleted or renamed
    (see MAKEMPX.BAT for an example). 
    The supplied command file and the internal routine do nothing if
    there is already an MPX file that is newer than the MP file. If
    this is not appropriate, delete the corresponding test for the
    MAKEMPX.BAT file.

    If you want to try this batch file under MS Windows you may get an
    errormessage "Not enough environment space". To get rid of this
    errormessage you may try a few things:
    - set MPXCOMMAND=%COMSPEC% /e:1500 /c MAKEMPX.BAT The number 1500
      may be increased if necessary. It must be about 100 larger than
      your current environment size.
    - You may set the environment variables from the start of
      MAKEMPX.BAT to some reasonably large values, e.g. set
      MPFILE=C;\DDDDDDDDD\XXXXXXXX.YYY so that enough space is present
      when MAKEMPX.BAT starts.

    If you use the internal routine, the environment variable MPTEX can be
    set to the command to run TeX to a different value, e.g. 
    set MPTEX=tex386 /mt:20000 &plain
    If you use the supplied MAKEMPX.BAT you must be careful to set
    MPTEX=CALL TEX if your TeX command is a batch file!!

    In case something goes wrong with the MPXCOMMAND processing, you can
    prepend a '@' sign to the MPXCOMMAND (or give only @) to enable some
    debugging. It will then print the command(s) that are given, and their
    exit codes.

    If you use 4DOS you may try  makempx.btm as MPXCOMMAND.

    On OS/2 either use the internal command or rename the MAKEMPX.BAT
    file to MAKEMPX.CMD.


    Most filenames can be given with '/' or '\' to separate directory names.
    If the supplied MAKEMPX.BAT file is used as MPXCOMMAND, the
    directories in MPLIB must be separated by '\' (unless you have a
    command processor that allows '/' in filenames).

    However, the filename that is given as parameter to the MP command
    should not start with '\', as that signals MP that a command is given
    rather than a filename. You can, however, call it as: MP \input \filename.

    Depending on your memory management setup MP may run out of memory with the
    standard setup. It appears that setting EMXOPT=-X corrects this. I don't
    know much about this (and I don't wanna know), but maybe this can also be
    done with emxbind on mp.exe.


    There is no troff support.
    There is no separate INIMP. Just call MP -I to get INIMP.

    NOTE that this is an experimental setup. No guarantees. You can ask
    questions, submit bug reports or just chat at the address below,
    however. Good luck!!

Piet van Oostrum
email: piet@cs.ruu.nl
Guest Book Sitemap Contact Contact Author