|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: R T
Length: 13035 (0x32eb)
Types: TextFile
Names: »README.METAFONT«
└─⟦060c9c824⟧ Bits:30007080 DKUUG TeX 2/12/89
└─⟦this⟧ »./tex82/README.METAFONT«
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.