[XeTeX] XeTeX and "ignore sub" substitution rules

mskala at ansuz.sooke.bc.ca mskala at ansuz.sooke.bc.ca
Mon Nov 28 06:46:14 CET 2011

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

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
Matthew Skala
mskala at ansuz.sooke.bc.ca                 People before principles.

More information about the XeTeX mailing list