summaryrefslogtreecommitdiff
path: root/src/features.fea
diff options
context:
space:
mode:
authorRasmus Andersson <rasmus@notion.se>2017-08-26 23:35:55 +0300
committerRasmus Andersson <rasmus@notion.se>2017-08-26 23:35:55 +0300
commit66d89e754fbdc0ae9e5bdeaf5bea04424ab16305 (patch)
treefddf3f3a86de64f7e6ca0bef0de01214c5bfb9dd /src/features.fea
parentd4678c2ed43c7abb736804e1c79a769fed6a6c19 (diff)
downloadinter-66d89e754fbdc0ae9e5bdeaf5bea04424ab16305.tar.xz
Adds and improves a lot of case and calt ".case" glyphs used with tall letterforms
Diffstat (limited to 'src/features.fea')
-rw-r--r--src/features.fea172
1 files changed, 126 insertions, 46 deletions
diff --git a/src/features.fea b/src/features.fea
index 3a3bc94f6..0b69d8593 100644
--- a/src/features.fea
+++ b/src/features.fea
@@ -45,10 +45,32 @@ languagesystem grek dflt;
@GDEF_COMPONENT = [ acutedotcomb breveacutecomb brevegravecomb brevehookcomb brevetildecomb carondotcomb circumflexacutecomb circumflexgravecomb circumflexhookcomb circumflextildecomb commaaccentrotate dieresisacutecomb dieresiscaroncomb dieresisgravecomb dieresismacroncomb dotmacroncomb macronacutecomb macrondieresiscomb macrongravecomb ringacute tildeacutecomb tildedieresiscomb tildemacroncomb tonebarextrahighmod tonebarhighmod tonebarmidmod tonebarlowmod tonebarextralowmod uni1AB9 uni1ABA uni1ABD ];
table GDEF {
- GlyphClassDef @GDEF_BASE, @GDEF_LIGATURE, @GDEF_MARK, @GDEF_COMPONENT;
+ GlyphClassDef @GDEF_BASE, @GDEF_LIGATURE, @GDEF_MARK, @GDEF_COMPONENT;
} GDEF;
+feature aalt { # Access All Alternates
+ feature locl;
+ feature frac;
+ feature numr;
+ feature dnom;
+ feature tnum;
+ feature ss01;
+ feature zero;
+ feature calt;
+} aalt;
+
+feature locl {
+ script latn; language dflt; #set comment (#) for FDK 2.5
+ language MOL exclude_dflt; # Moldavian
+ sub [Scedilla scedilla] by [Scommaaccent scommaaccent];
+ language ROM exclude_dflt; # Romanian
+ sub [Scedilla scedilla] by [Scommaaccent scommaaccent];
+ language FRA exclude_dflt; # French
+ sub [thinspace] by [uni2009.fra];
+} locl;
+
+
feature mark {
;#insert from script mark
} mark;
@@ -834,73 +856,131 @@ feature numr {
sub @frac1 by @frac2;
} numr;
+@CASE_L = [
+ asterisk
+ at
+ multiply
+ minus
+ plus
+ plusminus
+ divide
+ equal
+ notequal
+ endash
+ figuredash
+ emdash
+ hyphen
+ bullet
+ arrowleft
+ arrowup
+ arrowright
+ arrowdown
+ notequal
+ braceleft braceright
+ bracketleft bracketright
+ parenleft parenright
+ colon
+];
+@CASE_R = [
+ asterisk.case
+ at.case
+ multiply.case
+ minus.case
+ plus.case
+ plusminus.case
+ divide.case
+ equal.case
+ notequal.case
+ endash.case
+ figuredash.case
+ emdash.case
+ hyphen.case
+ bullet.case
+ arrowleft.case
+ arrowup.case
+ arrowright.case
+ arrowdown.case
+ notequal.case
+ braceleft.case braceright.case
+ bracketleft.case bracketright.case
+ parenleft.case parenright.case
+ colon.case
+];
+
+feature case {
+ sub @CASE_L by @CASE_R;
+} case;
+
feature calt {
@UC = [ @UC_ROMAN @UC_SET1 exclam question ];
- sub @UC at' @UC by at.cap;
+ sub @UC at' @UC by at.case;
+ sub @UC asterisk' by asterisk.case;
+
+ sub multiply' @UC by multiply.case;
+ sub @UC multiply' by multiply.case;
+
+ sub minus' @UC by minus.case;
+ sub @UC minus' by minus.case;
+
+ sub plus' @UC by plus.case;
+ sub @UC plus' by plus.case;
- sub @NUM x' by multiply.cap;
- sub x' @NUM by multiply.cap;
- sub multiply' @UC by multiply.cap;
- sub @UC multiply' by multiply.cap;
+ sub plusminus' @UC by plusminus.case;
+ sub @UC plusminus' by plusminus.case;
- sub hyphen' @NUM by minus.cap;
- sub @NUM hyphen' by minus.cap;
- sub minus' @UC by minus.cap;
- sub @UC minus' by minus.cap;
+ sub divide' @UC by divide.case;
+ sub @UC divide' by divide.case;
- sub plus' @UC by plus.cap;
- sub @UC plus' by plus.cap;
+ sub equal' @UC by equal.case;
+ sub @UC equal' by equal.case;
- sub divide' @UC by divide.cap;
- sub @UC divide' by divide.cap;
+ sub notequal' @UC by notequal.case;
+ sub @UC notequal' by notequal.case;
- sub equal' @UC by equal.cap;
- sub @UC equal' by equal.cap;
+ sub endash' @UC by endash.case;
+ sub @UC endash' by endash.case;
- sub notequal' @UC by notequal.cap;
- sub @UC notequal' by notequal.cap;
+ sub figuredash' @UC by figuredash.case;
+ sub @UC figuredash' by figuredash.case;
- sub endash' @UC by endash.cap;
- sub @UC endash' by endash.cap;
+ sub emdash' @UC by emdash.case;
+ sub @UC emdash' by emdash.case;
- sub figuredash' @UC by figuredash.cap;
- sub @UC figuredash' by figuredash.cap;
+ sub hyphen' @UC by hyphen.case;
+ sub @UC hyphen' by hyphen.case;
- sub emdash' @UC by emdash.cap;
- sub @UC emdash' by emdash.cap;
+ sub bullet' @UC by bullet.case;
+ sub @UC bullet' by bullet.case;
- sub hyphen' @UC by hyphen.cap;
- sub @UC hyphen' by hyphen.cap;
+ sub arrowleft' @UC by arrowleft.case;
+ sub @UC arrowleft' by arrowleft.case;
- sub @UC bullet' by bullet.cap;
- sub bullet' @SPACE @SPACE @UC by bullet.cap;
- sub bullet' @SPACE @UC by bullet.cap;
- sub bullet' @UC by bullet.cap;
+ sub arrowup' @UC by arrowup.case;
+ sub @UC arrowup' by arrowup.case;
- sub arrowleft' @UC by arrowleft.cap;
- sub @UC arrowleft' by arrowleft.cap;
+ sub arrowright' @UC by arrowright.case;
+ sub @UC arrowright' by arrowright.case;
- sub arrowup' @UC by arrowup.cap;
- sub @UC arrowup' by arrowup.cap;
+ sub arrowdown' @UC by arrowdown.case;
+ sub @UC arrowdown' by arrowdown.case;
- sub arrowright' @UC by arrowright.cap;
- sub @UC arrowright' by arrowright.cap;
+ sub notequal' @UC by notequal.case;
+ sub @UC notequal' by notequal.case;
- sub arrowdown' @UC by arrowdown.cap;
- sub @UC arrowdown' by arrowdown.cap;
+ sub braceleft' @UC by braceleft.case;
+ sub @UC braceright' by braceright.case;
- sub notequal' @UC by notequal.cap;
- sub @UC notequal' by notequal.cap;
+ sub bracketleft' @UC by bracketleft.case;
+ sub @UC bracketright' by bracketright.case;
- sub braceleft' @UC by braceleft.cap;
- sub @UC braceright' by braceright.cap;
+ sub parenleft' @UC by parenleft.case;
+ sub @UC parenright' by parenright.case;
- sub bracketleft' @UC by bracketleft.cap;
- sub @UC bracketright' by bracketright.cap;
+ sub colon' @UC by colon.case;
+ sub @UC colon' by colon.case;
- sub parenleft' @UC by parenleft.cap;
- sub @UC parenright' by parenright.cap;
+ sub period' @NUM by period.num;
} calt;
# Stylistic set 1: open digits