[comp.fonts] What Metafont is

dhosek@jarthur.Claremont.EDU (D.A. Hosek) (11/27/89)

In article <1533@cc.helsinki.fi> STICKLER@cc.helsinki.fi writes:
>Also, what is the METAFONT format used in TEX? How does one
>define a METAFONT?

Metafont is a system which takes a description of the curves and
lines composing a character and uses those to produce the font in
bitmap form (actually, there is a working prototype of a MF->PS
system, and a second MF->PS program in the works). The basic
principle is to use a number of parameters to describe assorted
characteristics of the typeface (e.g., the width of a "thick"
stroke in an uppercase letter or the height of lower case letters).
The programs for characters, then, rather than use constants to
indicate the appropriate dimensions, use the parameters. In this 
way, a wide variety of typefaces can be created from a single
character program.

As indicated by the abovementioned MF->PS conversion, Metafont and 
PostScript are not incompatible. In fact the relationship between
them can be seen in much the same light as the relationship 
between TeX and PostScript. MF provides a somewhat nicer interface
for the production of the PostScript code than "doing it by hand".
However, the Metafont motif has been slow to gain acceptance by 
font designers. Sumner Stone, in a conversation with me a month ago,
commented that type designers are unwilling to abandon the visual
approach to letterform design that a true meta-font would require.
Richard Southall (I believe) did some experiments with Metafont
design a couple of years back and had a rather lukewarm response
(his comments were published in one of the European text-processing
conference proceedings). Personally, I believe that the true
potential of Metafont has yet to be exploited. For example, in an
undertaking like the Quixote Oriental Fonts Project, visual design
of the more than 50,000 characters involved would take an extravagant
amount of time. A procedural approach seems to be the only rational 
way to approach the development of the characters.

-dh
-- 
"Odi et amo, quare id faciam, fortasse requiris?
   nescio, sed fieri sentio et excrucior"          -Catullus
D.A. Hosek.                        UUCP: uunet!jarthur!dhosek
                               Internet: dhosek@hmcvax.claremont.edu

xanthian@saturn.ADS.COM (Metafont Consultant Account) (12/30/89)

In article <3242@jarthur.Claremont.EDU> dhosek@jarthur.UUCP (D.A. Hosek) writes:
>In article <1533@cc.helsinki.fi> STICKLER@cc.helsinki.fi writes:
>>Also, what is the METAFONT format used in TEX? How does one
>>define a METAFONT?
>
>Metafont is a system [lots omitted...] Personally, I believe that the true
>potential of Metafont has yet to be exploited. For example, in an
>undertaking like the Quixote Oriental Fonts Project, visual design
>of the more than 50,000 characters involved would take an extravagant
>amount of time. A procedural approach seems to be the only rational 
>way to approach the development of the characters.
>
>-dh

Additional response to the above, from personal experience with
METAFONT:

I've recently had the (fun) experience of producing (for [modest]
gain) a corporate logo in METAFONT for use in TeX and LaTeX documents.
The joys of METAFONT are many.  It is a mix of a procedural and a
functional language; while a METAFONT program has a flow, lots of the
really ugly imperative programming details can be finessed by
establishing equations which define the relationships among the lines
(virtual pen strokes) of the drawing.  Relationships such as
"intersection point of two curves", "curve interpolating between two
curves", "proportional to", and "rotated about", for example, are very
easy to express.

On the down side, the output is _not_ an outline description of the
symbol, so one must create (by running the mf program with ones
METAFONT symbol program and a parameter header as input) a rasterized
instance of each point size, at each display device resolution, of the
symbol.  For even a simple situation, this can involve dozens of font
files to manage, just to support a single symbol.  For a full set of
computer modern fonts in a good range of point sizes and several
different resolutions, the files of rasterized fonts can extend to
hundreds (even perhaps low thousands), and the disk space demands are
very heavy.

To compensate, METAFONT supports _excellent_ rasterization facilities,
so that the symbols produced work well over a large range of point
sizes with relatively little effort (compared say, to making a
gridding system work well for an outline font at low point sizes) by
the symbol programmer.

Additionally, the two implementations of METAFONT with which I am
familiar (for Sun Unix(tm) and for the Amiga) come with the font
definition sources for Knuth's Computer Modern(tm?) font set.
Together with a set of existing, also furnished, parameter header
files, these font programs allow the user to create dozens of fonts.
With the user supplying parameter header files, the possibilities are
endless fonts, though all with certain stylistic similarities.  With
the user supplying the font symbol (character) programs, the sky is
the limit.

As an aside, for those with the hardware to run it, I cannot recommend
too strongly the excellent AmigaTeX, AmigaLaTeX, and AmigaMETAFONT
software from Radical Eye Software [(415) 332-6442].  The previewers
for both TeX and METAFONT, and the generally smooth and seamless
operation of this software made my work a delight, and I'm more than
happy to give Tom Rokiki and crew a free plug.

I suppose that, compared to Bitstream, Adobe, and other commercial
font vendors' products, METAFONT fonts will always be relatively
orphans, but being able to roll your own special purpose symbol set
and pop it up in TeX to decorate documents is an awfully nice feature.
Having completed my for-pay project, I couldn't resist making my own
Treehouse Computer Consulting "corporate" logo, a tree with treehouse,
using METAFONT's random number capabilities to make a tree symbol with
bark, leaves, trunk, and branches, and a treehouse right out of "There
Was a Crooked Man", all looking georgous and clearly delineated at 72
points in the letterhead I made for myself.

Now for a word from our sponsor  ;-)

--
Again, my opinion, not the account furnishers'.

xanthian@well.sf.ca.us
Kent, the (bionic) man from xanth, now available as a build-a-xanthian
kit at better toy stores near you.  Warning - uses some fragile parts.

/^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\ 
< Your artwork converted to a METAFONT symbol program for TeX and LaTeX use! >
< Send a salad plate sized blowup, a SASE, and a cover letter to me at TCC,  >
< P.O. Box 390755, Mountain View, CA 94039-0755 for a no risk, fixed price   >
< quote.  Company logos a specialty.  (Hey, it's a living, however modest.)  >
\vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv/

urban@randvax.UUCP (Mike Urban) (01/02/90)

In article <10235@zodiac.ADS.COM> xanthian@saturn.ADS.COM (Metafont Consultant Account) writes:
> (re doing a logo in MF)
>
>On the down side, the output is _not_ an outline description of the
>symbol, so one must create (by running the mf program with ones
>METAFONT symbol program and a parameter header as input) a rasterized
>instance of each point size, at each display device resolution, of the
>symbol.  For even a simple situation, this can involve dozens of font
>files to manage, just to support a single symbol.  

Well, in the specific case of a corporate logo, this need not be
so; simply use different letter symbols in a single font file to
represent the different sizes of the logo.  This is usually practical,
because the logo size will bear little or no relation to the
type size surrounding it, so the nominal `point size' is unimportant.
In fact, when I did such a logo for my previous employer, the Office
of Corporate Identity (I am not making this up) had specific guidelines
indicating that the corporate logo could not be mixed with text nor
used as a word, and must indeed be surrounded by (I forget how much)
white space.  The size of the logo usually depended on the document
type (memo, letter, title page) rather than surrounding text, so it
was a simple matter to use {\companylogo A} for the half-inch version
and {\companylogo B} for the three-quarters version as appropriate.

-- 

	Mike Urban
	urban@rand.ORG