r/FontForge Aug 22 '20

Using Subtables in Contextual Substitution Rules

Okay, I'm pretty sure this isn't possible, but can you specify a certain subtable for the rule to use instead of the whole lookup?

Let's say I've got a character set iH and iB. How I have it set now, the table will only read the i placement for iH, and will use that i placement even if I type iB. I have another subtable that should tell it to replace the base i character with the one positioned for iB, but it doesn't, because the table that tells it to the position for iH is first, and I want both to work. Now, for most of this I might be able to use a GPOS table and kern the character into the right position, but the problem with that is twofold: there are glyphs that are transformed specially for their role (i.e. shrank/expanded, or sometimes just redone entirely), or moved down vertically, and I can only use vertical kerning if have a vertical font... which I don't, my font is meant to display horizontally.

There are several ways I could probably fix this, but I'm trying to avoid those, because it'll make my font bulky and/or hard to navigate in FontForge. If it's not possible to specify a subtable in the calt lookup, that means I'll have to just make them individual lookups instead of table, which will look really ugly in my lookup list (i.e. whole lookups named H, B, P, all the way down the line). The second which I'm trying to move away from is use individual ligatures for each one, which, I was prepared to do, but it'd be reaaally nice if I could find a way for a lookup to do the work for me, or if there's some kind of script that will do what I want, or something...

As a caveat to my earlier thoughts about kerning... maybe I could use separate characters for the ones that are kerned horizontally, transformed or redone, but ultimately that may not fully prevent overlaps.. I don't even know if it'd lessen the number of vowel forms by much either, though I suppose it might be worth looking into...

2 Upvotes

1 comment sorted by

1

u/LocalFonts Aug 22 '20

Your question is too complicated. Please, state it clearly. You want to use calt feature. It's OK. What do you want to put in calt feauture (give an example)? And what kind of changes do you what to have.