[XeTeX] OT: scripts, glyphs and Cocoa text editing

Jonathan Kew jonathan_kew at sil.org
Tue Nov 8 19:41:15 CET 2005

On 8 Nov 2005, at 9:21 am, musa furber wrote:

> Both TeXShop and SubEthaEdit produce something like the image below:
> <pastedGraphic.pdf>
> The render starts with Geeza Pro, all characters connected just as  
> it should be. After the tilde it comes to Unicode 0xfda, a ligature  
> missing in Geeza but present in other fonts. The renderer switches  
> to a font that does have it (Lotus Linotype, from the looks of it)  
> and then stays there. Lotus has OpenType tables for Arabic but not  
> for AAT. My naive assumption is that this is why I get isolated  
> shapes once the switch is made to Lotus.
> It's nice that the rendering algorithm does what it can with what  
> it is given. But it seems like it ought to take into account the  
> font's script specific tables and not just its repertoire of glyphs.

This is inherently difficult in the case of AAT fonts, as the AAT  
tables are not "script specific". AAT uses a generic, script-neutral  
engine, unlike the script-specific "shaping engines" used with OT  
fonts, and so the system doesn't really have any easy way of  
"knowing" whether the tables in the font are implementing appropriate  
behavior for any given script. Indeed, there is no concept of  
"script" in AAT; there are just runs of Unicode characters that are  
mapped to glyphs and then processed (by the generic engine) according  
to the tables in the font.

> Can anyone suggest a workaround, short of removing Lotus, editing  
> Geeza, or making Al Bayan my default font? None of these solutions  
> are ideal.

I'm familiar with the behavior, but don't have a good workaround to  
suggest - though a font manager utility that allows you to easily  
activate/deactivate Lotus might be helpful.

Maybe a Cocoa developer out there would like to provide an add-in for  
the text system that gives better control over font fallback  
selection - any volunteers? :)


More information about the XeTeX mailing list