Hello, I'm working on my first script typeface and I was wondering, what is the best way to program initial forms? This is my script:
ignore sub
@all_glyphs @init_0';
sub
@init_0' by
@init_1;
Without the "ignore" rule the glyph wouldn't switch to it's initial form if it's at the beginning of a line. However, the
@all_glyphs class needs to contain all existing glyphs except space, which means 956 glyphs. Do you think this could cause any problems?
Also, I'm doing the substitution in the stylistic set feature. Both SS## and INIT features are very poorly supported in applications (basically InDesign only), so I'm not really sure which one to choose. I'd appreciate you tips and opinions. Thanks!
Comments
Of course, {init} is the more syntactically appropriate feature and I would recommend including the basic gsub 1 rule there also. It’s just too bad that more layout software does not support {init} and that Adobe doesn’t implement Positional Forms > Automatic Form by default (and that the current implementation of Initial Form is so ham-handed).
Also, you may want to consider excluding some punctuation from your backtrack sequence (i.e., your @all_glyphs class). For instance, you may still want an initial form following various opening quotation markers, or a left parenthesis, or an em-dash, etc.
There are often much larger classes involved in pseudo-random features.
@Ramiro Espinoza: I wasn't aware of that, thanks! Fortunatelly this, font is not going to MyFonts and using ini/fin forms will be optional (it will actually be something like the swash feature).
I decided on these features to access the special forms:
Initial: INIT or SS03
Final: FINA or SS04
Ini+Fin: SWSH
I hope this will be sufficient.
For my Ambicase fonts I did INIT, FINA, and SWSH as you have, but assigned stylistic sets to the initial forms (with appropriate Ignore language like you have done) and to the all-swash forms, thinking that those were the two settings most likely to be desired.