My latest attempt at adding OpenType features to my Talapanna and Talapanna fonts uses the Initial Capitals feature to access the Gothic Drop Capitals in the fonts. Ligatures are divided into two groups — standard and discretionary. This is the source file for adding the features using OTCOMP.EXE:
Updated code to correct an error. All OpenType layout tags should be in lowercase, except for the DFLT tag. I have removed the “dflt” tag and just used the “latn” tag instead.
#input "Talapanna Regular.ttf"
#output "Talapanna Regular.otf"
script latn {
feature InitialCapitals;
feature ligatures;
feature ScientificInferiors;
feature Superscript;
feature ligatures;
feature discretionaryligatures;
}
feature ScientificInferiors sinf {
lookup ScientificInferiors;
}
lookup ScientificInferiors {
sub [zero-nine] -> [uni2080-uni2089];
sub plus -> uni208A;
sub minus -> uni208B;
sub equal -> uni208C;
sub parenleft -> uni208D;
sub parenright -> uni208E;
}
feature Superscript sups {
lookup Superscript;
}
lookup Superscript {
sub zero -> uni2070;
sub one -> uni00B9;
sub two -> uni00B2;
sub three -> uni00B3;
sub [four-nine] -> [uni2074-uni2079];
sub plus -> uni207A;
sub minus -> uni207B;
sub equal -> uni207C;
sub parenleft -> uni207D;
sub parenright -> uni207E;
}
feature InitialCapitals init {
lookup InitialCapitals;
}
lookup InitialCapitals {
sub [A-Z] -> [uniE2D1 - uniE2EA];
}
feature ligatures liga {
lookup ligaSub;
}
lookup ligaSub {
sub f f i -> ffi;
sub f f l -> ffl;
sub f f t -> fft;
sub f f y -> ffy;
sub f t y -> fty;
sub f f -> ff;
sub f i -> fi;
sub f j -> fj;
sub f l -> fl;
sub f r -> fr;
sub f t -> ft;
sub f y -> fy;
sub k y -> ky;
sub t r -> tr;
sub t t -> tt;
sub t y -> ty;
sub longs t -> longst;
}
feature discretionaryligatures dlig {
lookup dligSub;
}
lookup dligSub {
sub c k y -> cky;
sub c k -> ck;
sub c t -> ct;
sub s p -> sp;
sub s t -> st;
sub t z -> tz;
sub Q u -> Qu;
sub T h -> Th;
sub A V -> AV;
sub H E -> HE;
sub L A -> LA;
sub M E -> ME;
sub N K -> NK;
sub N T -> NT;
sub O C -> OC;
sub O G -> OG;
sub O O -> OO;
sub T L -> TL;
sub T Y -> TYcaps;
sub T W -> TW;
sub T T -> TTcaps;
sub U B -> UB;
sub U D -> UD;
}