|
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.