2011/8/22 Mark E. Shoulson <m...@kli.org>:
> I'm not certain I understand the question, but if I have it right... The
> logic order is ALEF + LAMED, and the presentation... places those in a
> right-to-left sequence, shall we say (since talking about the presentation
> *order* is confusing here).  The font table contains the lookup that ALEF +
> LAMED => ALEF_LAMED_LIGATURE.  It all goes according to the logical order,
> since the presentation "order" isn't really an order, it's just a direction.
>  (this is different from things like devanagari short-i vowel, which "moves"
> with respect to the other letters in the script.)

Lookup tables in fonts (at least OpenType) do not work at the
character level, but at the glyph level: they substitute glyph ids by
other glyph ids. Sequences of glyph ids are already reordered in
visual order by the layout engine when they are searched in OpenType
lookups, should they be RTL glyphs, or Indic glyphs with special
reordering requirements (independant of the logical ordering of
characters/code points).

In addition, the same sequence of characters may be sometimes searched
in several distinct sequences of glypg ids (this depends on the kind
of OpenType table being consulted, as well as on character properties
which also determine which lookup table will be searched and the
relative order of successive lookups).

The only lookup table in fonts that work at the character/code point
level is their "cmap" (which maps a default glyph id from each encoded
character, independantly of their logical or visual ordering, as well
as independantly of the script/language in which those characters or
glyphs are used, but possibly depending on the encoding used and the
software platform supporting that encoding).

Not all fonts need a "cmap"; for some of them, a default cmap may be
implied or automatically constructed -- for example Symbol fonts in
Windows, that are implicitly mapped in a PUA range; another example is
Type1 or CFF fonts that have a default "standardEncoding" inherited
from PostScript, based on glyph names (rather than glyph ids or code
points) that may have themselves an implicit mapping to UCS codepoints
(if these names are those defined in the AGL). Not all these mappings
are 1-to-1, which means that they are not reversible, in the general
case.

Reply via email to