[XeTeX] XeTeX 0.9999.1 Indic regression

Ian-Mathew Hornburg imhornburg at gmail.com
Fri Mar 22 17:47:31 CET 2013

Hello again! The minor version release with the updated HarfBuzz has
corrected the earlier behavior regarding the half-form glyphs
requested with ZWJs and XeTeX’s parsing of script tags, but appears to
have introduced another Indic shaping regression into HarfBuzz.

In Bengali and Oriya (and some other Indic scripts, I think, but
these’re what I’m familiar with) certain consonant-vowel combinations
trigger a lookup for ligatures. Which ones are included differs from
font to font, but good ones contain them, but Unicode describes a
method for *not* selecting the ligated form as well. The chapter on
Bengali in the Unicode standard describes how the behavior works.

A given font can choose whether or not to use the ligated forms as the
default for rendering. If the ligated form is the default, a ZWNJ can
be inserted between the consonant and vowel to request the non-ligated
form (e.g., C-ZWNJ-V). If the non-ligated form is the default
(uncommon), a ZWJ can be inserted inbetween to request the ligated
form. While it’s not mentioned in the Unicode or OpenType standards,
the Oriya script contains these special consonant-vowel ligatures just
like Bengali.

While most fonts default to the ligated versions, it’s my
understanding of the two specs that ZWJs should be able to be included
anyway to explicitly request ligatures, even if it’s technically
redundant. Testing with 0.9999.0 showed that that worked just fine
with both Bengali and Oriya fonts I tested.

0.9999.1 seems to have broken this, and I assume it’s a problem in
HarfBuzz again. I’ve linked a MWE below that demonstrates the bug. It
uses Microsoft’s Shonar Bangla font again and INDOLIPI’s e-Oriya OT
font, since it’s one of the only OpenType Oriya fonts I know of that
contains CV ligatures. [Available here:

Bengali text functions *correctly* for ligatures that’re of the form
CV, but fails for those that’re CCV. Oriya CV ligatures now fail
completely. [http://pastebin.com/SQWvcPnQ]

(I’m guessing that like the other bug, this is likely better reported
on the HarfBuzz list rather than XeTeX’s. I’d register for that list
and bugtracker to report it there, but I don’t know how to use
HarfBuzz’s testing tools to check shaping behavior outside of XeTeX.
Any assistance would be greatly appreciated so I can help in reporting
these sorts of not-XeTeX’s-fault bugs upstream in HarfBuzz.)

More information about the XeTeX mailing list