		METAFILE 2D Vector Graphics

			by Greg Ward
		Lawrence Berkeley Laboratory

This was one of my first serious undertakings as a C graphics hacker,
and it's primary purpose is to print decent quality graphics on a dot
matrix printer from a machine with only 64K of memory.  I tell you
this because it explains a lot of weird stuff you may notice.  I am
being very humble to let anyone even look at this code, so please
don't sue me.  If you do, I will disclaim any knowledge of the
programs, LBL, you, me, or anything else.  I will disappear.

First off, what is a metafile?  A metafile is a now largely abandoned
term for a file containing graphics primitives that are not designated
for a specific device.  You may have heard of DVI from ditroff -- this
is a metafile for formatted text.  The UNIX plot routines also use their
own simple metafile format.

The metafile used by these programs is distinguished by the relative
independence of its graphics primitives.  This permits the page to
be sorted in any order required for output, typically top to bottom
for most dot matrix printers, and the output driver does not have
to store a bitmap of the entire raster in memory.  Who even cares
anymore since todays machines typically have more memory now than
they had disk space when these programs were written?

However, the metafile format still has one big advantage, which is
device independence.  There are output drivers for PostScript printers,
Imagen (imPress) printers, Tektronix 4014 graphics, X, and of course,
Epson printers.  This metafile is also rich in its description of text
and segments so the results are decent on all of these devices.  Best
of all, you can easily write a new driver by supporting just a few
primitives.  The dot matrix drivers know only how to draw lines,
calling pexpand to change everything into lines and psort to put them
in the desired order.  The postscript driver, on the other hand, knows
how to do everything and it also produces the nicest output.

To install the programs, go to the src directory and set the compiler
options to your liking.  Then, type make and go have a cup of joe.
When make finishes, you can copy the binaries and manual pages to your
favorite location, or print them out using the -man macro package, and
copy or move the lib directory to some suitable location.  If you put
these files someplace besides /usr/local/lib/meta, you will have to set
the MDIR environment variable in your .login file to the chosen
directory.  For UNIX systems, the variable must end with a slash, ie:

	setenv MDIR /my/metafile/library/location/

Good luck!
-Greg
