Sunday, December 09, 2007

OpenType, TrueType, PostScript fonts, which is best?

A new well designed OpenType or TrueType works fine with Mac OS X 10.5 (Leopard), and most people have no reason to ask themselves any questions - at least not if you write in a language with a Latin alphabet. Older fonts may not work in Mac OS X 10.5, even though they worked in 10.4. As PostScript fonts are being phased out for OpenType fonts, PostScript fonts often tend to fall in the unsupported category. Mac OS X supports Macintosh or OpenType Postscript, but it does not support Windows Postscript.

Here is a short summary for each font.

  • PostScript fonts are nowadays almost always Postscript Type 1. There are plenty of other Types, but none of them matters. Some features (like the hinting) are not completely documented. They are defined with cubic Bézier curves which is more flexible and more complicated than TrueType's quadratic curves. The reason they exist is that Adobe created them. As Adobe now promotes OpenType instead, it is likely that pure PostScript fonts will become rare.
  • TrueType fonts were developed by Apple and licensed by Microsoft. They use quadratic Bézier curves. The reason they exist is that Apple and Microsoft did not want to pay Adobe's high license fees.
  • OpenType fonts were developed by Microsoft and Adobe. They are a thin wrapper around PostScript and TrueType fonts and share the same features. The reason they exist is that Microsoft and Adobe wanted one unified format.

Most fonts work equally well on both Mac OS X 10.5, Windows and Linux, but there are exceptions.

OpenType support is much improved in Mac OS X 10.5 compared to Mac OS X 10.4 (Tiger), but it is not yet complete. Most typographic extras now work as well as they do with TrueType fonts: ligatures, old-style figures, contextual alternates and so on. Even the Japanese glyph variants work as well in OpenType as they do in TrueType.

However, some glyph variants still do not work in Pages; exact line spacing does not work; and Arabic ligatures do not work at all, even though they work in TextEdit.

2 comments:

Anonymous said...

> Could you expand on that? Was this particular to an early specification? Surely modern fonts often include, fj, fb and fk ligatures? See for example Apple's doc.

The font is the bitmap model or spline model for the glyph graphics - this is separate from the character:glyph mapping model. The SFNT Spline Font file format is able to house many font formats. The Open Fornt Architecture, introduced with System 7.5 in 1994, is able to support any font format for which there is a rasterizer in the operating system. There is no requirement that an SFNT should contain splines - the Hanzi fonts for Newton OS were bitmap only. The SFNT's that ship with OS 7.5 to 9.2 include both handmade bitmaps for specific common sizes and scalable splines that are gridfitted at custom sizes. As of 1994 there were many spline models, URW was first (Dr Peter Karow in 1972 for signage cutting systems, later for laserimaging on address spaces), there was the internal Linotype spline model that had no name I know of, there was Monotype Qubic, there was Bitstream Speedo, there was Agfa Intellifont, there was Sun Foleo, there was Adobe Type 1 and there was Apple TrueType.

TrueType was made for high-end imaging, but it fell victim to a marketing model that placed it for low-end imaging. TrueType is a programming language, and the small developer who is able to program the splines to the quality of gridfitting she wishes is able to add value. The rasterizer/scaler has little information of its own, it does what the instructions say it has to do. The same model applies to state machines in the TrueType 2, TrueType GX, Apple Advanced Typography model - it adds value to the transformation file itself, not to the application software or operating system software that executes the programming. Adobe does not support strong instructions in its model, it supports weak hinting which leaves it up to the parts of the PostScript interpreter that process Type 1 hints how to implement them. This means that the result is not the same across different versions of the PostScript interpreter. The same problem occurs in the OpenType line layout model, because if the same Unicode character string and the same OT GPOS/GSUB tables are applied in five different applications, there is no guarantee that the same glyphs will be rendered : this is up to customer testing. The project checked this with Microsoft program management and Adobe program management in the beginning (never step onto new ice without a strong line to shore). The development models are different, the business models are different, and the support models are different. Apple's mistake was that it wanted to make hardware, not software, so Apple did not do what Jonathan Seybold published that Apple should do : make software to support Apple's imaging models. Apple TextEdit and Apple Pages are the first such products, and late, perhaps too late, in the game.

> PostScript fonts are nowadays almost always Postscript Type 1. There are plenty of other Types, but none of them matters. Some features (like the hinting) are not completely documented. They are defined with cubic Bézier curves which is more flexible and more complicated than TrueType's quadratic curves. The reason they exist is that Adobe created them. As Adobe now promotes OpenType instead, it is likely that pure PostScript fonts will become rare. (http://pagesfaq.blogspot.com/)

This is incorrect. Like the Apple Open Font Architecture for the SFNT Spline Font file format, the OpenType Specification allows alternative spline font formats, in this case both Adobe Type 1 as Compact Font Format which Adobe OpenType uses (surprise) and Apple TrueType which Microsoft uses. The reason TrueType exists is that Type 1 is part and parcel of the Adobe program-interpreter imaging model in which what will image is unknown until it is imaged, and what is imaged is not precisely known in advance. If you want to be sure what the interpreter will image, you send it deviceCMYK preseparated in the ICC model as you know that this will image by the numbers, and you send it type converted to splines/outlines/graphics for the selfsame reason. Basically, you send the interpreter a pagination program in which it is unable to exercise discretion in deciding what it will do. It then operates in slave mode (lovely expression -:)).

> TrueType fonts were developed by Apple and licensed by Microsoft. They use quadratic Bézier curves. The reason they exist is that Apple and Microsoft did not want to pay Adobe's high license fees. (http://pagesfaq.blogspot.com/)

No, the reason the TrueType programming language exists is that the program-interpreter model is for print-centric imaging and the model does not support the display-centric imaging of Apple and Microsoft. Adobe made sure that ATM for GX would use the Adobe handmade bitmaps in Type 1. TrueType can be instructed to do better. I'm sorry, but I have this independently. Among other things, in fax from Monotype in 1994.

> OpenType fonts were developed by Microsoft and Adobe. They are a thin wrapper around PostScript and TrueType fonts and share the same features. The reason they exist is that Microsoft and Adobe wanted one unified format. (http://pagesfaq.blogspot.com/)

That is correct, but it is not completely correct. Microsoft attempted to licence the rights to implement TT2 line layout logic in Windows 95. Apple declined. Thus Microsoft began to develop its own complex composition model on top of TrueType Specification 1.0:1990, because Microsoft also need to support complex classic composition in the Latin script and complex modern composition in other scripts which require contextual reshaping, contextual reordering, and contextual reposition.

Microsoft also needed to support the colour:colourant model of what by then had become the International Color Consortium (initially it was the ColorSync Consortium). Microsoft turned to Kodak for engineering, and the outcome was a Colour Management Module that supported tetrahedral interpolation with a precision of only eight grid points. It was a fine CMM as long as one did not use it. For Windows 98, Microsoft licenced the LinoColor CMM which is still in use in Windows 2000 and Windows XP. The last I linked inside the DLL it said "Uwe's CMM" meaning the CMM of Dr Uwe-Jens Krabbenhöft. Apple had Luke Wallis and the ColorSync team implement an inhouse CMM for Mac OS X, discontinuing licencing. Microsoft has done the same for Windows Vista.

People outside Apple got Apple to open ColorSync 2, and this was a success. Nobody got Apple to open TrueType 2, and today despite its strengths there is no user community. It supports interface interactivity better, it supports optical scaling better, it supports application-independent line layout better - but Apple has no idea what to do with it. Similarly, I have read miles of Apple advertising about ColorSync, but nobody at Apple had used ColorSync to print an Apple brochure using Apple defaults when the last abc project pointed this problem out. Is the ColorSync Utility user-friendly? Well, it is is useable, but user-friendly? Is the Character Palette user-friendly? Same thing - if you know what you are doing, you can do it. If you don't, well, you don't have a prayer.

Best,

Henrik

Anonymous said...

thx for that enlightening comment!
:))