Omega and Zapfino
Total Page:16
File Type:pdf, Size:1020Kb
TUGboat, Volume 24 (2003), No. 2 183 pretation of Apple’s licensing agreement leads me to Font Forum believe that any such parsing or conversion would not be allowed by that license. However, having purchased Mac OS X and its There is no end: Omega and Zapfino $10,000 worth of fonts, one cannot help but wish William F. Adams to use them. Although Zapfino works well in “Co- coa” programs in Mac OS X such as TextEdit.app, Abstract its special features such as ligatures are enabled by The future of type is OpenType (Adobe and Mi- AAT which is unfortunately not supported by the crosoft’s successor to Apple’s “Royal” font technol- more traditional “Carbon” Macintosh applications ogy which was licensed to Microsoft as TrueType), in which class all mainstream graphic design appli- 2 Unicode, and other extensions of TrueType and the cations are, at this writing. This is unfortunately Type 1 font format such as ATSUI (Apple Typo- quite limiting: either one must limit oneself to Co- graphic System for Unicode Information). While coa applications, or in applications such as InDesign, TEX has been extended to support other new for- make use of its Glyph palette to insert alternates and mats and standards such as .pdf, support for the ligatures by repetitive pointing-and-clicking. Since new font formats has been limited at best. there is no TEX variant which can access system 3 Fortunately, for Unicode in TEX, we have Omega, fonts on Mac OS X as of this writing, one must which coupled with the other strengths of TEX, can develop a work-around which allows one to access be sufficient to take advantage of new technologies arbitrary fonts from within TEX and to simulate the even without explicit support, by using the proper sophisticated typesetting capabilities of OpenType (or improper) techniques. or Apple Advanced Typography. This paper will be an explanation and explo- The large character sets of fonts such as Ap- ration of this, looking at a specific font and format ple Chancery or Zapfino make accessing characters (the .dfont ATSUI-enabled version of Zapfino), ar- in 8-bit blocks untenable, so Omega is an obvious guably very nearly a worst-case scenario, and how choice. This serves two purposes: first, it makes the it can be dissassembled into individual glyphs and typeface, Zapfino by Prof. Hermann Zapf available seamlessly stitched back together to automatically for use in TEX by way of Omega; second, it provides insert ligatures and swash and variant forms using an encoding scheme and mechanism to access arbi- ASCII markup in an otherwise ordinary .tex source trary ligatures and alternates which may be of use file which can then be used in a prepress ready work- for other projects. flow. History Introduction Zapfino had its origins in Prof. Zapf’s 1944 sketch- Apple’s Mac OS X derives from NeXTstep, by way book, when he was a mapping officer during World of OPENSTEP, with a grafting of Apple Macintosh War II. A previous attempt to render those letter- user interface concepts. In terms of font support, it forms as type, Virtuosa Script for D. Stempel, had handles Mac Resource/Suitcase fonts (both Type 1 been rather compromised by the limitations of hot and TrueType) and PC TrueType fonts, but loses metal matrices, especially the swash letters. This support for Unix .pfa NeXT style .font bundles. design was revived when David Siegel in 1993, after Apple’s QuickDraw/GX is added as well, now known working on the Euler project with Prof. Zapf, and as ATSUI (Apple Typographic System for Unicode after graduating approached him about a chaotic Information) or as AAT (Apple Advanced Typogra- calligraphic typeface based upon an example done phy) depending on the specific context or emphasis for the Society of Typographic Arts in Chicago. Re- desired. membering the page from his sketchbook, Prof. Zapf Mac OS X provides many of its system fonts saw the chance for a design without compromises in the new .dfont format, which, while a straight- forward storing of a Mac-style TrueType font in the 2 file proper (the datafork in Mac parlance) instead of Since then, the open source drawing program Cenon has been released for Mac OS X as well as OPENSTEP 4.2 and the resource fork as was done with Mac OS 9 and GNUstep. It is available from http://www.cenon.info. There earlier, is not equivalent to a PC format TrueType are also SoftMagic’s “Project-M”, Stone Design’s Create or font stored in a .ttf file. Although there are now Purgatory Design’s Intaglio, but none are widely used. 3 Jonathan Kew has since released XeTeX, a successor to programs which can open and parse fonts stored in his T X/GX program for Apple’s QuickDraw/GX, which runs 1 E a .dfont (Pfaedit is a notable example), my inter- on Mac OS X, thus making AAT fonts accessible. It is avail- able from http://scripts.sil.org/xetex. 1 Renamed to FontForge, this wonderful program is avail- able from http://pfaedit.sourceforge.net. 184 TUGboat, Volume 24 (2003), No. 2 due to the advantages afforded by digital type tech- ~/Library/texmf/fonts/ovp/apple/zapfino nology. ~/Library/texmf/fonts/ovf/apple/zapfino Digitization was done by Gino Lee, but pro- ~/Library/texmf/fonts/ofm/apple/zapfino duction halted due to personal problems, and lan- Before testing could begin, it was necessary to guished until Prof. Zapf showed the design to Lino- have the letterforms themselves accessible to output. type. It was then rendered as a traditional, multiple This was done by using Adobe InDesign to typeset alphabet typeface family. an Adobe Tagged Text file which enumerated all of Installation the characters in Zapfino. First, a single character was set in the font Zapfino in InDesign at 72 points This then begs the question of how does one install a size with 96 points leading and then exported (File font into a program (system) which doesn’t have di- | Export. , select “Adobe InDesign Tagged Text” rect support for that font format or its capabilities? in the Formats: pop-up), yielding a file with the fol- The solution is quite obvious in retrospect: consider lowing line needed for our purposes: what the system does support (PostScript by way of <cTypeface:><cSize:><cLeading:><cFont:><cHang:> dvips and the \special mechanism) and where that <pHyphenationLadderLimit:><pHyphenation:> intersects with the capabilities of systems which can <pHyphenationZone:><pTabRuler:><ParaStyle:> use the font to its fullest (Encapsulated PostScript <pHyphenationLadderLimit:0><pHyphenation:0> File graphics). The solution then is to load all of <pHyphenationZone:0.000000><pTabRuler: the characters of a font into a file so that they may 28.000000\,Left\,.\,0\,\;56.000000\,Left\,.\,0 then each be output as individual .eps files, stitch \,\;84.000000\,Left\,.\,0\,\;112.000000\,Left\,. said files together as a virtual font and then rely on \,0\,\;140.000000\,Left\,.\,0\,\;168.000000\, dvips to put everything back together. Left\,.\,0\,\;196.000000\,Left\,.\,0\, Zapfino, however, has so many characters \;216.000000\,Left\,.\,0\,\;224.000000\,Left\,. (1,417 in the version bundled with Mac OS X 10.2 \,0\,\;252.000000\,Left\,.\,0\,\;280.000000\, “Jaguar”4) that Omega, with its support for Uni- Left\,.\,0\,\;308.000000\,Left\,.\,0\, \;336.000000\,Left\,.\,0\,\;> code which provides for large character sets, is <cTypeface:Regular><cSize:72.000000> needed. Omega also affords the Omega Transla- <cLeading:96.000000><cFont:Zapfino> tion Process (OTP), which is far more efficient at <cHang:Baseline>A<0xFFFD><cTypeface:> enabling long ligatures than the standard TEX or <cSize:><cLeading:><cFont:><cHang:> PostScript mechanisms. Fortunately, odvips sup- <cSpecialGlyph:><cTypeface:Regular> ports the aforementioned special mechanism. <cSize:72.000000><cLeading:96.000000> Although font metric information is probably <cFont:Zapfino><cHang:Baseline> not protectable, there is no reasonable method at <cNextXChars:Page> present to access the data stored within the Zapfino (The exported character was “A” — there is some font file which wouldn’t run afoul of Apple’s license additional text above and below said line, but it forbidding decompilation or other modification. Pre- need merely be preserved in its entirety for later sumably, however, a program using the nsText ob- use.) After a little study and experimentation, ject could access such data on a per character basis it was found that the placed character could be and write that out in a useful format. In lieu of replaced with <cSpecialGlyph:####> where #### such, a copy of the .afm files provided by Volker was a number ranging from 1 (the first character, Schaa (he had received a copy of the original Lino- “A” shown in the Unicode glyph palette in in Mac type Zapfino CD-ROM from Prof. Zapf as a gift) OS X) to 1417 (the last character, the open Ap- was used as a beginning point. These files were con- ple symbol), so an Excel file was created with 1,417 verted into standard .tfm files using afm2tfm and rows and three columns. The first column was ev- thence to .pl files using tftopl. The file for the font erything before the “A” endlessly repeated, with Zapfino One served as the basis for zapfino.ovp, <cSpecialGlyph: added. The second column in- the base font file. The utility ovp2ovf was then cremented the current row number starting from 1. used to create ovf and ofm files for Omega to use. The third column closed out the line, adding a > The files are stored in (as appropriate) to close the cSpecialGlyph directive. This was ex- 4 Since this writing, Linotype has released Zapfino Ex- ported as text and replaced the line shown above tra OpenType which provides even more characters, most in the Adobe InDesign Tagged Text file which was notably small caps, and Forte which provides five ad- then saved.