The Application Formerly Known As. . .
Volume Number: 21 (2005)
Issue Number: 1
Column Tag: Programming
The Application Formerly Known As. . .
by Dean Shavit
Holding Out For QuarkXPress
It was ten years ago this summer when I helped a client, a small monthly print magazine, bring
their desktop publishing operation in house. At the time, the operating system (Mac OS 7.1) and the
hardware (Quadra 840av) were very different than today, but two key components of the solution still
remain in place for my client and other publishers: QuarkXpress for the layout of the publication,
and Adobe Type 1 fonts for the typefaces. The initial project had some typographical obstacles
including body text that borrowed capital letters from other fonts for use with the main typeface,
and some other elements from disparate fonts, including asterisks and dashes within the body text.
These peculiarities made the cost of laying out the magazine quite high, since the typographers
either had to search and replace the characters every month, or change the selected font as they
typed the text.
So, while planning the project, I proposed that they edit their font (Bembo) to accommodate the
capital letters from other fonts, the dashes, and the asterisks so that they would appear naturally
within the body copy while a typesetter was entering text. At the time, it was also clear which tool
was appropriate for the customizing the typeface: Altsys Fontographer (now owned by Macromedia, and
still available for purchase but never updated to be a native OS X application). The client
purchased Fontographer; I went ahead and modified the font for them, and they adopted the Mac for
their desktop publishing (and have been a Mac company ever since), eventually leaving behind dbase
for their circulation database and moving to FileMaker. The resulting font, called "SpecialText"
proved to be a great solution, as they migrated from Mac OS 7 to 8, and 9, and even OS X in
mid-2003.
With the successful transition of the client to OS X and an Xserve and Xserve RAID system, the
one application that lagged behind was QuarkXpress 4.1, which they ran in the Classic environment,
but grudgingly. My suggestions to look at Adobe InDesign as a possible OS X native replacement for
QuarkXpress fell on deaf ears. After all, they publish a relatively straightforward text-based
magazine, and just want to work with the same familiar application, just not in Classic mode, and
even so, everything worked as they expected, with some additional complexity brought on by the GUI
changes when switching from Quark to OS X applications such as FileMaker or Microsoft Word but on
the whole without disrupting their work flow.
QuarkXPress 6 Is Released - "Start The Presses"
When QuarkXpress 6.0 was released in June 2003, after two years in the making, the message on
Apple's home page proclaimed, "Start the Presses." QuarkXpress 6 was the last major OS X desktop
publishing application to be updated for native OS X operation, and many publications had been
waiting for just that moment to make the move to OS X, or upgrade from QuarkXpress 4 or 5. Quite
naturally, my client was very interested in upgrading, but based on severe issues with .0 releases
of QuarkXpress in the past (versions 3, 4, and 5) I advised them to wait a while to see what early
adopters experienced. So they waited a few months, then went ahead and purchased QuarkXpress 6 in
January of 2004, with the goal of putting into production by March 2004.
Stop The Presses
After some initial testing the client decided to put QuarkXpress 6.0 into production in early
February. Evidently, the initial tests didn't include printing documents, because immediately upon
installing and attempting to use QuarkXpress 6 on their design Macs, I received an emergency call,
"Quark is claiming that our SpecialText font is corrupt and won't print anything." After talking
them through installing fresh copies, changing font locations, disabling their Suitcase XI font
management software, we were still unable to get QuarkXpress to cough up a printout.
So there it was, with a deadline looming only a two weeks away, the presses were stopped, the
work flow halted and an emergency dumped squarely in my lap: the fonts I'd edited ten years earlier
were corrupted or "not done right in the first place" in the opinion of my client. What I'd heard
from other consultants was indeed true: Quark had outsourced their technical support to India, and
"John," who spoke the King's English beautifully, was obviously reading from a script, and had
absolutely no Mac OS X experience, or knowledge about the font issues my client was having that I
could discern. Our discussion yielded nothing except a general disclaimer, "it's not our fault,
there must be something wrong with your font." That was quite difficult to swallow on my part,
considering that the SpecialText font had performed flawlessly without a single error since 1994,
with all previous versions of QuarkXpress, all the Adobe design applications up to the current
version, and all iterations of FileMaker and Microsoft Office. A quick review of QuarkXpress 6
issues on the Internet yielded many examples of other adopters experiencing the similar
difficulties, including problems creating PDFs from within QuarkXpress, and even distilling the
Postscript output with another tool such as Acrobat Distiller or OS X's built-in Preview
application.
The temperature kept rising at my client day by day; they began looking for a "Quark Expert" who
could solve their problem, even though I insisted that the skills necessary for solving the problem
went far beyond the realm of Quark expertise. So, with the clock ticking, I began to examine the
SpecialText font for possible issues that would offend Quark. The first step was to check the bitmap
fonts for possible corruption--I loaded them on an OS 9 Mac and ran ATM Deluxe's "verify" feature,
which turned up no alerts, conflicts, or corruption. I then loaded them on an OS X Mac and ran the
Font Doctor program that came bundled with Suitcase XI, but found no warnings as well, except for
one interesting flag, that mentioned "extra fonts" in the suitcase file that weren't necessary.
The Great OS X Font Diaspora
One of the biggest complaints I've heard, and still hear, about OS X is what I like to call the
Font Diaspora. It's almost as if Apple took our familiar Fonts folder inside the OS 9 System Folder
and scattered the contents to the four winds . . .well, not quite. If you count up the possible font
locations, there's more than just four! I've created a small table below showing where OS X can
store fonts.
I've had many questions from clients regarding why Apple chose to transition from a single
repository of fonts in Mac OS 9 to this multi-tiered structure in OS X. The answer lies in the more
complex nature of OS X as a multi-user operating system, where various rights dictate which parts of
the OS are accessible to standard users, admin users, and users with root access (the operating
system itself). What most Mac admins do in design studios these days is simply strip out undesired
fonts, and let their font management software handle things for the user. While Apple's Font Book
program has at least given users the ability to deactivate fonts which reside in areas of the OS to
which they don't have read/write access, it still is a long way from being the font management
solution that designers or layout operators need or expect in a production environment.
Another significant change that further complicates font management in OS X v. OS 9 is the
addition of several additional supported font formats to the familiar Postscript Type 1, Type 3 and
TrueType. Here's a list of supported font formats in OS X:
- OpenType (should work on Mac OS and Windows)
- PostScript Type 1 (Mac OS only)
- PostScript Type 3 (Mac OS only)
- PostScript Multiple Master (Mac OS only)
- TrueType (both
Mac OS and Windows formats)
- dFont (data fork TrueType) (Mac OS only)
The data fork TrueType fonts that come bundled with OS X are often a source of conflicts, since
they are some of the same standard faces such as Times, for instance, that make up the common base
set of Adobe Type 1 fonts that are the staple for graphic designers. Data fork TrueType fonts, or
"dfonts" as they're often called, are essentially the same as the resource-fork-based TrueType fonts
that used to ship with OS 9, but have all of their information in the data fork, so that they can't
be damaged by command-line functions like cp or mv. These fonts are often removed as a routine step
in preparing an OS X workstation for a designer.
Out of all the formats supported by OS X, it is the OpenType format that's the most intriguing.
OpenType is the result of an effort by Adobe and others to produce a font format that works on both
Windows and Mac OS 9 and OS X without having support separate versions. Other benefits include a
single font file (no separate bitmaps), and a larger, 16-bit address space, instead of an 8-bit
address space, allowing for approximately 65,000 "glyphs" rather than the previous limit of 256. The
extra capacity allows type foundries to embed swash caps, alternate characters, and more punctuation
and dingbats into the typeface, which previously required the production of "Alt" or "Expert" fonts
just for that specific purpose. A unique problem with OpenType, however, is that applications must
be OpenType-aware to access the extra character space, or they will not work as intended. Accessing
the complete set of OpenType characters requires using the Character Palette in OS X, or an
application such as one of the Adobe Creative Suite applications that has that ability built-in. To
access the Character Palette, open System Preferences, choose the "International" preference pane,
click on the "Input Menu" tab and make sure that the "Character Palette" is selected. As an added
bonus, you can also select the "Keyboard Viewer" check box, which replaces the "Key Caps"
application in OS 9 and versions of OS X prior to Panther.
One of the necessary font-related features of OS 9 that has never made it back to OS X, is the
ability to move bitmap fonts between font suitcase files by double-clicking, dragging and dropping.
In OS X 10.3 double-clicking a font suitcase simply opens the Font Book application, allowing the
user to view the fonts contained within it, but doesn't allow deleting of individual fonts or
dragging them from one suitcase to another.
Font Suitcase viewed in the
OS X Finder
The ability to double-click on Font suitcase files first appeared in Mac OS 7, supplanting the
venerable Font/DA Mover application for Mac OS 6.0.x. So, wanting to see just what was in the
SpecialText suitcase file, it was time to fire up the WayBack machine and obtain the last release
version of Font/DA Mover 4.1 from the Apple "older" software repository at: http://www.info.apple.com/support/oldersoftwarelist.html.
Font/DA Mover 4.1 Icon
Font/DA Mover Dialog
Using Font/DA mover, I was able to remove the extra font from the suitcase, and this allowed
QuarkXpress to finally cough up a printout, but with a bitmap version of the font, and still with
the alert that the font "SpecialText might be corrupt." I felt I was getting closer to a solution
with my focus on possible problems with the SpecialText bitmap or the font suitcase which contained
it, but moving the fonts to a new suitcase didn't help either. Nevertheless, getting re-acquainted
with Font/DA Mover was a real blast from the past, a truly amazing instance of a 14-year-old program
still working perfectly in Classic, still useful after all these years.
Back To The Drawing Board
So, my client and I began hunting for the original Fontographer install diskettes, and when we
eventually found them, we discovered that they were unreadable by my USB floppy drive (they were
800k disks). So, after digging a PowerMac 9600 out of the closet, I was able to install Fontographer
and re-generate the bitmap fonts for SpecialText. However, QuarkXpress had the same complaint about
the font. Evidently, the way that particular version of Fontographer produced bitmap fonts (with the
file type of NFNT, to be exact), wasn't up to snuff. Other Quark users on the Internet had reported
similar printing issues and font corruption messages with older releases of Type 1 fonts that hadn't
been edited, such as Frutiger.
So, it was up to me to either purchase, or convince my client to purchase, a newer version of
Fontographer (which, though it might be more up-to-date than the Altsys iteration my client owned)
that wasn't even OS X native, and there still would be no guarantee that the bitmap fonts it
produced would be Quark-digestible. It was time to look elsewhere. Searches on the Internet turned
up an OS X native application called Font Lab (http://www.fontlab.com), which cost $549, and which by all
available reviews and the features listed was "the bomb" when it came to font-editing and
conversion. However, as my client was already unhappy, I felt that asking them to spend the money
for Font Lab would have been a bad idea. Since I am not a professional font designer, or even a
professional graphic designer, spending $549 to fix one specific font problem seemed to be too
costly. It was time to look for other possibilities.
X Marks The Spot
Up to this point, possible solutions to this sticky issue had spanned OS X native applications
(Quark) utilities from Mac OS version 6.0.8 (Font/DA Mover), an application from the Mac OS version
7.1 days (Fontographer) and utilities from OS 9 (ATM Deluxe). The only free alternative left for me
was to search for an open-source solution.
I am devoted to using open-source software on my Mac. X Windows on OS X is a great solution for
many tools that would cost hundreds or thousands of dollars for their commercial counterparts. In
May of 2003, I gave a presentation to the Chicago regional chapter of the Apple Consultants Network
on X11.app (Apple's release of X Windows for OS X) and the Fink Project (HYPERLINK
http://fink.sourceforge.net/) which ports open-source
Linux and BSD software for use on OS X. I specifically remember one consultant's reaction to the
presentation when it was announced. He felt that X Windows on OS X was "too technical" and would not
attend the afternoon presentation, just the morning business meeting, because he felt it was a
technology he would never use, one that provided no useful solutions to his clients. Although he was
the only consultant who spoke up, I was pretty sure others had similar opinions: that running Fink
and X11 was too techy for the casual user or even most graphic designers, or maybe even themselves.
However, in this case, my familiarity with Fink, X11, and Xcode (Apple's free Developer Tools)
provided me with the ability to solve my client's font problem. So, I'm going to go out on a limb
and say that all Mac consultants should have Fink and X11 in their bag of tricks. Not having that
capability means paying for commercial software (understandable if a customer is to use the solution
and doesn't have the time/patience to learn how to work in X11), so why shouldn't a consultant be
prepared, save money, and be able to service their customers' needs? In this case, the hours of
fiddling with X11 and Fink paid off--I found an open-source font editor called Fontforge, which goes
by the stage name "the application formerly known as PFAedit."
Getting Prepared For FontForge
Getting Fink and X11 going on the Mac today is far easier than it was in May 2003. The latest
Fink installer automatically configures itself and edits the bash.profile script which resides in a
user's home directory to recognize Fink installations, which are kept in a separate directory tree
under /sw/bin, rather than in the standard /usr/local directory where most installers place
command-line binaries that aren't part of the standard OS X package, reducing the possibility of
conflicts where packages wind up overwriting each other. Fink's separate directory tree also allows
easy backup, removal, and even sharing of those programs over a network, and the ability to use Fink
Commander, an Aqua GUI for users who are command-line shy. The Fink project has an excellent FAQ
area, a helpful document on Fink usage, and a forum for help with particular issues.
Fink Commander
Application.
Geting FINK And X11
X11 requires Mac OS X 10.3, which ships with an X11 installer on install disc #3. Also needed is
the X11 SDK, a separate installer on the Xcode Tools CD, or on one of the OS X 10.3 DVDs that ships
with new Macs. First items to install:
- X11.app located on install disc #3 or on an installer DVD (also available as a download
from HYPERLINK http://www.apple.com/support
- X11 SDK included with Apple's Xcode tools (also downloadable)
- Full install of Apple's Xcode
tools (you'll need this to compile source code to get the latest Fink packages)
- The Fink 0.7.1 Binary Installer from HYPERLINK http://fink.sourceforge.net, this package also includes the
wonderful Fink Commander application.
First, install Xcode, X11, and the X11 SDK. Then, download and install the Fink 0.7.1 installer
package. Next, copy the Fink Commander software from the Fink installer folder to the Applications
folder and launch it. Go to the "Source" menu and choose "Selfupdate-cvs." Now Fink will go though
and update its own binaries, as well as get the latest package descriptions.
There are two ways to install Fink software--downloading a pre-compiled binary version of each
package, or letting Xcode compile the binary from the source code available through CVS (the
concurrent versioning system). Fink also has two "trees" of software distribution, "stable" and
"unstable." Many applications that are available in the "unstable" tree aren't available either as
binaries or source code in the "stable" tree. To enable the use of the "unstable" tree, go to the
"FinkCommander" menu and choose "Preferences. . ." then click on the "Fink" tab, then select the
"use unstable packages" check box, then quit Fink Commander, relaunch it, and let it update the
package descriptions.
Fink Commander Unstable
Package Preferences
Now it's time to install Fontforge and any dependencies required to run it. If there are
dependencies a prompt will come up with choices to make, and generally the first choice will work
just fine. Open up FinkCommander, and type "fontforge" into the search box in the upper-right-hand
corner. When the fontforge package appears, select it and either choose "install" from the "Source"
menu or "install" from the "Binary" menu. Fontforge and all supporting programs will be downloaded
and installed. If there's a later version that's not available as a binary, then using the source
code is the only way to go, but the binary install will be considerably faster. If errors or
warnings come up during the installation, consult the troubleshooting guide within the FAQ section
at HYPERLINK http://fink.sourceforge.net. When Fontforge
is installed, repeat the process for the package "fondu."
Open up the X11 application which will be in /Applications/Utilities, and when the xterm window
appears (this is the X11 equivalent to the Terminal), type fontforge and hit return. This should
launch Fontforge. If X11 was already open during the install of Fontforge, it may be necessary to
type the rehash command in xterm first. To avoid typing the command in xterm to launch Fontforge, or
any other X11 application, customize the X11 "Applications" menu so that Fontforge points to the
command /sw/bin/fontforge.
Fontforge Splash Screen
Font Editing/Converting With FontForge
So, I now had all of the necessary tools at my disposal to edit my client's SpecialText font, but
I didn't know much about using Fontforge, so I needed to find out a few things first. Unfortunately,
the first thing I found was that I was unable to open the SpecialText outline font file, but could
open the SpecialText bitmap file. I had no trouble opening TrueType font outlines, dfont outlines,
or OpenType outlines, but getting to the outlines (necessary to regenerate the bitmap font) for any
Type 1 fonts proved elusive. Nor was I able to find any "how to" documents that described how to go
about it. The outline files didn't even show up in the "Open Font" dialog that came up upon launch
Fontforge:
Outline Fonts not
Showing
I was, however, able to successfully open and edit a bitmap font, but that didn't get me far
enough to generate a fresh copy:
Editing a Bitmap in
Fontforge
Then, I remembered that OpenOffice required a command-line tool, fondu, to convert Mac OS X fonts
for use in its X Windows environment, because it couldn't access fonts with resource forks.
Evidently, Fontforge couldn't open them either. So, I navigated to the folder with the Special Text
fonts in the Terminal, and issued one simple command:
fondu *
Suddenly, within my SpecialText Folder, I had a bunch of files with .bdf and .pfb extensions.
Fontforge recognized these as "Postscript Font Binaries." The fondu utility had extracted the
Postscript outline information from the resource fork of the outline file and deposited it in a data
fork format that Fontforge could work with. The .bdf extensions are simply for identifying bitmap
fonts. It is the .pfa (Postscript Font A SCII) extension that Fontforge, the application formerly
known as PfaEdit, was originally named for.
Outline Editor in
Fontforge
Fontforge supports exporting/converting to all known font formats, including OpenType. So, I
thought it might be nice to remove the bitmap font from the equation altogether. After generating
OpenType fonts for SpecialText, I was disappointed to find that QuarkXpress 6 was not
OpenType-aware; diacritical marks wouldn't appear, and other essential characters, such as double
curly quotes, wouldn't show up or print properly. So, I decided to regenerate the bitmap files as a
Mac "family" suitcase, with a .fam extension, which required opening all of the SpecialText Type 1
outline fonts (SpecialText, SpecialTextBold, SpecialTextIta, SpecialTextBoldIta) in Fontforge
simultaneously as in the picture below:
Preparing a Macintosh Font
Family
To regenerate the bitmap fonts as a Mac family in a single suitcase, there's several steps:
First, make sure that all of the open fonts have the same family information, click on the
"Element" Menu and choose "Font Info. . . "
Next, select the "Encoding" tab and change the encoding type from "Adobe Standard" to "Macintosh
Latin":
After clicking "OK," click on the "Element" menu again and this time select "Bitmaps Available. .
." and enter any number of point sizes:
Now click on the "File" menu in Fontforge and select "Generate Mac Family. . ."
Generate Mac Family
Be sure to select "PS Type 1 (Resource) as the outline format, and NFNT as the bitmap format.
Save the suitcase file with a .suit or .fam extension, and load it up with Font Book! There's now a
freshly generated bitmap font suitcase for OS X to use.
Satisfied Quark, Satisfied Customer
The new bitmaps worked perfectly with Quark 6, 6.1, and now 6.5. Quark not only digested the new
bitmaps for SpecialText, but seemed to unexpectedly quit a lot less often than with the old bitmaps.
Although I'm not specifically against Quirk (whoops, I mean Quark)Xpress 6, I do confess that I'm
more than a little annoyed at the fact that somehow it either has bugs that report older bitmap
fonts as corrupt, or is missing an essential capability that all other Mac OS X software has to
correctly address a bitmap font in a slightly outdated, or different NFNT format. My client is now
happily using SpecialText again, and hopefully for the next ten years before another application
breaks it, or puts me on the hot seat. Needless to say, I've performed this bitmap regeneration over
and over for customers using Quark 6; at one site I fixed over twenty fonts, so the presses could
get going again.
Fontforge, unlike some open-source equivalents to commercial software, seems every bit as capable
as its counterpart Font Lab, but having never used the latter, I can't specifically say how they
match up. But just browsing through the menus in Fontforge is pretty much a mind-blowing ride,
revealing things about fonts in general like OpenType extended characters, hinting, kerning,
encoding, and other details most of us who aren't font-designers take for granted. But more than
anything for me, that weeklong font troubleshooting experience highlighted the wealth and breadth of
solutions available on OS X, which serves up an eclectic feast of tools, some new and some
not-so-new. So, this article's for all the designers and Mac admins who need to satisfy their font
quirks. I hope it plays well in Peoria. And in New Delhi, too.
Dean Shavit Dean Shavit is an ACSA (Apple Certified System Administrator) who leads
training sessions and manages consulting projects for MOST (Mac OS Training & Consulting) in
Chicago. If you have questions or feedback you can contact him at
dean@macworkshops.com.