[XeTeX] Differing font name handling betwixt Mac OS X and W32 (and Linux?) XeTeX
jonathan_kew at sil.org
Mon Jun 19 17:18:22 CEST 2006
On 19 Jun 2006, at 3:18 pm, William Adams wrote:
> On Jun 19, 2006, at 9:21 AM, Jjgod Jiang wrote:
>> It should be "Aldus LT Std Roman". William, you can try the test
>> document attached in my mail.
> I tried it on my G5 and it didn't work --- I suspect if I copy it to
> my pen slate it will, so there seems to be something strange about
> how this font is constructed which is making it operate
> inconsistently between Mac OS X and the Linux/Windows port.
That's possible; unfortunately, OpenType fonts can contain a
bewildering variety of names, and different systems pay attention to
different subsets of them. And xetex tries to avoid iterating over
all the installed fonts and collecting all their names, because this
is a time-consuming operation.
(It used to do that, and the result was that annoying delay when the
first font was loaded. Now, this should only happen if (a) the
underlying system -- Cocoa, fontconfig, or whatever -- decides it
needs to update its caches, or (b) you use a name that the system
doesn't recognize, in which case xetex falls back on inspecting every
font for itself, on the theory that finding it slowly is better than
not finding it at all.)
> Do we have a better nomenclature for describing this bifurcation?
> On Mac OS X it uses AAT, right?
It currently uses Cocoa's font manager class (NSFontManager), after
experimenting with the old (QuickDraw-based) Font Manager and the
Apple Type Services APIs in earlier versions, and concluding that the
Cocoa option works best for xetex's purposes.
> What's the equivalent being used on
Fontconfig is the equivalent that is used to find available fonts.
In either case, xetex does its own management of font names,
families, styles, etc., based on the collection of available physical
fonts that it finds from the system-dependent libraries.
No; that would be an alternative to ATSUI (Mac only) or ICU layout
(all platforms), the libraries used to handle rendering behavior once
the font has been found. But there's no Graphite support at present.
More information about the XeTeX