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

⟦9f247cd75⟧ TextFile

    Length: 19471 (0x4c0f)
    Types: TextFile
    Names: »README.METAFONT«

Derivation

└─⟦52210d11f⟧ Bits:30007239 EUUGD2: TeX 3 1992-12
    └─⟦c319c2751⟧ »unix3.0/TeX3.0.tar.Z« 
        └─⟦036c765ac⟧ 
            └─⟦this⟧ »TeX3.0/README.METAFONT« 

TextFile


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.