0 Replies Latest reply on Jan 24, 2003 8:58 PM by (Read_Roberts)

    Bug in OpenType fonts made with Adobe libraries.

    Level 1
      If you have made or intend to make OpenType/CFF fonts with
      chaining contextual substitution features, using either MakeOTF
      or FontLab, please read the following carefully, and see if you
      can answer the question at the end.

      Everyone else can ignore this. Chaining contextual substitution
      feature rules are those where the target glyph string for the
      substitution is preceded and/or followed by additional glyphs
      that provide a required context for the substitution.

      You may recall from the e-mail thread on opentype@topica.com, starting on 9/23/2002
      "Contextual features in Adobe OpenType fonts", that Adobe and
      Microsoft engineers diverged on the reading of the OpenType spec
      covering (GSUB lookup type 6). As a result, there is a bug in
      fonts which have all of the properties:
      - OpenType (TTF or CFF)
      - and made with FontLab or MakeOTF
      - and contains chaining contextual substitution features (GSUB
      lookup type 6)
      - and one or more of the chaining contextual substitution rules
      contain backtrack sequences with more than one glyph.

      No font is affected unless it meets all of these criteria. The
      bug affects only the specific feature rules that are chaining
      contextual substitution rules which contain backtrack sequences
      with more than one glyph.

      For example (using Adobe FDK notation) the following
      substitution WOULD be affected:
      sub a b c' by c.alt # context has backtrack of two glyphs

      The following substitutions would NOT be affected:
      sub a b' c d by b.alt # context has only one glyph backtrack
      (and two glyphs look-ahead)

      The bug does not manifest itself now, as InDesign versions
      1.0-2.0 were built with the same logic for handling GSUB lookup
      type 6 as the fonts, and only InDesign can currently show the
      affected feature rules. However, the next releases of InDesign
      and any other app's that support OpenType layout are likely to
      assume the correct logic for this lookup, and the chaining
      contextual substitution rules which have backtrack sequences
      with multiple glyphs will not work in the affected fonts. This
      will affect all Adobe OpenType fonts with the connecting
      scripts, or 'ordn' or 'frac' features, which is most of them.

      I am reminding the list of this issue because there is a small
      possibility that the next releases of the Adobe apps can contain
      code to identify most fonts with the incorrect GSUB lookup type
      6 lookups in order to make them work right. It is not
      practically possible to reliably identify these by examining the
      layout feature structures. However, MakeOTF inserts a specific
      set of library version numbers in the name table nameID 5
      "Version", in addition to the font version. This will allow
      identification of fonts built with a range of MakeOTF versions.
      (FontLab fonts have the necessary text strings in the default
      name table Version string, but the special case cannot catch
      fonts where the editor customized the Version name table
      string.)

      However, even if the special case is implemented, we may not want
      to cover fonts made with the FDK v1.5.4987, released in Sept
      2002. The Sept 2002 release of MakeOTF does have an option to
      build fonts with the correct format; in fact, the default option
      is to do so. However, since no-one can test or use the relevant
      features in such fonts with any existing application, we hope
      that not one has yet done so.

      If any developer on this list has shipped fonts which have
      chaining contextual substitution rules with multi-glyph
      backtrack sequences, and built them with the MakeOTF option set
      to build the lookup table correctly, please respond immediately.