Do OpenType GSUB lookups need to be under the 'correct' feature?

Wei Huang
Wei Huang Posts: 98
edited May 2015 in Type Design Software
Does it matter what kind of lookups go under the tags? For example if I put a [Type 4] ligature substitution under `calt`, or a [Type 5] Contextual substitution under `liga`?

I'm asking because I have certain combinations of letters that require two different types of substitutions after each other. Thanks in advance.

Comments

  • John Hudson
    John Hudson Posts: 3,227
    It shouldn't matter, and mostly won't, but be prepared for the occasional nasty surprise. The feature descriptions may mention one or more particular lookup type, but this is only for illustrative purposes. Any feature should be able to contain any lookup type. Unfortunately, some software makers didn't initially grasp this, so implemented support in a more restrictive way, e.g. only permitting lookup type 4 in the ligature features. It's been a while since I last encountered such an issue, but I'm sure there is still some software out there that will trip up on more creative use of lookup types.
  • Wei Huang
    Wei Huang Posts: 98
    That's good to know, I've read around here and maybe Typophile with people having issues with `calt` features due to poor UI design and so on, where they are turned off unexpectedly without prompt after some actions.

    I'm considering then putting all the contextual alternate features in `liga` as these rules need to be always on for this font  — are there any caveats re this?
  • Mark Simonson
    Mark Simonson Posts: 1,739
    liga is off by default in MS Word.
  • I've tried everything from using "liga" to using weirder things like "ccmp" and decided that there is no universal solution for "always on" features. Your best bet is to stick to the spec and use "calt". It's supposed to be on by default anyway. 
  • Adam Twardoch
    Adam Twardoch Posts: 515
    It's kind of bad. In Microsoft apps, GPOS-based ss01 won't work (but GSUB-based will), in other engines both will work. See: https://sites.google.com/a/twardoch.com/typography/font-tech/gpos-stylistic-sets

    Short story is: you have to test. Better still, test and publish your findings.
  • In one of my fonts, I've used 'liga' and 'dlig' for a lot of glyphs (300+) that are really not ligatures, but pairs or triplets of letters that work together in particular and peculiar ways. I work on the theory that the computer doesn't know or care about my intentions. If I follow the rules so far as the coding goes and can accept the result, all is good. My target demographic is designers using design apps such as Illustrator — Not word processors. I don't feel I need to care much about how those fonts behave on the likes of MS Word, Pages etc. (They work just fine, FWIW.)
  • Kent Lew
    Kent Lew Posts: 944
    people having issues with `calt` features due to poor UI design and so on, where they are turned off unexpectedly without prompt after some actions.

    I'm considering then putting all the contextual alternate features in `liga` as these rules need to be always on for this font
    FWIW, the actions in Adobe InDesign that turn off {calt} without the user intending to also turn off {liga}.
  • Georg Seifert
    Georg Seifert Posts: 674
    Indesign disabled the features if you add glyphs from the glyph panel to ensure that you actually get the glyph you choose. Otherwise it might be substituted away.
  • Kent Lew
    Kent Lew Posts: 944
    If you place a cursor or select a character within existing text and insert a glyph from the Glyph palette, then the deactivation of calt/liga will only be applied to the inserted character, not surrounding text.

    If you insert a glyph from the Glyph palette during the process of inputting text and immediately keep entering text, the deactivation of calt/liga is restricted to just the inserted character.

    If, however, you insert a glyph from the Glyph palette, navigate away from the point of insertion, and then return to add text at that point, then any text entered there will inherit the deactivated calt/liga properties.

    So, if you are editing text and you happen to insert your cursor right after such an inserted glyph, the new text will have calt/liga turned off. Similarly, if you select text to replace and the first character of the selection is such an inserted glyph, the new text will have calt/liga turned off.

    If you are in the process of inputting text and insert a glyph from the Glyph palette and then do something other than keep typing, such as change text color or move your cursor up a line, and then return where you left off to continue entering text, then the subsequent text could have calt/liga turned off.

    That last situation can be the most mystifying, because certain actions will not trigger InDesign to apply subsequent deactivation but others will.

    For instance, inserting a glyph, then typing a word, then changing your mind and deleting back to just after the inserted glyph will not cause subsequent deactivation for the new text. But if you delete back one step further to replace the inserted glyph, then the text that you now type will have calt/liga turned off.