diff options
Diffstat (limited to 'Build/source/texk/web2c/man/mf.man')
-rw-r--r-- | Build/source/texk/web2c/man/mf.man | 501 |
1 files changed, 501 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/man/mf.man b/Build/source/texk/web2c/man/mf.man new file mode 100644 index 00000000000..f535a37252c --- /dev/null +++ b/Build/source/texk/web2c/man/mf.man @@ -0,0 +1,501 @@ +.\" t +.TH MF 1 "10 November 2001" "Web2C @VERSION@" +.\"===================================================================== +.if n .ds MF Metafont +.if t .ds MF M\s-2ETAFONT\s0 +.if t .ds TX \fRT\\h'-0.1667m'\\v'0.20v'E\\v'-0.20v'\\h'-0.125m'X\fP +.if n .ds TX TeX +.ie t .ds OX \fIT\v'+0.25m'E\v'-0.25m'X\fP for troff +.el .ds OX TeX for nroff +.\" the same but obliqued +.\" BX definition must follow TX so BX can use TX +.if t .ds BX \fRB\s-2IB\s0\fP\*(TX +.if n .ds BX BibTeX +.\" LX definition must follow TX so LX can use TX +.if t .ds LX \fRL\\h'-0.36m'\\v'-0.15v'\s-2A\s0\\h'-0.15m'\\v'0.15v'\fP\*(TX +.if n .ds LX LaTeX +.if n .ds WB Web +.if t .ds WB W\s-2EB\s0 +.\"===================================================================== +.SH NAME +mf, mf-nowin, inimf, virmf \- Metafont, a language for font and logo design +.SH SYNOPSIS +.B mf +.RI [ options ] +.RI [ commands ] +.\"===================================================================== +.SH DESCRIPTION +\*(MF reads the program in the specified files +and outputs font rasters (in +.I gf +format) and font metrics (in +.I tfm +format). The \*(MF +language is described in +.IR "The \*(MF\^book" . +.PP +Like +\*(TX, \*(MF +is normally used with a large body of precompiled macros, and font generation +in particular requires the support of several macro files. This +version of \*(MF looks at its command line to see what name it was +called under. Both +.B inimf +and +.B virmf +are symlinks to the +.B mf +executable. When called as +.BR inimf +(or when the +.B -ini +option is given) it can be used to precompile macros into a +.I .base +file. When called as +.B virmf +it will use the +.I plain +base. When called under any other name, \*(MF will use that name as +the name of the base to use. For example, when called as +.B mf +the +.I mf +base is used, which is identical to the +.I plain +base. Other bases than +.I plain +are rarely used. +.PP +The +.I commands +given on the command line to the \*(MF program are passed to it as the +first input line. (But it is often easier to type extended arguments +as the first input line, since UNIX shells tend to gobble up or +misinterpret \*(MF's favorite symbols, like semicolons, unless you +quote them.) As described in +.IR "The \*(MF\^book" , +that first line should begin with a filename, a +.RI \e controlsequence , +or a +.IR &basename . +.PP +The normal usage is to say +.IP +\fBmf\ \fP '\\\|mode=<printengine>\^;\^ [\^mag=magstep(\fI\^n\fP\^)\^;\^]' input\ \^\fI font \fP +.PP +to start processing +.IR font.mf . +The single quotes are the best way of keeping the Unix +shell from misinterpreting the semicolons and +from removing the \\ character, which is needed here to +keep \*(MF from thinking that you want to produce a font called +.IR mode . +(Or you can just say +.I mf +and give the other stuff on the next line, without quotes.) Other +control sequences, such as +.I batchmode +(for silent operation) can also appear. +The name +.I font +will be the ``jobname'', and is used in forming +output file names. +If \*(MF doesn't get a file name in the first line, +the jobname is +.IR mfput . +The default extension, +.IR .mf , +can be overridden by specifying an extension explicitly. +.PP +A log of error messages goes into the file \fIjobname\fP\fB\^.\^\fP\fIlog\fP. +The output files are \fIjobname\fP\fB\^.\^\fP\fItfm\fP and +\fIjobname\fP\fB\^.\^\fP\fI<\fP\^number\^\fI>gf\fP, where <number> depends on +the resolution and magnification of the font. The +.I mode +in this +example is shown generically as <printengine>, a symbolic term for which +the name of an actual device or, most commonly, the name +.I localfont +(see below) must +be substituted. If the mode is not specified or is not valid for your +site, \*(MF will default to +.I proof +mode which produces +large character images for use in font design and refinement. Proof +mode can be recognized by the suffix +.I .2602gf +after the jobname. Examples of proof mode output can be found +in +.I "Computer Modern Typefaces" +(Volume E of +.IR "Computers and Typesetting" ). +The system of +.I magsteps +is identical to the system used by +\*(TX, +with values generally in the range 0.5, 1.0, 2.0, 3.0, 4.0 and 5.0. +A listing of +.I gf +numbers for 118-dpi, 240-dpi and 300-dpi fonts +is shown below. +.TS +tab(:); +c c c c +l l l l. +MAGSTEP:118 dpi:240 dpi:300 dpi +mag=magstep(0):118:240:300 +mag=magstep(0.5):129:263:329 +mag=magstep(1):142:288:360 +mag=magstep(2):170:346:432 +mag=magstep(3):204:415:518 +mag=magstep(4):245:498:622 +mag=magstep(5):294:597:746 +.TE +.PP +Magnification can also be specified not as a magstep but as an +arbitrary value, such as 1.315, to create special character sizes. +.PP +Before font production can begin, it is necessary to set up the +appropriate base files. The minimum set of components for font +production for a given print-engine is the +.I plain.mf +macro file +and the local +.I mode_def +file. The macros in +.I plain.mf +can be +studied in an appendix to the +.IR "\*(MF\^book" ; +they were developed by Donald E. Knuth, and this file should never be +altered except when it is officially upgraded. +Each +.I mode_def +specification helps adapt fonts to a particular print-engine. +There is a regular discussion of +.IR mode_def s +in +.IR TUGboat , +the journal of the +\*(TX +Users Group. +The local ones in use on this computer should be in +.IR modes.mf . +.PP +The +.I e +response to \*(MF\|'s error-recovery mode invokes the +system default +editor at the erroneous line of the source file. +There is an environment variable, MFEDIT, +that overrides the default editor. +It should contain a string with "%s" indicating where the +filename goes and "%d" indicating where the decimal linenumber (if any) goes. +For example, an MFEDIT string for the +.B vi +editor can be set with the +.B csh +command +.RS +\fIsetenv MFEDIT "vi +%d %s"\fP +.RE +.PP +A convenient file in the library is +.IR null.mf , +containing nothing. +When +.B mf +can't find the file it thinks you want to input, it keeps +asking you for another file name; responding `null' gets you out +of the loop if you don't want to input anything. +.\"===================================================================== +.SH "ONLINE GRAPHICS OUTPUT" +\*(MF can use most modern displays, so you can see its output +without printing. Chapter 23 of +.I "The \*(MF\^book" +describes what you can do. This implementation of \*(MF uses +environment variables to determine which display device you want to use. +First it looks for a variable MFTERM, and then for TERM. +If it can't find either, you get no online output. Otherwise, the value +of the variable determines the device to use: +.BR hp2627 , +.B sun +(for old SunView), +.BR tek , +.B uniterm +(for an Atari ST Tek 4014 emulator), +.B xterm +(for either X10 or X11). +Some of these devices may not be supported in all \*(MF +executables; the choice is made at compilation time. +.PP +On some systems, there are two \*(MF binaries, +.B mf +and +.BR mf-nowin . +On those systems the +.B mf +binary supports graphics, while the +.B mf-nowin +binary does not. The +.B mf-nowin +binary is used by scripts like +.B mktexpk +where graphics support is a nuisance rather than something helpful. +.\"===================================================================== +.SH OPTIONS +This version of \*(MF understands the following command line options. +.TP +.BI -base \ base +.rb +Use +.I base +as the name of the base to be used, instead of the name by which +\*(MF was called or a +.I %& +line. +.TP +.B -file-line-error +.rb +Print error messages in the form +.I file:line:error +which is similar to the way many compilers format them. +.TP +.B -no-file-line-error +.rb +Disable printing error messages in the +.I file:line:error +style. +.TP +.B -file-line-error-style +.rb +This is the old name of the +.B -file-line-error +option. +.TP +.B -halt-on-error +.rb +Exit with an error code when an error is encountered during processing. +.TP +.B -help +.rb +Print help message and exit. +.TP +.B -ini +.rb +Be +.BR inimf , +for dumping bases; this is implicitly true if the program is called +as +.BR inimf . +.TP +.BI -interaction \ mode +.rb +Sets the interaction mode. The mode can be one of +.IR batchmode , +.IR nonstopmode , +.IR scrollmode , +and +.IR errorstopmode . +The meaning of these modes is the same as that of the corresponding +commands. +.TP +.BI -jobname \ name +.rb +Use +.I name +for the job name, instead of deriving it from the name of the input file. +.TP +.BI -kpathsea-debug \ bitmask +.rb +Sets path searching debugging flags according to the bitmask. See the +.I Kpathsea +manual for details. +.TP +.BI -maketex \ fmt +.rb +Enable +.RI mktex fmt , +where +.I fmt +must be +.IR mf . +.TP +.BI -no-maketex \ fmt +.rb +Disable +.RI mktex fmt , +where +.I fmt +must be +.IR mf . +.TP +.BI -output-directory \ directory +.rb Write output files in +.I directory +instead of the current directory. Look up input files in +.I directory +first, the along the normal search path. +.TP +.B -parse-first-line +.rb +If the first line of the main input file begins with +.I %& +parse it to look for a dump name or a +.B -translate-file +option. +.TP +.B -no-parse-first-line +.rb +Disable parsing of the first line of the main input file. +.TP +.BI -progname \ name +.rb +Pretend to be program +.IR name . +This affects both the format used and the search paths. +.TP +.B -recorder +.rb +Enable the filename recorder. This leaves a trace of the files opened +for input and output in a file with extension +.IR .fls . +.TP +.BI -translate-file \ tcxname +.rb +Use the +.I tcxname +translation table. +.TP +.B -version +.rb +Print version information and exit. +.\"===================================================================== +.SH ENVIRONMENT +See the Kpathsearch library documentation (the `Path specifications' +node) for the details of how the environment variables are use when +searching. The +.B kpsewhich +utility can be used to query the values of the variables. +.PP +If the environment variable +TEXMFOUTPUT is set, \*(MF attempts to put its output +files in it, if they cannot be put in the current directory. Again, see +.BR tex (1). +.TP +MFINPUTS +Search path for +.I input +and +.I openin +files. +.TP +MFEDIT +Command template for switching to editor. +.TP +MFTERM +Determines the online graphics display. If MFTERM is not set, +and DISPLAY is set, the Metafont window support for X is used. +(DISPLAY must be set to a valid X server specification, as usual.) +If neither MFTERM nor DISPLAY is set, TERM is used to guess the window +support to use. +.\"===================================================================== +.SH "FONT UTILITIES" +A number of utility programs are available. +The following is a partial list of available utilities and their purpose. +Consult your local \*(MF guru for details. +.br +.TP \w'gftodvi'u+2n +.B gftopk +Takes a +.I gf +file and produces a more tightly packed +.I pk +font file. +.TP +.B gftodvi +Produces proof sheets for fonts. +.TP +.B gftype +Displays the contents of a +.I gf +file in mnemonics and/or images. +.TP +.B pktype +Mnemonically displays the contents of a +.I pk +file. +.TP +.B mft +Formats a source file as shown in +.IR "Computer Modern Typefaces" . +.\"===================================================================== +.SH "FILES" +.TP +.I "mf.pool" +Encoded text of \*(MF's messages. +.TP +.I *.base +Predigested \*(MF base files. +.TP +.I $TEXMFMAIN/metafont/base/plain.mf +The standard base. +.TP +.I $TEXMFMAIN/metafont/misc/modes.mf +The file of +.IR mode_def s +for your site's various printers +.\"===================================================================== +.SH NOTES +This manual page is not meant to be exhaustive. The complete +documentation for this version of \*(MF can be found in the info manual +.IR "Web2C: A TeX implementation" . +.\"===================================================================== +.SH BUGS +On January 4, 1986 the ``final'' bug in \*(MF was discovered +and removed. If an error still lurks in the code, Donald E. Knuth promises to +pay a finder's fee which doubles every year to the first person who finds +it. Happy hunting. +.\"===================================================================== +.SH "SUGGESTED READING" +Donald E. Knuth, +.I "The \*(MF\^book" +(Volume C of +.IR "Computers and Typesetting" ), +Addison-Wesley, 1986, ISBN 0-201-13445-4. +.br +Donald E. Knuth, +.I "\*(MF:\^ The Program" +(Volume D of +.IR "Computers and Typesetting" ), +Addison-Wesley, 1986, ISBN 0-201-13438-1. +.br +Donald E. Knuth, +.I Computer Modern Typefaces +(Volume E of +.IR "Computers and Typesetting" ), +Addison-Wesley, 1986, ISBN 0-201-13446-2. +.br +.I TUGboat +(the journal of the \*(TX Users Group). +.\"===================================================================== +.SH COMMENTS +Warning: ``Type design can be hazardous to your other interests. +Once you get hooked, you will develop intense feelings about letterforms; +the medium will intrude on the messages that you read. +And you will perpetually be thinking of improvements to the fonts that +you see everywhere, especially those of your own design.'' +.\"===================================================================== +.SH "SEE ALSO" +.BR gftopk (1), +.BR gftodvi (1), +.BR gftype (1), +.BR mft (1), +.BR pltotf (1), +.BR tftopl (1). +.\"===================================================================== +.SH AUTHORS +\*(MF was designed by Donald E. Knuth, who implemented it +using his \*(WB system for Pascal programs. It was originally +ported to Unix by Paul Richards at the University of Illinois at +Urbana-Champaign. This page was mostly written by Pierre MacKay. |