From: Philippe Verdy <>
Date: Mon, 22 Aug 2011 17:30:00 +0200

2011/8/22 Shriramana Sharma <>:
> On 08/22/2011 05:26 PM, Behdad Esfahbod wrote:
>> OpenType tables contain entries in the logical order of the script in
>> question.  Ie. Arabic tables are always RTL.
> Yes I understand, but still, to clarify:
> The font tables themselves contain only ASCII characters I presume.

No. The lookup tables contain sequences of numeric glyph ids (16 bit
integers in TrueType and OpenType). Which are also not the code point
values, and not the character names or glyph names.

> you write:
> or

Let's say that;
- the LAMED character is cmap'ped (by its code point value in an cmap
for Unicode, or by its code position in a cmap for another legacy
8-bit encoding) to the glyph id 1012,
- and the ALEF character is cmapped to the glyph id 1001 (the values
of glyph ids are not important, not even their relative order or
differences, they don't need to obey any standard),
- and the ALEF-LAMED ligature is in glyph id 1540 (the ALEF-LAMED
character of the UCS may also be cmapped separately, but this is not a

Then the lookup to perform the ligature will contain : (1012, 1001) -> (1540).

Glyph id's are presented and scanned in the lookup table, in sequences
preordered in visual order by the text layout/shaping engine.

However, given that the ALEF-LAMED is also a character of the UCS, the
text layout/shaping engine that knows the Arabic script can also
perform a character-based substitution itself, even in absence of the
lookup of glyph ids in fonts; then it can render the ligature
character according to the glyph id to which it is cmapped in that
Received on Mon Aug 22 2011 - 10:32:43 CDT

This archive was generated by hypermail 2.2.0 : Mon Aug 22 2011 - 10:32:45 CDT