Anyone got an idea on why I can make this work? And how to fix it?
Basically I want 10 ”special dashes” with different length to replace hyphens in a row. and depending on how many hyphens the user puts in I want a ”special dash” to be activated.
I use the Rlig-feature.
sub @dashes@dashes@dashes by specialdash1;
sub @dashes@dashes@dashes@dashes by specialdash2;
sub @dashes@dashes@dashes@dashes@dashes by specialdash3;
sub @dashes@dashes@dashes@dashes@dashes@dashes by specialdash4;
sub @dashes@dashes@dashes@dashes@dashes@dashes@dashes by specialdash5;
But not this:
sub @dashes@dashes@dashes by specialdash1;
sub @dashes@dashes@dashes@dashes by specialdash2;
sub @dashes@dashes@dashes@dashes@dashes by specialdash3;
sub @dashes@dashes@dashes@dashes@dashes@dashes by specialdash4;
sub @dashes@dashes@dashes@dashes@dashes@dashes@dashes by specialdash5;
sub @dashes@dashes@dashes@dashes@dashes@dashes@dashes@dashes by specialdash6;
I had a look at the file. It is very interesting: Ligature substitutions do not actually support classes. So makeOTF expands this to have simple ligature substitution for all combinations from the classes:
sub emdash emdash emdash emdash emdash emdash by ipcodash5;
sub emdash emdash emdash emdash emdash endash by ipcodash5;
sub emdash emdash emdash emdash emdash hyphen by ipcodash5;
sub emdash emdash emdash emdash endash emdash by ipcodash5;
sub emdash emdash emdash emdash endash endash by ipcodash5;
sub emdash emdash emdash emdash endash hyphen by ipcodash5;
sub emdash emdash emdash emdash hyphen emdash by ipcodash5;
sub emdash emdash emdash emdash hyphen endash by ipcodash5;
sub emdash emdash emdash emdash hyphen hyphen by ipcodash5;
sub emdash emdash emdash endash emdash emdash by ipcodash5;
sub emdash emdash emdash endash emdash endash by ipcodash5;
sub emdash emdash emdash endash emdash hyphen by ipcodash5;
sub emdash emdash emdash endash endash emdash by ipcodash5;
sub emdash emdash emdash endash endash endash by ipcodash5;
sub emdash emdash emdash endash endash hyphen by ipcodash5;
sub emdash emdash emdash endash hyphen emdash by ipcodash5;
sub emdash emdash emdash endash hyphen endash by ipcodash5;
sub emdash emdash emdash endash hyphen hyphen by ipcodash5;
sub emdash emdash emdash hyphen emdash emdash by ipcodash5;
sub emdash emdash emdash hyphen emdash endash by ipcodash5;
# and more than 3000 lines like this.
First, I though it should be done like this:
lookup dash1 {
sub @dashes @dashes @dashes by ipcodash1;
} dash1;
lookup dash2 {
sub ipcodash1 ipcodash1 @dashes @dashes by ipcodash6;
sub ipcodash1 ipcodash1 @dashes by ipcodash5;
sub ipcodash1 ipcodash1 by ipcodash4;
sub ipcodash1 @dashes @dashes by ipcodash3;
sub ipcodash1 @dashes by ipcodash2;
} dash2;
That works but Indesign gets confused where to put the cursor. And then I came up with this:
lookup dash1 {
sub @dashes' @dashes @dashes by hyphen;
sub @dashes @dashes' @dashes by hyphen;
sub @dashes @dashes @dashes' by hyphen;
} dash1;
lookup dash2 {
sub hyphen hyphen hyphen hyphen hyphen hyphen hyphen hyphen by ipcodash6;
sub hyphen hyphen hyphen hyphen hyphen hyphen hyphen by ipcodash5;
sub hyphen hyphen hyphen hyphen hyphen hyphen by ipcodash4;
sub hyphen hyphen hyphen hyphen hyphen by ipcodash3;
sub hyphen hyphen hyphen hyphen by ipcodash2;
sub hyphen hyphen hyphen by ipcodash1;
} dash2;
So first, all dashes are converted to hyphens and then the plain ligatures will work just fine.