From: jcmorris@mwunix.mitre.org (Joe Morris)
Subject: Re: Windows Screen Fonts
Keywords: screen font windows installation
Organization: The MITRE Corporation
Distribution: na
Date: Tue, 12 Jan 1993 17:10:09 GMT

ffang@grover.printing.uiowa.edu (Francis Fang) writes:

>I just downloaded the Optima screen font zip file from Compuserve to use
>on my Windows 3.1 machine running Aldus PageMaker 4.0. After unzipping
>the file, I find that all the zip file consists of is .FON files. I then
>proceeded to install them using the Fonts Control Panel under the Main
>window. The installation completes and I see the Optima screen fonts in
>the installed list of fonts. When I click on these, the sample window
>shows me a sample of what the font looks like and at the bottm of the
>sample window, informs me that this is a screen or plotter font.

>The problem arises when I try to access the font in any other program.
>The installed Optima screen font does not appear in any of the font
>menus. 

>Is there an additional step I have not taken?

Yes.  You need a printer font file.

This is another case where the ambiguous definitions of the word "font"
have bitten a user.  A short tutorial follows:

A "printer font" is a set of glyphs which a real, physical output device
can render on its medium (plotter, ink-on-paper, etc.).  Generally, a
printer font takes a one-byte data item and maps it to a particular 
glyph.  A printer font may be built into the printer, or added to it
via a plug-in cartridge, or downloaded as a "soft font" file from the
attached desktop system.

Although it violates the traditional use of the word "font", a printer
font may be scalable so that "Times Roman" may represent a particular
glyph design of any requested size.

Windows is informed of the availability of a printer font by any of
several methods: the driver may know what fonts are built into the 
particular model printer; the printer setup dialog may offer the
opportunity to say what cartridges are installed; and soft font information
may be present in WIN.INI.

A "screen font" is exactly what its name implies: it allows you to see on 
your desktop display a representation of the glyph which it supports.
Thus "TmsRmn" screen fonts allow the display of Times Roman-like fonts.

Let's assume that you have neither TrueType nor Adobe Type Manager for 
a moment.

When a Windows application asks for a list of the fonts available to it,
the list returned to it is the set of fonts available *on the currently-
selected printer*.  The presence or absence of a screen font for some
typeface does not affect the response to the enumeration query.  Thus,
if you have a LaserJet II with no soft fonts or cartridges installed,
the list will show that Courier and LinePrinter are available.

If the user selects one of the fonts offered by the printer and uses it in
a screen display, the application will associate with the characters
a particular font name, style (roman, italic, etc.), and size.  When
this data is passed to the video driver, the driver will look in the
various screen fonts (*.FON) and will select the one which most closely
matches the data (font, style, and size).  If there is no exact match
the selection proceeds with a documented search algorithm to find a
substitute, which may occasionally result in wildly inappropriate
screen rendering, especially with nonalphabetic fonts.

The screen font files are bitmap patterns, and can represent only specific
display sizes.  That's why you'll see font names like "TIMESA.FON", 
"TIMESB.FON", "TIMESE.FON", etc.: the last letter distinguishes the
font files used for CGA, EGA, and VGA in this example.  Further, the
fonts provide only a few display character sizes, so if you ask for any
other character size you'll see incorrect character sizes displayed.

So...you've got the Optima screen fonts, but all that does for you is
allow you to see the proper glpyhs for some set of point sizes if you
specify the Optima typeface.  You still need to provide Windows with
the necessary information about the existence and metrics of a printer
font; only then will your applications be offered the Optima typeface.

The above comments don't apply to a system with TrueType or ATM, because
those systems will build the necessary screen font information "on-the-fly"
as the characters are specified by the application.  

Joe Morris / MITRE