DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: R T

⟦c960273bd⟧ TextFile

    Length: 13035 (0x32eb)
    Types: TextFile
    Names: »README.METAFONT«

Derivation

└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89
    └─⟦this⟧ »./tex82/README.METAFONT« 

TextFile

This file is ./README.METAFONT






	This distribution contains the following programs:

	./mfdir/metafont version 1.5

	./mfware/gftodvi  version 1.7 (No change file for WEB-to-C)
	./mfware/gftopk   version 1.4
	./mfware/gftype   version 2.2
	./mfware/pktogf	  version 1.0
	./mfware/pktype   version 2.2
	./mfware/mft      version 0.3 

METAFONT will automatically be made for you when you use the default
WEB-to-C compilation for TeX and type

make all 

The special "trap" version will be made if you type

make [default]

Just as the compilation of TeX really produces two programs "initex" and
"virtex" the compilation of METAFONT really produces "inimf" and "virmf".

The production version is "virmf" which uses ".base" files in the same
way as "virtex" uses ".fmt" files.

\f


The following subdirectories contain utilities and files needed to run 
METAFONT:

	./cmf/trap:
		Contains the TRAP acceptance test for METAFONT 84.  
		The systems listed in README.WEB-to-C have passed this test
		unless otherwise noted.

	./mfware:
	      -	gftype is a program to display the contents of a "GF"
		(Generic Font) file in symbolic form or in bit-map image,
		or both.  It is similar to DVItype for TeX.
	      -	gftopk is a program that takes a GF file (the output from
		METAFONT) and produces a smaller PK (packed) file for use 
		on printers.
	      -	gftodvi is used to produce proof sheets for fonts.  It can
		operate in two modes: producing "normal" proof sheets
		(using a "gray" font to produce a stippled pattern where
		the character is black), or producing "smoke" proofs, which
		are solid black where the character is black.  The characters
		are printed one per page, magnified by however much the gray/
		black fonts expand one pixel (e.g. a 4x4 pattern representing
		one pixel in a gray font will cause the proof sheet to appear
		magnified linearly 4 times in each dimension).  Optionally, 
		normal proof sheets can have labels printed marking the path
		points used to construct the character.  These options are all
		controlled by special directives embedded in the GF file --
		look at plain.mf to see where "special" directives are used.
		The output of gftodvi is a DVI formatted file ready for post-
		processing by for your favorite output device.

	      - pktype and pktogf are analogous to gftype and gftopk.

	      - mft is analogous to weave.  It takes a *.mf source file
		(ofter with a few extra formatting lines) and converts it
		to a formatted *.tex file.  The published mf files in
		Computers and Typesetting, Volume E, The Computer Modern Fonts
		illustrate the effects of this formatting.

		The less said about pxl files the better.  Rather than expend
		effort on conversions to the obsolete psl format, put the 
		effort into making any remaining programs read pk format 
		instead

	./MFtexfiles:
		Contains the file "testfont.tex", used to print font sample
		sheets and display some typical inter-character spacing
		combinations that usually need adjustment when designing 
		fonts.  Also the macro files for the mft formatter which
		can produce typeset versions of mf input files.

	./MFdoc:
		Contains a copy of an older document, "syntax.tex", which
		describes the syntax of the new METAFONT language.  This file
		is out of date with the current implementation, but not
		excessively so to make it obsolete.  A much better document to
		use when learning METAFONT is the METAFONTbook, 
		(ISBN 0-201-13445-4 or ISBN 0-201-13444-6 [soft]) published
		by Addison Wesley, (Reading, Mass./Menlo Park, Calif. 1986).
		To conserve space, almost all the documentation is compressed
		If you don't have the compress utility on your system, see
		the ./compress directory on this distribution.
		
	Nroff/troff source for Unix manual pages is in ./Man-pages.

\f


The font source file directories are ./utilityfonts ./cmfonts ./LaTeXfonts
		and ./amsfonts (actually, this has fonts but no sources).

	./utilityfonts/bases
		Contains the "base" definitions for METAFONT.
	        Includes plain.mf, which is virtually indispensable for all
	        uses of METAFONT.  There are two collections of "mode_def"s
	        waits.mf and U_Wash.mf.  U_Wash.mf includes macros for 
	        mode-specials to record basic mode_def parameters in the 
		gf file.  Waits.mf is the original from Stanford University,
		but it reflects aspects of the SAIL operating system, rather
		than the Unix environment.

		(The PLAIN base is analogous to the PLAIN macro set under
		TeX --- it is a set of low-level definitions that are useful
		for developing fonts, and are described in the METAFONTbook)

	./utilityfonts/*
		Contains the subdirectories, "gray", "black" and "slant."
		These fonts are used by the gftodvi utility to produce font
		proof sheets containing a magnified image (one per page) of
		the characters in a font.  Look in gray.mf to see how to
		tailor it and produce a gray font for your specific output
		devices.
		Additional subdirectories are "logo", "mfbook", "half"
		and "committee."  The "logo" fonts are for the characters
		in the trademarked form of the name METAFONT.  (For the
		cm production files, see ./cmfonts)  The "mfbook"
		directory contains some of the examples from the METAFONTbook.
		The "half" directory provides a font for halftones. 
		The "committee" font is the end product of the font-design
		class held at Stanford in the spring of 1984 (described in
		second issue of Volume 5 (1984) of TUGboat).  It is included
		to be an example of how the new METAFONT language is used.
		It does NOT require the PLAIN base to be loaded --- it has
		its own base (font1base.mf) file to work from, and needs to
		be edited to set it up for a specific output device resolution
		and point size, or to produce proof sheets.

\f


METAFONT Installation Guide.

(SPECIAL NOTE---IF you are running a write-white machine, such as the
     Imagen 24/300 or the DEC LN03, make sure you read README.WRITE-WHITE
     after this.)

Look at the file site.h, and edit it to suit your system, paying particular
attention to the default paths and to the graphics window options.

MFPOOL contains the path to mf.pool which is produced by "tangle" and is
needed only for the execution of inimf.  The tangle program will produce a file
mf.pool, which will be passed from the "mfdir" directory into "cmf"

MFINPUTS is where inimf and virmf expect to find *.mf files.  The basic sets
of these are in directories ./cmfonts/mf and ./LaTeXfonts/mf at the root
level of this distribution.  You will find some others in ./utilityfonts;
notably the special files for gray, black, slant and halftone fonts.  Most 
active users of METAFONT will have special paths in their MFINPUTS environment
variable.
[	Directories:
	./utilityfonts/black
	./utilityfonts/gray
	./utilityfonts/half
	./utilityfonts/slant
]

MFBASES contains the path to *.base files, which are predigested macro files
analogous to the *.fmt files used by TeX.  They are produced when the command
|dump| is issued during a run of inimf.  A site which makes active use of
METAFONT as a design tool should expect to have a number of *.base files
available, far more than the normal two or three *.fmt files which are 
needed for TeX.  You will probably want a separate directory for these, but
they could also share a directory with TEXFORMATS or MFINPUTS.  
[	Directories:
	./utilityfonts/bases
]

\f


Compile inimf and virmf using WEB-to-C (automatic if you "make all")
being sure that you set the #define lines in site.h correctly.  Then
copy the file U_Wash.mf from ./utilityfonts/bases to your own choice
of *.mf name in whatever you have chosen as your primary MFINPUTS
directory.  You should inspect this file to see whether it includes an
output device corresponding with what you will be using--remember that
write-white devices take special care--and if you are lucky in this
respect you can use the file more or less unchanged.  If you have
another device at another resolution, you can usually get a good idea
where to start by looking at the various device-support sections of
U_Wash.mf.  The blacker and fillin values are the most difficult to
set, and you may wish to make several tries at different settings on a
range of magsteps before you decide on the values.  Some well-tested
|mode_def|s can be found in issues of TUGboat, the journal of the TeX
Users Group.  In the following sections we will call this file
device.mf.

You will need a number of short driver files to create the *.base files
for various styles of font generation.  These driver files contain nothing
but a list of input commands.  Give the driver files informational names
and those names will be applied to the resulting base file.  For example:
the file utilityfont.mf could be used to generate the base for gray, black,
and slant fonts for proof sheets, and for the halftone font for your local
device.  The utilityfont.mf driver file will contain only two statements:

input plain
input device
[	Directories:
	./utilityfonts/bases
]

The logofont.mf driver file for producing the METAFONT logo characters
will contain:

input plain
input device
 [	Directories:
	./utilityfonts/bases
	./utilityfonts/logo
]

and the cmplain.mf driver file will contain:

input plain
input device
input cmbase
[	Directories:
	./utilityfonts/bases
	./cmfonts/mf
]

To create a base file such as "cmplain.base", run inimf 
with the command line

% inimf cmplain dump

The resultant file can be used by virmf with the & convention

% virmf '&cmplain'

after which other *.mf files can be input, but the output will in that
case be named mfput.*gf.  To get output named after your first *.mf
driver file (e.g., cmr10.mf --> cmr10.2602gf) you must either
set up a more complete command line.

\f


Running METAFONT
================


A typical command line to produce a font--in this case we shall assume
that one of the logo fonts is wanted--is (the ? stands, in Unix convention,
for any digit):

% logomf '&logoplain \mode=localfont; \mag=magstep?;' input logo10

Notice the backslashes.  These are a METAFONT convention which masks
words such as |mode| that might otherwise be read as the name of
initial input file.  If you use backslashes appropriately, your output
will be named by the name of the first ``input'' file.

NOTE: If you do not supply a mode, or if localfont, or any other name
fails to evaluate to a valid constant, mode will be set to 0 and you
will get proof copy.  Proof copy can be recognized by the gf suffix
specific to proof files .2602gf.  If you see this suffix unexpectedly,
you can be pretty sure that you have specified an invalid mode.

\f



Preloading METAFONT.

On many systems, virmf compiled with WEB-to-C will read in a base
file so fast that there is really no point in incurring the storage
overhead for preloaded versions of METAFONT.  See the discussions
of preloaded TeX in README.WEB-to-C.

A convenient way to make various usable forms of METAFONT easily accessible
is to use something like the following Bourne shell script.

case $0 in
    */mf ) virmf  $*; exit;;
    mf ) virmf $*; exit;;
    */logomf ) virmf '&logoplain' $*; exit;;
    logomf ) virmf '&logoplain' $*; exit;;
    */cmmf ) virmf '&cmplain' $*; exit;;
    cmmf ) virmf '&cmplain' $*; exit;;
esac

If you feel you must preload, and you have a working version of
the "undump" program, you can set up a preloaded "cmmf" and
other versions of METAFONT.  But see "Why won't undump work on
my system" in the basic README file first.

Before you attempt this, please read carefully the instructions for
preloading TeX in ./tex82/README and be sure you understand why the
request for a nonexistent input file is there.  Preloading METAFONT is
managed in the same way.  Following the model there, and using the name 
of whichever base file you have chosen to preload after the &, type:

        % virmf '&cmplain' xyxyxy
        This is METAFONT, C Version 1.5 (no base preloaded)
        ! I can't find file `xyxyxy.mf'.
        <*> &plain xyxyxy
                 
        Please type another input file name: ^\

Wait for the error message and then immediately key in the Unix quit
character, which is usually a ^\.  Reformat the core dump using
undump.  If you have room you can keep several preloaded METAFONTs
around, but they are rather large, particularly if they include a lot
of graphics window support and you will probably not want to do that.
The most generally useful is the one with cmbase preloaded, which can
be distinguished by naming it cmmf.  Run the cmplain driver file
through inimf, then use the resultant base with virmf, and finally run
undump:

% undump cmmf virmf core

to get the preloaded cmmf.  
[	Directories:
	./undump
]

\f


Whether you use undump, or the script, the command line to produce a font is:

% cmmf '\mode=localfont; \mag=magstep?;' input cmr10

This is all you need except a copy of the METAFONTbook if you are
writing for a write-black engine.  If you are writing for a write-white
engine, go on to README.WRITE-WHITE.