|
|
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: 19471 (0x4c0f)
Types: TextFile
Names: »README.METAFONT«
└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
└─⟦c319c2751⟧ »unix3.0/TeX3.0.tar.Z«
└─⟦036c765ac⟧
└─⟦this⟧ »TeX3.0/README.METAFONT«
This file is ./README.METAFONT
This distribution contains the following programs:
./TeX3.0/mf/metafont version 2.0
./TeX3.0/mfware/gftodvi version 3.0
./TeX3.0/mfware/gftopk version 2.2
./TeX3.0/mfware/gftype version 3.0
./TeX3.0/mfware/mft version 2.0
./TeX3.0/fontutil/pktogf version 1.0
./TeX3.0/fontutil/pktype version 2.2
They will automatically be made for you when you use the default
WEB-to-C compilation for TeX.
Just as the compilation of TeX produces two programs "initex" and
"virtex," the compilation of METAFONT produces "inimf" and "virmf."
The "inimf" program is used for precompiling macros to be dumped into a
".base" file, which will be read by "virmf" for font production.
\f
The following subdirectories of ./TeX3.0 contain utilities and files
needed to run METAFONT:
./mf:
Contains the WEB source for METAFONT, and its changefiles.
./mf/MFtrap:
Contains the TRAP acceptance test for METAFONT.
The systems listed in ./TeX3.0/MACHINES have passed
this test unless otherwise noted (also see the file
./TeX3.0/PROBLEMS).
./mf/MFwindow:
Contains Metafont window support programs for x10,
x11, Tektronix, HP2627, and Sun windows.
./mfware:
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 your favorite output device.
gftopk is a program that takes a GF file (the output from
METAFONT) and produces a smaller PK (packed) file
for use on printers and previewers.
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 can be used to validate a GF
font file, for if gftype can read the file, the font
file is not corrupt. It is similar to DVItype for
TeX.
mft is analogous to weave. It takes a *.mf source file
(often 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.
./fontutil
pktype is analogous to gftype. It translates a PK font file
to a file that humans can read. It can also be used
to validate a PK font file, for if pktype can read it,
it is not corrupt.
pktogf is analogous to gftopk. It takes a font file in PK
format and converts it into a GF font file.
The less said about pxl files the better.
Rather than expend effort on conversions
to the obsolete pxl 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. To conserve space, almost all the
documentation is compressed. If you do not have
the compress utility on your system, see the ./compress
directory on this distribution.
./Man-pages:
Nroff/troff source for Unix manual pages.
\f
The font source file directories are:
./utilityfonts
./cmfonts
./LaTeXfonts
./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. (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.)
There are two collections of "mode_def"s:
U_Wash.mf and waits.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.
./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 the second issue of Volume 5
[1984] of TUGboat). It is included to be an example
of how the METAFONT84 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:
============================
Be sure to read the man-page on METAFONT (./TeX3.0/Man-page/mf.1).
---------------------------------------------------
NOTE: If you are running a write-white machine,
such as the Imagen 24/300 or the DEC LN03,
be sure to read ./TeX3.0/README.WRITE-WHITE.
---------------------------------------------------
1. If you have done the default compilation, following the
instructions for making TeX in ./TeX3.0/README, go to Step 6.
If not, place yourself in the directory ./TeX3.0, and edit
the file site.h to suit your system. Pay particular attention
to the following search-path definitions for METAFONT:
#define MFINPUTS ".:/usr/local/lib/mf/inputs"
#define MFBASES ".:/usr/local/lib/mf/bases"
#define MFPOOL ".:/usr/local/lib/mf"
Note that these paths are advisory, not absolute, for
we cannot dictate the organization of your /usr partition.
(If you substitute the C-shell "setenv" command for "#define"
you can ensure that your environment matches your decisions here,
and you can "set" and "export" these equivalences in the Bourne shell.)
Whatever changes you make in the paths, it is advisable to retain
the dot preceding the colon so that TeX and METAFONT will always
search your current directory first.
Be sure to attend to the METAFONT graphics window options.
2. Edit the master makefile:
Be sure to define your C compiler correctly. If you are not using
gcc, and if you prefer, you could define your C compiler at the same
time that you give your "make" command, by typing
% make CC="cc"
(The "%" is presumed to be your C-shell prompt. It will probably
be "$" if you are in the Bourne shell. The example assumes that you
are using cc.)
Be sure to give the necessary values to wlibs= for METAFONT window
support. For example, if you are running SunView, modify the line
to read wlibs=$(sunlib).
Check the paths following "INSTALL=cp" for bindir, mfpooldir, and
basedir. They should match with your search-path definitions in
site.h.
Comment out the line (place a "#" sign in front of it) that defines
all the directories to be made, and add the following line to the file:
alldirs=web mf mfware fontutil
This assumes that you wish to make all the programs mentioned
at the beginning of this README file.
Finally, after the target "install," comment out the lines
that do not refer to the "alldirs" directories you defined above.
3. Prepare the areas for compilation:
a. Make a directory named /usr/local/lib/mf (or whatever
you defined in site.h as your MFPOOL environment).
MFPOOL defines the path to the file "mf.pool"
which is needed for the execution of inimf.
b. Make a subdirectory called /usr/local/lib/mf/bases
(or whatever you defined as your MFBASES environment).
MFBASES defines the path to the *.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 needed
for TeX.
c. Make a subdirectory called /usr/local/lib/mf/inputs
(or whatever you defined as your MFINPUTS environment).
MFINPUTS is where inimf and virmf will expect
to find *.mf files.
Most active users of METAFONT (that is to say,
those who are using the program for the designing
of fonts) are likely to have special paths in their
MFINPUTS environment variable.
4. Look at the script Install_INPUTS, and edit it--if
necessary--to suit your site. What you wish to have done by
running this script is the following:
To have the contents of ../cmfonts/mf copied into your
MFINPUTS directory.
To have the contents of ../LaTeXfonts/mf copied into
this directory if you are a LaTeX user, or if you wish
to print a copy of the manual for the PostScript driver
(in ./DVIware/laser-setters/dvi-to-ps/TeXPS).
To have the contents of ../utilityfonts/bases copied
into this directory.
To have the other *.mf files in ../utilityfonts--
notably the special files in the subdirectories for
black, gray, half (i.e., halftone), and the slant fonts
--copied into your MFINPUTS directory.
If you wish to render inactive the lines not necessary for
the installation of these files, place a hash mark (#) in
front of the unnecessary lines. Run the script by typing
its name at your prompt.
5. In the directory ./TeX3.0, type
% make
followed by
% make install
followed by
% rehash
or whatever you must do to make the newly installed programs
available to you.
6. Go to your primary MFINPUTS directory.
Copy the file U_Wash.mf to your own choice of *.mf name
(in the following discussion, we shall call this file
<SITE>-modes.mf).
Inspect this file to see that it includes a definition for a mode
(i.e., a mode-def) for an output device corresponding to the
device on which you will be generating fonts.
For example: if you have an Apple LaserWriter,
you will need a mode-def for its Canon CX engine.
Also check to see that "localfont:=" at line 193 names the mode
for your device. If you are lucky in this respect, you will be
able to use the file more or less unchanged.
Remember that write-white devices take special care.
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 this file. 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. (To learn
more about mode-defs, see The METAFONTbook.)
If nothing in this file suits your site, know that several
well-tested |mode_def|s can be found in issues of TUGboat,
the journal of the TeX Users Group.
7. You will now need a number of short driver files to create the
*.base files for various styles of font generation.
Write these driver files in your MFINPUTS directory.
They should contain nothing but a list of input commands.
They should be given informational names which will be applied to
the resulting base file.
For example: with the aim of generating Computer Modern
fonts, you might write a driver file called cmmf.mf, which
will be used by inimf to make the cmmf.base file (which will
then be used by virmf for the generation of Computer Modern
fonts). The cmmf.mf driver file should contain only the
following three lines:
input plain
input <SITE>-modes
input cmbase
Another example: a driver file called mf.mf could be
used to generate the base for the various utilityfonts--
gray, black, and slant fonts for proof sheets, and for the
halftone font for your local device. The mf.mf driver file
should contain only two statements:
input plain
input <SITE>-modes
The same driver file could be used to produce the METAFONT
logo characters. This is also the driver file you would
use for the production of line and circle fonts for LaTeX.
If you have not already done so, you really should take
the time now to read ./TeX3.0/Man-pages/mf.1
8. Change to your MFBASES directory, to dump your *.base files.
To make the cmmf.base file, type
% inimf cmmf dump
To make the mf.base file, type
% inimf mf dump
9. Go to your BINDIR and hard link virmf to the names cmmf and mf.
Type
% rehash
or do whatever is necessary to make cmmf and mf available to you.
You are now ready to run METAFONT--either as cmmf to generate
Computer Modern fonts, or as mf for any number of other fonts.
\f
Running METAFONT
================
To keep the discussion brief, we shall focus solely on the steps
necessary to generate Computer Modern fonts.
Begin with the following command line:
% cmmf '\mode=localfont; \mag=magstep?;' input cm*?
Since cmmf is linked to virmf, you are here actually
invoking the production version of METAFONT called virmf.
The new version of METAFONT looks at the name under which
it was invoked--in this instance, "cmmf." It then adds the
suffix ".base" to it, and loads the right base file for
you--in this instance, cmmf.base.
Thus, with the advent of METAFONT 2.0, you no longer need
to type something like "virmf '&cmmf'" to get virmf to load
the base file which inimf had dumped from your cmmf.mf
driver file. That driver file was the one you wrote with
three input lines calling for the plain.mf file, your
<SITE>-modes.mf file, and the cmbase.mf file. You need
only type "cmmf," and the production version of METAFONT
for the making of Computer Modern fonts is invoked.
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.
Recall that "localfont" was defined by you at line 193 of
your <SITE>-modes.mf file. It tells METAFONT which mode-def
to use for the generation of these fonts.
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.
"magstep" is the magnification at which you want your font to
be generated. The ? stands for any digit. For example, 2,
if you wish to generate a certain typeface at magstep 2.
"input" is, in this case, one of the Computer Modern source
files (i.e., one of the cm*?.mf files in your MFINPUTS
directory). The * stands for any number of letters (for
example, r or bx or mib) which will define the basic name of
the typeface you wish to generate--cmr, cmbx, cmmib, etc.
The ? stand for any number of digits (for example, 5, 8, or
10) which will complete the name of the typeface you wish to
generate--cmr5, cmbx8, cmmib10, etc.
Say that you have a printer that uses 300 dpi fonts in pk format.
And say that you have a TeX file calling for the Computer Modern font
called cmbx12 at magstep 1. When you check your pk fonts directory,
you will discover that the only cmbx12 rastered font you have (for
reasons given in the primary README file, ./TeX3.0/README) is
cmbx12.300pk--i.e., cmbx12 at magstep 0. What you need in order to
print your document is the rastered font cmbx12.360pk. The command
line for generating that font in gf format (always the output of
METAFONT) is
% cmmf '\mode=localfont; \mag=magstep1;' input cmbx12
To convert cmbx12.360gf to pk format, use the mfware utility gftopk
% gftopk cmbx12.360gf
If you have an environment for which you wish to make a full set of
fonts for LaTeX, be sure to see the makefiles in ../LaTeXfonts/gf.
To convert the gf output to pk format, see the scripts in ../LaTeXfonts/pk.
We recommend testing a newly generated font before placing it in its
home directory.
* * * * * * * *
Enjoy METAFONT!
* * * * * * * *
To experience all the joys of METAFONT,
be sure to get a copy of The METAFONTbook.