From: chh9@kimbark.uchicago.edu (Conrad Halling)
Subject: Followup:  Why Monaco isn't WYSISYG (long)
Reply-To: chh9@midway.uchicago.edu
Organization: University of Chicago
Date: Wed, 27 Jan 1993 19:24:34 GMT

In article <1993Jan25.191841.13902@midway.uchicago.edu> I wrote:

>The Monaco TrueType font contains an error.  Monaco is supposed to be a
>monospaced font, but the characters do not align correctly.  The space
>character is printed at different widths, throwing off character alignment.

[remainder deleted]

Summary:

Apple's printer drivers cause the printing problems with Monaco.  Apparently
they adjust the spacing of words when printing using TrueType to match
the spacing of words when drawn with the bitmap fonts.  If the bitmap fonts
are not used by the System, Monaco TrueType prints perfectly.  Non-Apple
printers (such as DeskWriters) do not have this problem.

Recap:

In our laboratory, we need to print a great deal of text in a monospaced
font (such as Courier or Monaco).  Correct alignment of the characters
is crucial.  I have found that the alignment of text drawn in Monaco is
incorrect under certain conditions.  Alignment is poor when the standard
size, Monaco 9-point, is used.

Reports from other people:

Some people wrote me and said that they were having no problem.  Most
of them were using non-Apple printers.  I believe a couple of people said
they were having no problem on Apple's printers.

About an equal number of people said they saw the same problem I did. One
person's solution was to remove the Monaco TrueType font.  Then all printing
was done using the bitmap font.

New results:

I tried printing at different print sizes.  I found that alignment is worst
using 9-point Monaco.  Alignment is off a little for Monaco 7, 8, 11, and
12-point.  However, alignment is perfect for Monaco 10-point.  I neglected
to mention in my original post that I was testing output using 9-point
Monaco.  So people who printed using 10-point would see no problem.  The
alignment problems at 12-point are minor (but they exist if you look
carefully).

An experiment:

In order to test whether the Monaco TrueType font is okay, I had to
remove the bitmap font from the System.  This is not an easy matter since
the 9-point bitmap is installed in the ROM of most Macintoshes.  In order to
do this, I had to:

    1)  Make a copy of the System file by holding down the option key and
        dragging the System file onto the desktop.
    2)  Open the _copy_ of the System file using ResEdit 2.1.1.  Never, ever
        modify the original System file.
    3)  Open the FOND resource, and remove FOND ID 4 (if present).
    4)  Open the FONT resource, and remove any FONT IDs that are present
        for Monaco (9-point Monaco has a FONT ID of 521).
    5)  Open the ROv# resource.  Open the only ID that is present (e.g., 1660 
        on a Macintosh IIci running System 7.1).  Scroll to the bottom of the 
        window.  Click on the row of 5 stars. Choose "Insert New Field(s)"
        from the "Resource" menu. Click on the first box that appears and 
        type in "FONT" (without the quotes, of course).  Then click on the 
        second box and type in "521". (This tells the System to ignore the 
        Monaco 9-point bitmap that is in the ROM.)
    6)  Save and Quit from ResEdit.
    7)  If you are running System 7.0 or 7.0.1, open the copy of the
        System file.  Drag all Monaco icons onto the desktop.  Then install
        _only_ the Monaco TrueType icon.
    8)  If you are running System 7.1, open the Fonts folder in the System
        folder.  Drag all the Monaco icons (or suitcase) onto the desktop.
        Then install _only_ the Monaco TrueType font (by opening the suitcase
        if necessary and dragging the truetype icon from the suitcase into
        the Fonts folder).
    9)  Create a new folder in the System folder and call it something like
        "Unmodified System file".  Drag the unmodifed System file into this
        folder.  Drag the modified System file from the desktop into the
        System folder.
   10)  Restart your computer.  You might want to have your System 7 disk
        tools disk handy in case anything goes wrong and you need a boot disk.
        If your computer doesn't boot correctly, boot using the disk tools
        disk.  Open the System folder and throw the modified System file into
        the trash.  Open the folder containing the original System file, and
        drag the original System file into the System folder.  Then restart
        your computer, and start again at step 1.
   11)  Monaco font should now be drawn using only TrueType.  For example,
        open a text editing program or a word processing program.  Set the
        font to Monaco 9-point.  When you insert some text, it won't be
        very readable, and the zeroes will have slashes through them.

When I did this, and tried printing with Monaco 9-point, the alignment
was perfect.  So the problem is not with the TrueType font itself but
with something else.

I have also observed that when the Monaco bitmap and TrueType fonts are
both present, that Monaco 10-point (drawn using TrueType) is the same
width as Monaco 9-point (drawn using the bitmap).  When the bitmap fonts
are absent, Monaco 9-point (drawn using TrueType) is narrow than Monaco
10-point, as should be.

A hypothesis:

So here's what I think is going on.  Apple's printer drivers are
drawing the print image using TrueType but trying to adjust the output to
get the word spacing to match the spacing generated by the bitmap.  The
misalignment is most severe for 9-point Monaco since the bitmap actually has
the width of the 10-point TrueType font.  The driver tries to fix the
positions of words to match the screen image by adding extra space between
the words.  The driver does this in order to preserve "What You See Is What
You Get" (WYSIWYG).  (This is similar to what happens when you create a
document using Geneva and print it on a LaserWriter with font substitution
turned on -- the LaserWriter substitutes the postscript Helvetica font, but
since the character widths are different for the two fonts, the LaserWriter
driver has to put extra space between the words so they'll appear in
roughly the same positions.)  In this effort by the driver to preserve
WYSIWYG, it destroys it when the alignment of individual characters is
crucial.

Printer drivers written for non-Apple printers apparently don't do all this,
since people have reported that the DeskWriter prints correctly.

Solutions:

  1)  Print using Courier.  This is fine as long as Courier is present.
  2)  Print using Monaco 10-point, which seems to align correctly.
  3)  Go through the involved (and, for novices, risky) procedure of removing
      all Monaco bitmap resources so that only Monaco TrueType is present.
      Unfortunately, this means that 9-point Monaco on the screen is not
      very readable.
  4)  Wait for a new System release which will have an update of QuickDraw and
      a new Print Manager.  Presumably, these problems will then go away.

Since I think the Monaco TrueType font is incredibly ugly anyway, I will
simply be printing with Courier.  I use Monaco because I find the 9-point
Monaco bitmap font more readable than Courier.  So I will make documents
using Monaco 9-point, then convert them to Courier 10-point (the equivalent
size) before printing them.

-- 
Conrad Halling
c-halling@uchicago.edu