Typophile

Ligature order

Dan Gayle

I’m working on a font that has multiple ligs, and I’m running into a problem. I have l_l and an e_l ligs, set up like so:

sub l l by l_l;
sub e l by e_l;

Ostensibly, the order should make the l_l come before the e_l, but this is what I get:

Any suggestions?

The problem is that ’el’ in the sequence comes before ’ll’, despite the order written in the feature code.

So that means that I need to write a contextual something or another that says, “If the string el is followed by the string ll, do NOT substitute the e_l ligature.”

I know it can be done, I just don’t know how to do contextual stuff.

For now I’ve just eliminated the e_l lig, if only temporary.

why liga and not clig?

It has nothing to do with contextual stuff. Just replace the l with another l (that looks the same) so that when ell occurs l_l is ’taken’ and e_l can no longer be processed.

If you want, I can send you the thing I’m working on right now. It covers more or less the same thing.

That would be cool. dan at dangayle dot com

But the explanation belowy tells why I’ll keep looking:

@david hamuel
why liga and not clig?
Honestly, I don’t know how to use that feature. But I have a semi- script type with about 100 ligs going on, some with alternates, so it might be handy to know. I’ve already ran into two situations like this, so a better solution is needed that won’t require multiple redundancies.

> I don’t know how to use that feature. But I have a semi- script type with about 100 ligs going on, some with alternates, so it might be handy to know

Bickham Script Pro (feature file sample):

http://www.adobeforums.com/webx/.3bb7c828/0

Dan, ygm. I made a new (FontLab) doc with just your liga thing. I think it works.

** edit ** double post

Although Jos’ approach also works, Dan is quite right to say that this can be solved by contextual code, too. Personally, I’d consider that simpler and more elegant than adding an extra glyph, though both approaches work.

So, you want the l_l ligature to take precedence over the e_l ligature. There are probably at least three ways to do this in AFDKO/FontLab code. Here’s one:

ignore sub e’ l’ l
sub e l by e_l
sub l l by l_l

(Note: I haven’t time to test this right now, but I *think* it should have the desired effect.

Cheers,

T

Captured from web.archive.org on 28 Aug 2008. view this capture