[XeTeX] Bad handling of lookup subtables.

Jonathan Kew jfkthame at googlemail.com
Tue Feb 21 12:58:18 CET 2012

This sounds like http://bugs.icu-project.org/trac/ticket/7753


On 21 Feb 2012, at 11:02, Paul Isambert wrote:

> Hello all,
> I use XeTeX to do some testing on fonts. If I'm not mistaken, given a
> lookup with subtables, the latter are tried one after the other until
> one of them identifies a proper input and is applied. In other words,
> only one subtable should be applied for a given lookup.
> However, it seems to me that XeTeX applies all subtables; in most cases,
> this is harmless, since only one of them finds a proper input anyway.
> But in some cases, a subtable may be designed precisely to prevent a
> subsequent subtable from matching in some contexts.
> For instance, this is how the "ss02" feature in Minion Pro works (Minion
> Pro is distributed with Acrobat, which is why I use it as an example).
> This feature replaces some letter, e.g. "e", by variants ("e.end") in
> some contexts (at the end of a word). To do so, a first subtable matches
> "e + X", where "X" is another letter, and does nothing; a second subtable
> matches "e" anywhere and does the replacement. The net effect is that
> "e" is replaced with "e.end" only when not followed by another letter,
> since the first subtable prevents the second from matching in unwanted
> contexts.
> However, since XeTeX applies all subtables, the replacement is always
> done. I've also tested that with a stupid handmade substitution turning
> "a" to "b" (first subtable) and "b" to "c" (second subtable), just to
> make sure XeTeX wasn't confused by dummy subtables (i.e. performing no
> change) and/or contextual substitutions; the test was positive as I
> ended up with "a" turned to "c" instead of "b".
> As far as I'm concerned, this is a pretty serious bug; but perhaps I've
> missed something (including, who knows, that this bug has already been
> spotted)?
> Best,
> Paul

More information about the XeTeX mailing list