summaryrefslogtreecommitdiff
path: root/fonts/utilities/mff-29/mff.1
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/utilities/mff-29/mff.1')
-rw-r--r--fonts/utilities/mff-29/mff.1950
1 files changed, 950 insertions, 0 deletions
diff --git a/fonts/utilities/mff-29/mff.1 b/fonts/utilities/mff-29/mff.1
new file mode 100644
index 0000000000..8b51df5073
--- /dev/null
+++ b/fonts/utilities/mff-29/mff.1
@@ -0,0 +1,950 @@
+.TH MFF 1 "pdc Mon. 2 Dec. 1991" "mff 2.8.2" "CONTRIBUTED PROGRAMS"
+.SH NAME
+mff \- run METAFONT and GFtoPK to create members of TeX font families
+(formerly called mfjob)
+.SH SYNOPSIS
+.\"
+.\" mff.1 - manual page for mff - pdc Fri. 28 Sept. 1990
+.\" Copyright (C) 1990-1991 Damian Cugley
+.\" See file COPYING in the mff source for info on making copies.
+.\"
+.ds RC /mclab/pdc/lib
+.ds MJ /mclab/pdc/src/mff
+. \" **FIXME**
+. \" comment out above 2 lines and insert appropriate definitions
+. \" RC should the the the directory the system RC file is in
+. \" MJ should be the directory mff source is in
+.ie n \{\
+. ds Te TeX
+. ds gf GFtoPK
+. ds mf METAFONT\}
+.el \{\
+. ds Te T\v|0.25m|\h|-0.1m|E\v|-0.25m|X
+. ds gf \s-1GF\s0to\s-1PK\s0
+. ds mf \s-1METAFONT\s0\}
+.na
+.B mff
+[
+.B \-nvRS
+|
+.B \-MGTP
+.IR template
+|
+.B \-WCIJ
+.IB string = mftext
+.if n .RS
+|
+.B \-Z
+.IB dpi = modename
+.if t .RS
+|
+.B \-eE
+.IR mftext
+.if n .br
+|
+.B \-x
+|
+.B \-k
+.I factor(s)
+|
+.B \-p
+.I suffix
+.if n .br
+|
+.B \-a
+.I atsize(s)
+|
+.B \-s
+.I factor(s)
+|
+.B \-m
+.I magstep(s)
+.if n .br
+|
+.B \-wcij
+.I mftext
+|
+.B \-z
+.I modename
+|
+.B \-d
+.I dpi(s)
+|
+.B \-f
+.I file
+.if n .br
+|
+.B \-D
+|
+.I font
+].\|.\|.
+.RE
+.LP
+.B mff
+.B \-V
+|
+.B \-h
+.SH CONTENTS
+.TP
+.SM DESCRIPTION
+.PD 0v
+Family matters
+.br
+What
+.I mff
+does
+.br
+Using
+.I mff
+with conventional driver files
+.TP
+.SM OPTIONS
+Choosing which font to create
+.br
+Parsing the suffix
+.br
+Templates
+.br
+Miscellaneous
+.TP
+.SM ENVIRONMENT
+.TP
+.SM FILES
+.PD
+.SH DESCRIPTION
+.I mff
+is a front-end to the
+\*(mf
+program (see
+.IR mf (1)),
+and is intended to be useful for creating \*(Te fonts in batches. It will run
+\*(mf
+and \*(gf (see
+.IR gftopk (1))
+and then transfer the files to the correct directories.
+.SS "\*SFamily matters"
+.I mff
+supports conventions that can be used to maintain a family of fonts
+derived systematically from common program files. A family in this
+context is a group of related fonts designed together \(em for example,
+the Malvern family includes Malvern, Malvern bold extended and Malvern
+italic.
+.LP
+Instead of using one driver file for each variation within the family, a
+.I generic driver file
+named with the abbreviation of the family name (e.g.,
+.BR ma.mf )
+is read after the standard
+\*(mf
+parameter
+.B designsize
+and optionally others
+(such as
+.B weight
+or
+.BR slant )
+have already been assigned values. Usually other `ad hoc' parameters
+are calculated from these and then the character program files read in
+to create the font.
+.LP
+Fonts within the family will be given names formed from the family name
+abbreviation, a suffix indicating the variant type and size. The size
+goes at the end and can contain a
+.RB ` p '
+or
+.RB ` m '
+standing for a decimal point (there must be a digit before the `decimal
+point' and also after it if it is
+.RB ` p ').
+An
+.RB ` m '
+indicates that the size is in millimetres rather than \*(Te points. For
+example,
+.B ma35a10
+is `ten-point Malvern 35 light',
+.B ma55a7p5
+is `7.5-pt Malvern', and
+.B ma74a4m2
+is `4.2-mm Malvern 74 bold extended italic'. These do
+.I not
+have to have separate
+.B .mf
+driver files.
+.SS "\*SWhat mff does"
+For each
+.I font
+argument,
+.I mff
+removes the suffix giving a stub that should be the family name (and
+usually the generic driver name). For example,
+.B ma74a12
+would have 12\|pt design size and style suffix
+.BR 74a ;
+.B mabxi4m2
+has 4.2\|mm design size and suffix
+.BR bxi .
+Then it invokes \*(mf with a first line
+.if t .sp 0.5v
+.if n .sp
+.RS
+.BI \e\|mode= modename ;
+.B font_size
+.IB size ;
+.IB "assignments to parameters" ;
+.IB "extra mf text" ;
+.B input
+.IB driver ;
+.B bye.
+.RE
+.if n .sp
+.if t .sp 0.5v
+The
+.I modename
+tells
+\*(mf
+what sort of device the font is being created for.
+The
+.B font_size
+command sets the standard \*(mf variable
+.B designsize
+(see Appendix\ F of the
+.IR \*(mfbook ).
+The `assignments to parameters' are generated from the suffix and a
+lookup table (see under
+.I Parsing the suffix
+below).
+The `extra mf text' (set with
+the
+.B \-E
+option) might include
+more
+.B input
+commands
+(other
+.B input
+commands
+can't be used before the first
+.B input
+because it would give the font the wrong name).
+.LP
+After \*(mf has been run, the \*(gf program is invoked to create the
+bitmap file. The
+.SM PK
+and
+.SM TFM
+files are then renamed into the user's `font area' directories and the
+.SM GF
+file is removed.
+.LP
+The tables used to translate suffixes into
+\*(mf
+code and so on are all definable using command-line options. See under
+the
+.B \-f
+option and
+.SM
+.B FILES
+below for information on defining such tables sensibly.
+.LP
+Log files will be named after the generic driver file rather than the
+individual fonts, so that if there are many fonts from the same family
+in the command line only one log file is written \(em for the last font
+generated. Usually this is a good thing because it slows the
+accumulation of useless log files. If the font is made successfully
+then the log file usually is not wanted and if the font fails,
+.I mff
+terminates and leaves the log file with the error message in it.
+.SS "\*SUsing mff with conventional driver files"
+To use
+.I mff
+to create a font using non-generic driver files, use
+the
+.B \-S
+option to supress the parsing step.
+.LP
+To use
+.I mff
+with the
+.BR dc / ec
+fonts you might try using
+.B \-e
+.BR gensize=designsize ;
+the
+.B generate
+command they use is equivalent to
+.BR input .
+With the Sauter fonts there is the problem that the generic driver has
+.RB ` b\- '
+or
+.RB ` build\- '
+prepended to it; as well as using
+.B \-e
+.B design_size=designsize
+you will have to use the
+.B \-g
+option to get around this (or rename the files).
+(I would claim that using the
+.B font_size
+macro and builtin variable
+.B designsize
+is more `obvious' and sensible than making up a new name and using that.
+Also, why do neither of those systems appear to take any notice of the #
+convention for measurements in `sharp' units?)
+.SH OPTIONS
+The large number of options is a result of the admittedly eccentric
+decision to make the command language used to describe how to make fonts
+the same as the language of the command-line options.
+.PP
+Options and
+.I font
+arguments can be intermixed; they are read in left-to-right order. A
+plus replacing a hyphen is used to set something back to its default
+value. Flags that take an argument do not take an argument when used
+with a
+.BR + .
+(See
+.IR argloop (3)
+for more details.)
+.SS "\*SChoosing which font to create"
+An argument named
+.I foo(s)
+below can be a list of values (the list must still form one shell word,
+so should not include unquoted spaces). For example a valid
+.I dpi(s)
+would be
+.RB ` 118,300 '.
+Each font creation will be performed once for each value.
+.TP
+.BI \-a " atsize(s)"
+This is used to calculate the scaling of following fonts to match a
+\*(Te
+.RB ` at
+.IR size '
+specification. An
+.I atsize
+is a size which is interpreted as points or millimetres depending on
+whether the following font name has an
+.RB ` m '
+in the size. When the next font name is parsed,
+.I mff
+calculates the nearest magstep (see under
+.BR \-m )
+to the ratio
+.IR at-size \|/\| design-size
+and sets the scaling to that value.
+For example, if it appears as
+.RB ` "\-a 17 ma55a10" ',
+the scaling is set to
+magstep 3, which is 1.728, so it is equivalent to
+.RB ` "\-m 3 ma55a10" '.
+.B +a
+sets the scaling to 1 (same as
+.B +s
+or
+.BR +m ).
+.TP
+.BI \-d " dpi(s)"
+Sets the device for which fonts are being created. A
+.I dpi
+is the number of pixels per inch of the device, used to identify it in
+an table of `modenames' (see under
+.BR \-Z ).
+.B +d
+selects 200 DPI (the
+.I lowres
+device, which is defined in
+.BR plain.mf ).
+.TP
+.BI \-m " magstep(s)"
+Sets the magnification at which
+\*(mf
+will be run to be magstep
+.IR magstep ,
+that is, 1.2 raised to the
+.IR magstep th
+power. A
+.I magstep
+is either an integer, or
+.B h
+(meaning magstephalf = sqrt(1.2) = 1.095), or
+.B \-h
+(meaning 0.913).
+.B +m
+sets the magnification to be 1.0 (same as
+.B +a
+or
+.BR +s ).
+.TP
+.BI \-s " scale(s)"
+Sets the \*(mf magnification to
+.IR scale .
+A
+.I scale
+can either be a number (possibly including a decimal point) less than
+100.0, in which case it is taken as is, or over 100, in which case it is
+assumed to be a \*(Te
+.B scaled
+number and is divided by 1000.
+.B +s
+sets the magnification to 1.0 (same as
+.B +a
+or
+.BR +m ).
+.TP
+.BI \-Z " dpi=modename"
+Adds an entry to the `modename' table. This is used to map
+.I dpi
+values onto the \*(mf names for those devices. A modename is what goes
+after
+.RB ` \e\|mode= '
+in the \*(mf command line. If a modename starts with a double-quote
+character, as in
+.ie t .sp 0.5v
+.el .sp
+.B
+ mff \-Z \(fm500="zambo"\(fm .\|.\|.
+.ie t .sp 0.5v
+.el .sp
+then
+.RB ` \e\|smode= '
+is used instead (this causes \*(mf to read a file
+.B zambo.mf
+rather than attempt to use a predefined mode
+\(em see Section\ 4 of Appendix\ B of the
+.IR \*(mfbook ).
+.B \-Z \-
+discards the `modename' table.
+.B +Z
+restores the default `modename' table (which contains only Knuth's
+.I lowres
+device \(em not very useful).
+.TP
+.BI \-z " modename"
+Overrides the modename derived from the `modename' table and the
+.I dpi
+value.
+.B +z
+cancels
+.BR \-z.
+.SS "\*SParsing the suffix"
+Names are parsed from right-to-left. After the size has been stripped
+off, for each of four tables of
+.IR suffix = mftext
+pairs, if there is a match between a
+.I suffix
+and the end of the stub, then the
+.I mftext
+is inserted into the \*(mf command line and the
+.I suffix
+is stripped off. The
+.I mftext
+is expected to be an assignment or equation, such as
+.BR weight=1.25 .
+(Semicolons are automatically inserted between them.)
+.LP
+The resulting stub is taken to be the family name \(em and therefore the
+name of the generic driver file. If it ends in a hyphen, the hyphen is
+removed too \(em this is for when the basename would otherwise seem to end
+with a suffix. For example, if
+.B fab
+was a family name, you might use
+.RB ` fab\-12 '
+to avoid having it split as
+.B fa\ b\ 12 .
+The font created will still be called
+.BR fab12.tfm .
+(\*(Te font names should not contain hyphens.)
+.LP
+The tables are intended to provied three dimensions of `variant style'
+\- the
+.I weight
+(W) table gives an axis from `light' to `bold'; the
+.I condensedness
+(C) table gives an axis from `condensed' to `expanded'; and the
+.I italic
+(I) table chooses roman, italic or obliqued options. (Omitted suffixes
+standing for `regular'.)
+.LP
+The fourth table (J) has no fixed meaning, but might be used to select a
+subset of the possible characters in that style \(em for example, a full
+font might have programs for uppercase, lowercase, small-caps, math
+italic, accents, accented letters, punctuation and symbols: more than
+can be fitted into 256 characters. The J table might have entries for
+.B msy
+(mathematical symbols) and
+.B csc
+(caps-and-small-caps).
+.LP
+The tables are used in the order J, I, C, W;
+therefore they appear in the name in the order W, C, I, J. Thus
+.B madcicsc14
+might be `fourteen-point Malvern demibold condensed italic
+caps-and-small-caps'.
+.LP
+The meanings of the four tables are not cast in stone, of course.
+.TP
+.BI \-W " suffix=mftext"
+Adds an association to table W.
+.B +W
+discards table W.
+.TP
+.BI \-w " mftext"
+Overrides the text derived from the W table. The parsing is still
+performed.
+.B +w
+cancels
+.BR \-w.
+.LP
+The other three tables have corresponding option letters
+.BR \-C ,
+.BR \-c ,
+.BR \-I ,
+.BR \-J ,
+.B \-J
+and
+.BR \-j .
+.TP
+.BI \-g " file"
+This overrides the deduced `generic driver file' name. For example, to
+use a file
+.B malvern.mf
+for the generic driver rather than
+.BR ma.mf ,
+.I mff
+could be invoked with
+.B mff
+.B \-g
+.BR malvern .
+.B +g
+cancels
+.BR \-g .
+.TP
+.B \-S
+Indicates that this is a
+.RI fixed- S ize
+font
+\(em the
+.I font_size
+assignment is omitted from the \*(mf command line and the parsing of the
+W, C, I and J suffixes is not attempted. This is appropriate for
+standard fonts like
+.B cmr12
+which do not have the ability to be built at different sizes.
+.SS \*STemplates
+The following four options tell
+.I mff
+how to go about installing a font.
+.TP
+.BI \-G " template"
+Tells
+.I mff
+how to invoke \*(gf. If this is just a hyphen, the \s-1GF\s0-to-pixel
+step is omitted.
+.B +G
+sets the \*(gf template to
+.RB ` gfto%p '.
+The command is broken into words at whitespace. For example,
+.B mff \-g \(fmgfto%p \-v\(fm .\|.\|.
+will use \*(gf in its verbose mode.
+.TP
+.BI \-M " template"
+Tells how to invoke the
+\*(mf
+program.
+.B +M
+sets the
+\*(mf
+template to be
+.RB ` mf '.
+.TP
+.BI \-P " template"
+Tells where pixel files ought to be deposited once created. A value of
+just a hyphen means do not rename the pixel files.
+If there is no
+.B %f
+in this template, then it is assumed to be the name of a directory and
+.B %f.%n%p
+(and possibly a slash) is implicitly appended to it.
+.B +P
+resets the pixel directory template to
+.RB ` %f.%n%p '.
+(On systems with unreasonably short filenames, the default suffix is
+.RB ` %f/%n.%p '.)
+.TP
+.BI \-T " template"
+Tells where
+.SM TFM
+files ought to be deposited once created. A value of just a hyphen
+means to not move the
+.SM TFM
+files.
+If there is no
+.B %f
+then
+.B %f.tfm
+is implicitly appended.
+.B +T
+resets the
+.SM TFM
+directory template to
+.RB ` %f.tfm '.
+.LP
+The following %-substitutions are made in templates supplied by the
+above commands:
+.RS
+.TP
+.B %%
+A percent sign.
+.TP
+.B %b
+The basename of the current font.
+.TP
+.B %d
+The current
+.I dpi
+value.
+.TP
+.B %D
+The current
+.I dpi
+value multipled by the current magnification.
+.TP
+.B %f
+The current
+.I font
+name.
+.TP
+.B %g
+the current driver file name (usually the same as
+.BR %b ).
+.TP
+.B %k
+The current
+.I factor
+times 1000 (set with
+.BR \-k ).
+.TP
+.B %n
+The current
+.I dpi
+value multipled by the current
+.IR factor
+value
+times
+the current magnification
+\(em e.g., when making a
+300-dpi
+.SM PXL
+font, this will be 1500.
+.TP
+.B %p
+The pixel file suffix \(em usually
+.RB ` pk '.
+.TP
+.B %s
+The current magnification, times 1000.
+.TP
+.B %u
+Either
+.B pt
+or
+.B mm
+depending on which units the design size is assumed to be in.
+.TP
+.B %z
+The current modename \(em e.g.,
+.RB ` CanonCX '
+for a LaserWriter.
+.RE
+.SS \*SMiscellaneous
+.TP
+.B \-D
+Prints (`dumps') the current values of the table and other variables
+used to determine the
+\*(mf
+command line.
+.TP
+.BI \-e " mftext"
+Adds extra
+\*(mf
+text, which goes before the first
+.B input
+command. Multiple
+.B \-e
+options accumulate (semicolons are implied between them).
+.B +e
+discards the accumulated extra text.
+.TP
+.BI \-E " mftext"
+As
+.B \-e
+except it goes after the first
+.B input
+command.
+.TP
+.BI \-f " file"
+The
+.I file
+is searched for in the directories listed in the
+.SM MFFPATH
+environment variable and if a readable file is found, it is parsed for
+more options. An optional
+.B .mff
+suffix will be supplied if omitted. Files can be nested by using
+.B \-f
+inside a file.
+If the
+.I file
+is just a hyphen then the standard input stream is used.
+.B +f
+rereads the initialization files (see under
+.SM
+.B FILES
+below).
+See
+.IR argloop (3)
+for details about the format of the files.
+.TP
+.B \-h
+Prints a summary of the options.
+.TP
+.BI \-k " factor(s)"
+Uses
+.I factor(s)
+to construct pixel file names in the style of
+old-fashioned
+.SM PXL
+files. The number in the suffix of the pixel file is expected to be
+multiplied by the
+.IR factor ;
+presumably either \s-1GF\s0to\s-1PXL\s0 or something like
+.I mftobdf
+is being used which shrinks or magnifies pixel files in addition to the
+magnification
+\*(mf
+may be applying.
+This list of values is ignored unless
+.B \-x
+is used.
+.B +k
+sets the factor to 5.0 (which is correct for \s-1GF\s0to\s-1PXL\s0).
+.TP
+.BI \-n
+Does a dryrun \(em instead of running
+\*(mf
+and so on, the operations that would be performed are printed.
+Renaming of files is represented as
+.B mv
+.I oldname
+.IR newname ,
+and deletion of the
+.SM GF
+file as
+.B rm
+.IR gffile .
+(That is, the output resembles shell commands.)
+.B +n
+cancels
+.BR \-n .
+.TP
+.BI \-p " suffix"
+Sets the suffix that will be used for pixel files.
+.B +p
+sets the pixel suffix to
+.RB ` pxl '
+if
+.B \-x
+is in effect,
+.RB ` pk '
+otherwise.
+.TP
+.B \-R
+Retain (that is, do not delete) the
+.SM GF
+file after the \*(gf step is performed. This is useful if the \*(mf
+commands was something like
+.IR echo (1)
+which does not actually create a
+.SM GF
+file in the first place!
+.TP
+.BI \-v
+Set `verbose' mode. The parsing of options and reading of files will be
+described in detail. (Each line will start with a
+.RB ` # '
+so that if
+.B \-n
+is being used the result is still a reasonable shell script.)
+More
+.B \-v
+flags cause more verbosity (thus
+.B \-vv
+or
+.B \-vvv
+etc.). Often used but rarely useful.
+.B +v
+cancels any number of
+.B \-v
+options.
+.TP
+.BI \-V
+Print version number information.
+.TP
+.BI \-x
+Assume we are producing
+.SM PXL
+files or something equally unpleasant, and so multiply pixel file
+suffixes by
+.I factor(s)
+set by
+.B \-k
+above.
+.B +x
+turns off
+.BR \-x .
+.SH ENVIRONMENT
+.TP
+.SM MFFINIT
+This is parsed for options before the command-line is read.
+(Double-quotes can be used as in files.)
+.TP
+.SM MFFPATH
+This is a colon-separated list of directories in which files for the
+.B \-f
+option can be found. If this is not set, just the current directory is
+searched.
+.TP
+.SM PATH
+Used when searching for \*(mf and \*(gf executables.
+.SH FILES
+.TP
+.B \*(RC/mff.rc
+.PD 0v
+.TP
+.B $HOME/.mffrc
+.TP
+.B ./mff.rc
+.PD
+These files are read for options when
+.I mff
+starts up (or when requested with the
+.B +f
+option) before the
+.SM MFFINIT
+variable and the command-line arguments.
+The system
+.B mff.rc
+can contain system-wide setups, like the local printing devices and
+standard suffixes. The user `rc' files allow per-user and per-project
+tailoring.
+.TP
+.B \(**.mff
+Other files containing
+.I mff
+options.
+.TP
+.B \*(MJ/example.mffrc
+An example
+.I $\s-1HOME\s0/.mffrc
+file.
+(\*(MJ is the directory
+.I mff
+source is in).
+.TP
+.B \*(MJ/{cm,Ditko,mflogo}/*
+Examples of \*(mf fonts designed to be used with
+.IR mff .
+.TP
+.B \(**.mf
+\*(MF source files.
+.TP
+.IB driver .log
+Log file created by \*(mf.
+.TP
+.B \(**.tfm
+\*(Te font metric file, created by \*(mf and used by \*(Te.
+.TP
+.B \(**.\(**gf
+Generic font file, created by \*(mf and turned into a
+.SM PK
+file by \*(gf.
+.TP
+.B \(**.\(**pk
+Bitmap file, created from the
+.SM GF
+file
+and used by
+.SM DVI
+drivers such as
+.IR dvips (1).
+(On systems with short filenames, a file
+.IB driver .pk
+is used to store the output of \*(gf before it is renamed as per the
+.B \-P
+option.)
+.SH AUTHOR
+Damian Cugley <pdc@prg.ox.ac.uk>
+.LP
+Please send bug reports, fixes and comments to
+<malvern@prg.ox.ac.uk>
+\(em this is a mailing list that you can join by sending a request to me
+at the address
+<malvern-request@prg.ox.ac.uk>.
+The Malvern list is also for discussion
+of Malvern, a \*(mf font designed to take advantage of
+.IR mff 's
+special features; it ought to be available from the same archive that
+.I mff
+was obtained from.
+.LP
+If you find
+.I mff
+amusing or useful, please send a pretty postcard to Damian Cugley,
+Computing Laboratory, 11\ Keble Road, Oxford, UK OX1\ 3QD.
+.SH "SEE ALSO"
+mf(1), gftopk(1), argloop(3), findfile(3)
+.LP
+The
+.I mff
+source files.
+.LP
+Donald E. Knuth,
+.I The \*(mfbook.
+Addison-Wesley, 1986. ISBN 0\-201\-13444\-6.
+.LP
+Donald E. Knuth,
+.I The \*(Tebook.
+Addison-Wesley, 1984. ISBN 0\-201\-13448\-9.
+.SH LIMITATIONS
+The command-line passed to \*(mf is limited to 512 characters. The
+commands supplied with
+.B \-M
+and
+.B \-G
+are limited to 1024 characters when the %-substitutions are expanded.
+.SH NOTES
+This program used to be called
+.I mfjob
+but has been renamed (as of version 2.8) to prevent confusion with the
+MFjob program that is part of Eberhard Mattes' em\*(Te distribution for
+MS-DOS and OS/2 computers. An immediate consequence is that the default
+suffix for files of options, and the name of `rc' files, have changed.
+There are also some other minor incompatible changes incorportated at
+the same time.
+.PP
+For information on differences for
+.IR gcc -based
+Atari ST systems,
+see
+.IR argloop (3)
+and
+.IR findfile (3).
+.SH BUGS
+It seemed sensible at the time to indicate which mode to use with the
+dots-per-inch value because this number is generally much shorter than
+the corresponding mode name. Systems with printers with the same pixel
+density but otherwise different characteristics require the use of
+.BR \-z .
+This system also fails to make sense if a printer has a bizarre
+dots-per-inch value, such as 4000/3.
+