It appears to me that XeTeX doesn't handle, at all, OpenType context substitutions that match without doing a substitution - i.e. the ones that appear in Adobe feature files as "ignore sub" rules. When one of these matches, the renderer is supposed to skip the remaining rules in the lookup. XeTeX doesn't seem to, resulting in incorrect substitutions. Although, as I recently mentioned, I don't trust FontForge 100%, FontForge does seem to work correctly on the particular case I'm looking at right now.
I don't have a minimal example yet (where I'm actually observing the problem is in the middle of a complicated set of substitutions with a lot of other things going on, which is part of what's making debugging hard) but I may try to construct one. On the other side, I haven't seen an example where "ignore sub" rules *do* work in XeTeX. Has anyone on the list got an example of a font where XeTeX correctly processes context substitutions that include rules of this type? Since I'm the designer of the font that's failing for me, I think I can work around the absence of "ignore sub" by creating a set of alternate glyphs that terminate substitution - where I would use "ignore sub," I instead substitute to the special alternates, and then I just never write any rules that can match those glyphs as input. The number of glyphs involved is small enough not to be a hardship. If it's really true that XeTeX cannot process ignore rules, though, that will seriously limit its ability to work with other fonts out in the wild that may depend on such rules. -- Matthew Skala [email protected] People before principles. http://ansuz.sooke.bc.ca/ -------------------------------------------------- Subscriptions, Archive, and List information, etc.: http://tug.org/mailman/listinfo/xetex
