Substitution rules not retained after a line break

Bernie Cossentino
Bernie Cossentino Posts: 19
edited July 2022 in Technique and Theory
Hello,
I wonder if any of you can offer your thoughts on the following:
I have a font that contains and applies characters other than traditional Latin text. However, on occasion, the user needs to be able to access Latin; freely switching back and forth between them and the font's default glyphs. Technically, I've added a set of standard Latin text glyphs (tagging them accordingly for substitution) and applied appropriate backtracking rules that sub for them. The trouble is, that backtracking (switch) does not stay engaged after a line break (be it from a hard carriage return or the app's text wrapping). Thus, while the initial line successfully contains Latin glyph substitutions, the next line will not sub for these. i.e. I have to engage the backtrack switch again for the following line.
Is there any way I can have these calt rules survive a line break?
I fear the answer is no, but I'd love for someone to prove me wrong! :)

Comments

  • John Hudson
    John Hudson Posts: 3,227
    OpenType Layout is applied to glyph runs, and a line break will always instantiate a new glyph run.

    Probably, you need to make the substitution explicit, rather than contextual, via a Stylistic Set substitution, i.e. the user will have to select the text to which they want to apply the standard Latin character forms.

    From your description, I take it that the non-standard default glyphs in your font are mapped to standard Latin Unicode character encoding? The other way to handle the dual forms would be to use Private Use Area codepoints for your non-standard forms, but of course that complicates input for users.
  • OpenType Layout is applied to glyph runs, and a line break will always instantiate a new glyph run.
    Indeed, that was my suspicion...and it certainly makes sense.
    Probably, you need to make the substitution explicit, rather than contextual, via a Stylistic Set substitution, i.e. the user will have to select the text to which they want to apply the standard Latin character forms.
    This is a good solution. Sadly, the target application may not provide direct access to Stylistic Sets. My only solution may be to export a separate font variant that defaults to the required Latin characters, inverting the sub rules for the non-Latin glyphs.
    From your description, I take it that the non-standard default glyphs in your font are mapped to standard Latin Unicode character encoding?
    Correct. And this isn't something I can change at this stage.
    Thanks for your help.