The idea is type one or more characters, and use different glyphs for the same character. This can be accomplished by adding Contextual Alternates to your font.
In this example, we will have a font which contains only one character, namely the zero. It also contains four alternate glyphs for it. We will then add this script through the OpenType Layout Feature editor.
Code: Select all
script latn {
# Latin
feature ContextualAlternates1;
}
group @Group1 [zero];
group @Group2 [zero.2];
group @Group3 [zero.3];
group @Group4 [zero.4];
group @Group5 [zero.5];
feature ContextualAlternates1 calt {
# Contextual Alternates
lookup Lookup1;
lookup Lookup2;
}
lookup Lookup1 {
# Referenced by feature "ContextualAlternates1"
context (@Group1) @Group1;
sub 0 Lookup3;
context (@Group2) @Group1;
sub 0 Lookup4;
context (@Group3) @Group1;
sub 0 Lookup5;
context (@Group4) @Group1;
sub 0 Lookup6;
}
lookup Lookup2 {
# Referenced by feature "ContextualAlternates1"
context (@Group5 @Group4) @Group1;
sub 0 Lookup7;
context (@Group2 @Group5) @Group2;
sub 0 Lookup7;
context (@Group4 @Group2) @Group3;
sub 0 Lookup7;
context (@Group1 @Group4) @Group4;
sub 0 Lookup7;
context (@Group5 @Group1) @Group5;
sub 0 Lookup7;
context (@Group3 @Group5) @Group1;
sub 0 Lookup7;
context (@Group2 @Group3) @Group2;
sub 0 Lookup8;
context (@Group1 @Group2) @Group3;
sub 0 Lookup8;
context (@Group4 @Group1) @Group4;
sub 0 Lookup8;
context (@Group3 @Group4) @Group4;
sub 0 Lookup9;
}
lookup Lookup3 {
# Referenced by lookup "Lookup1"
sub zero -> zero.2;
}
lookup Lookup4 {
# Referenced by lookup "Lookup1"
sub zero -> zero.3;
}
lookup Lookup5 {
# Referenced by lookup "Lookup1"
sub zero -> zero.4;
}
lookup Lookup6 {
# Referenced by lookup "Lookup1"
sub zero -> zero.5;
}
lookup Lookup7 {
# Referenced by lookup "Lookup2"
sub zero -> zero.2;
sub zero.2 -> zero.4;
sub zero.3 -> zero;
sub zero.4 -> zero.5;
sub zero.5 -> zero.3;
}
lookup Lookup8 {
# Referenced by lookup "Lookup2"
sub zero.2 -> zero;
sub zero.3 -> zero.4;
sub zero.4 -> zero.3;
}
lookup Lookup9 {
# Referenced by lookup "Lookup2"
sub zero.4 -> zero.5;
}
Here is the project file, in case you want to further experiment with this. And here is the online web font demo, so you can play with it.
http://www.high-logic.com/fontcreator/d ... index.html