letterspacing, different types of ligatures and ZWNJ



Hi

I am developing blackletter fonts. In these fonts, certain ligatures must not be broken up when letterspacing is increased (ch, ck, ſt, tz). I have encoded these with the OpenType feature "rlig" (required ligatures). The other ligatures must be broken up when letterspacing is increased. I have encoded these with the OpenType feature "liga".

An example: The character sequence "ch", encoded with "rlig", should always be rendered with the ch-ligature glyph, irrespective of letterspacing. On the other hand, the character sequence "fi", encoded with "liga", should be rendered with the fi-ligature glyph in normal text, but when the letterspacing is increased, it should be rendered with the f-glyph follwed by increased letterspace followed by the i- glyph. For more detailed explanations and screenshots, see:

http://unifraktur.sourceforge.net/letterspacing.html


On Ubuntu applications such as Firefox, this does not work correctly. I am not quite sure, but from what I understand, text rendering in Ubuntu Firefox is done by Pango, so I think this might be a bug in Pango.

The incorrect rendering in Ubuntu Firefox has two errors:

1. When the letterspacing is increased, the "liga" ligatures are still used, instead of the single characters' glyphs.

2. When letterspacing is increased, the ZWNJ (U+200C, required for German words such as "Zeit‌zone" 'time zone' that must not hava a tz- ligature) triggers double letterspacing as if it were a zero-width character. The ZWNJ should only inhibit ligatures, but it should not affect the letterspacing. Of course, fonts use a zero-width glyph for the ZWNJ. The text renderer, however, must be instructed to disregard the ZWNJ glyph when it comes to letterspacing.


Neither of these two errors occurs in Firefox on Mac OS X or in InDesign.

--
grüess
mach



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]