MS Word — non-responding ligatures switch

Adam Jagosz
Adam Jagosz Posts: 689
edited December 2016 in Font Technology
My font, a connected blackletter, has a complex system of features which seem to mess up MS Word 2016 on Windows 10. It uses, among others, the ss01-..., liga and dlig features. I can switch liga and dlig on and off without problem but only until I start setting different options for subsections of my text.
For instance, if I set all ligatures on for all the text, and then try downgrading a section of the text to only standard or only discretionary ligatures, the setting takes no effect... in the main view; however, if I go to the stylistic sets menu, the correct and expected version of the selected text (regarding the active ligature setting) is displayed in the stylistic sets previews. Moreover, if I turn on any of the available stylistic sets, the previews come alive and I regain control over ligatures in the main view as well. If I ever switch back to default style the ligatures go back to an undefined state in terms of display. It seems like something is blocking the ligatures from being displayed accordingly to the settings.
If I clear formatting and reformat the text, I can again set ligatures on and off, but the whole thing seems to get ruined once I change options for one selection and then for another, neighbouring one. Sometimes changing the options takes effect, but affects also a following section of the text, for example the next word. And the substitution rules are most likely not dependent on it. If I select the errouneously affected word and check its settings they are unchanged and so is its preview in the stylistic sets panel.
Any ideas? Other than dump this poor piece of software?

Comments

  • Have you checked the order of the lookups? Other option could be the DSIG table. At least in MS Word 2013/Win the font behaviour is erratic if the font is not signed. Not sure about MS Word 2016 though.
  • I'd double check the order of your features & lookups - have you cross-tested in other versions to confirm the error is only occuring in Word 2016?
  • Possibly related: Some of my fonts have trouble realizing their ligatures in MS applications (on a Mac) and sometimes also the Apple equivalents. For instance, here's Keynote correctly applying contextual substitution to /f before /l in Eau de Garamond, but then failing to replace those with the corresponding ligature:


    MS Word is also doing really weird things with kerning. For instance, although I had kerning activated, the /T/r of «Trajectory» in the title (set in Cormorant) was not kerned. As I typed on and made the title longer, suddently the kerning kicked in! I can kick it back out again just by typing an extra space character:


    Very annoying indeed!

    I don't think it's a mistake in the OpenType programming, since these things all work as intended in the preview of Font Book, for instance.
  • That's Microsoft for ya.
  • Rafael Saraiva
    Rafael Saraiva Posts: 33
    edited December 2016
    I don't think it's a mistake in the OpenType programming, since these things all work as intended in the preview of Font Book, for instance.
    Sometimes the font will work as expected in Font Book or InDesign and break in older apps. Ideally they should work everywhere, across all platforms :)

    It's difficult to say without looking at the original sources. But I downloaded Cormorant from Gfonts and I could not replicate the kerning issue you mentioned. However, when opening the .ttf in FLS I noticed that the features are in a different order than the OTspec expects us to work (But it is likely that FLS messed with the original order). Anyway, if that was the original order, I found GPOS features placed before than GSUB features. Even within these two categories there is a desired order for each feature. I am not saying this is the problem, just I thought. 
  • *just a thought.
  • GPOS and GSUB are different tables, so you can't order between them. Correct me if I'm wrong, but GSUB should always be processed first, then comes GPOS.
  • Kent Lew
    Kent Lew Posts: 944
    I’m not aware of any canonical order for OTL features in the OT spec. There are some common practices and rules of thumb, and certainly consequences, but not a technical specification that I’m aware of. In terms of actual feature order.

    As Erwin says, ordering between GPOS and GSUB rules is moot, since they are different tables, processed separately.

    And AFAIK, the GPOS table comes before the GSUB table in compiled fonts (despite the order in which they are processed). At least that’s how TTX dumps them out of fonts by Adobe and Microsoft, who developed the spec.
  • I was talking about the source files not the compiled fonts. But re-reading the specs I could not find a clear indication that we should follow the order provided by them
     

  • Kent Lew
    Kent Lew Posts: 944
    That enumeration is not a canonical ordering; that is just a list of different numbered lookup types.

    If you crack a compiled font into FontLab, then generally it will list the {kern} feature first in its OpenType panel, since the GPOS table is compiled ahead of the GSUB in the font. Similarly, you will usually find it placing {cpsp} near the head of that list, since typically that feature involves GPOS rules.

    It will then list the features from the GSUB table in an order that corresponds to the  registration of the lookups as they are ordered in the LookupList.

    So, for example, if GSUB Lookup 0 is registered to {locl}, then {locl} will be listed first among the GSUB features. If Lookup 1 is registered to {sups}, then it will list {sups} next. And so on.

    This is a fair representation of the original feature order from the source, depending upon how that source was written and how straightforward it was. There are plenty of legitimate tricks in feature writing that FLS cannot represent. In which case, all bets are off for the cracked font.

    But now, I’m afraid we’ve derailed this thread away from Adam’s original problem. Which I have no ideas about, sorry.

  • Thanks for your input everyone, I am almost positive the issue is not my fault. I have tested Cambria and Calibri: though they have no discretionary ligatures, it is possible to choose them as an option. I reproduced the same issue I had with my font. So it's just a feature of Word. You can set your individual words with different ligatures only if you use a style set!
    By way of derailing the thread, is this DSIG thing still a thing? It sounds like something from another era, but I'm most likely wrong since all the fonts that come in the OS are signed?