Opentype Character Variant feature not working in Writer

I’ve been testing the OpenType features in LO Writer 5.3.2.2 (Windows 7) and have found some issues.

Tests were conducted with fonts from SIL (Charis SIL and Gentium Plus) using the character U+0264 LATIN SMALL LETTER RAMS HORN. The most common shape of this character is ɤ and the SIL fonts contain two alternate shapes. These alternates can be accessed through Graphite or OpenType features.

Using Graphite, I can access the first alternate (with a larger bowl) by entering Gentium Plus:ramh or Gentium Plus:ramh=1 and the second alternate (called a small gamma) with Gentium Plus:ramh=2. This matches what the font documentation shows.

The SIL fonts use the OT feature Character Variant 25 for these alternates, according to the documentation. But nothing works; I tried Gentium Plus:cv25 / Gentium Plus:cv25=1 and Gentium Plus:cv25=2. All I get is the default shape ɤ. Have I misunderstood how something should work, or is this a bug? (I’ll be happy to submit a bug report, but OT support is new in Writer so I decided to post here first to make sure I’m not overlooking something obvious.)

The other OT features that I have tested so far (quite a few) all work as expected. (Thank you to the developers for all the work on this!!) Aside from the SIL fonts, I don’t have any that contain the Character Variant feature. If anyone knows of such, I’d be happy to try them. Note that the OT cv25 feature does work with the SIL fonts in XeTeX, so it seems the font is constructed correctly.

Personally I would rather submit new bug for a feature that is new and thus known to have little testing and small number of users using it and able to advise, while bug report is likely to draw attention of the developer (Khaled most probably), and be answered. The worst thing that may happen with a bug report is it being marked NOTABUG with proper explanation.

I hope it is not too late. It seems the problem with «character variants» (cv01 to cv99) is not with LibO but with the fonts. I confirm that it doesn’t work on Gentium Plus, STIX Two text, etc. In fact, it doesn’t work on most fonts, but it works without a problem with EB Garamond:

image description

Also, I tested said fonts on XeLaTeX and the results are exactly the same.

You could also try my Da Lekh fonts (see Tai Tham Renderer Tests), which exercise both ssxx and cvxx. I mistakenly set up ss97, ss98 and s99 features, which work in Firefox but not LibreOffice! (Those features will be renamed in Version 0.09.) The ss01, cv01, cv02 and cv03 features all work in LibreOffice 5.3.3 on Ubuntu, even though the cv features are a little heterodox at Version 0.08. (They enable groups of lookups rather than using alternate substitutions.) Good sample text for ringing the changes is ᨲᩣᩴᨣᩖᨠᩖᨠᩖᩪᩌᨮᩁᩘᩈᩦᩈᩘᨥᩮᩣ. The display also varies with language, though Lao is the only one that works easily with LibreOffice. (Shan and Tai Lue are not properly supported by LibreOffice.)