summaryrefslogtreecommitdiff
path: root/fonts/fea
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/fea')
-rw-r--r--fonts/fea/context/greek-babel.fea294
-rw-r--r--fonts/fea/context/test-features.fea20
-rw-r--r--fonts/fea/context/texhistoric.fea42
-rw-r--r--fonts/fea/context/verbose-digits.fea36
4 files changed, 392 insertions, 0 deletions
diff --git a/fonts/fea/context/greek-babel.fea b/fonts/fea/context/greek-babel.fea
new file mode 100644
index 000000000..68f5cd145
--- /dev/null
+++ b/fonts/fea/context/greek-babel.fea
@@ -0,0 +1,294 @@
+# This file has been written by Arthur Reutenauer.
+# An Opentype feature to replace the Babel input scheme
+
+lookup GreekBabelLookupMultiple {
+ lookupflag 1 ;
+ sub quotedbl quotesingle i by uni1FD3 ;
+ sub quotedbl quotesingle u by uni1FE3 ;
+ sub quotedbl grave i by uni1FD2 ;
+ sub quotedbl grave u by uni1FE2 ;
+ sub quotedbl asciitilde i by uni1FD7 ;
+ sub quotedbl asciitilde u by uni1FE7 ;
+ sub quotedbl i by uni03CA ;
+ sub quotedbl u by uni03CB ;
+ sub equal a by uni1FB1 ;
+ sub equal i by uni1FD1 ;
+ sub equal u by uni1FE1 ;
+ sub equal quotesingle a by uniEB00 ;
+ sub equal quotesingle i by uniEB39 ;
+ sub equal u quotesingle by uniEB7A ;
+ sub greater a by uni1F00 ;
+ sub greater A by uni1F08 ;
+ sub greater e by uni1F10 ;
+ sub greater E by uni1F18 ;
+ sub greater h by uni1F20 ;
+ sub greater H by uni1F28 ;
+ sub greater i by uni1F30 ;
+ sub greater I by uni1F38 ;
+ sub greater o by uni1F40 ;
+ sub greater O by uni1F48 ;
+ sub greater u by uni1F50 ;
+ sub greater w by uni1F60 ;
+ sub greater W by uni1F68 ;
+ sub greater grave a by uni1F02 ;
+ sub greater grave A by uni1F0A ;
+ sub greater grave e by uni1F12 ;
+ sub greater grave E by uni1F1A ;
+ sub greater grave h by uni1F22 ;
+ sub greater grave H by uni1F2A ;
+ sub greater grave i by uni1F32 ;
+ sub greater grave I by uni1F3A ;
+ sub greater grave o by uni1F42 ;
+ sub greater grave O by uni1F4A ;
+ sub greater grave u by uni1F52 ;
+ sub greater grave w by uni1F62 ;
+ sub greater grave W by uni1F6A ;
+ sub greater quotesingle a by uni1F04 ;
+ sub greater quotesingle A by uni1F0C ;
+ sub greater quotesingle e by uni1F14 ;
+ sub greater quotesingle E by uni1F1C ;
+ sub greater quotesingle h by uni1F24 ;
+ sub greater quotesingle H by uni1F2C ;
+ sub greater quotesingle i by uni1F34 ;
+ sub greater quotesingle I by uni1F3C ;
+ sub greater quotesingle o by uni1F44 ;
+ sub greater quotesingle O by uni1F4C ;
+ sub greater quotesingle u by uni1F54 ;
+ sub greater quotesingle U by uni1F5C ;
+ sub greater quotesingle w by uni1F64 ;
+ sub greater quotesingle W by uni1F6C ;
+ sub greater asciitilde a by uni1F06 ;
+ sub greater asciitilde A by uni1F0E ;
+ sub greater asciitilde e by uni1F16 ;
+ sub greater asciitilde E by uni1F1E ;
+ sub greater asciitilde h by uni1F26 ;
+ sub greater asciitilde H by uni1F2E ;
+ sub greater asciitilde i by uni1F36 ;
+ sub greater asciitilde I by uni1F3E ;
+ sub greater asciitilde o by uni1F46 ;
+ sub greater asciitilde O by uni1F4E ;
+ sub greater asciitilde u by uni1F56 ;
+ sub greater asciitilde U by uni1F5E ;
+ sub greater asciitilde w by uni1F66 ;
+ sub greater asciitilde W by uni1F6E ;
+ sub less a by uni1F01 ;
+ sub less A by uni1F09 ;
+ sub less e by uni1F11 ;
+ sub less E by uni1F19 ;
+ sub less h by uni1F21 ;
+ sub less H by uni1F29 ;
+ sub less i by uni1F31 ;
+ sub less I by uni1F39 ;
+ sub less o by uni1F41 ;
+ sub less O by uni1F49 ;
+ sub less u by uni1F51 ;
+ sub less U by uni1F59 ;
+ sub less w by uni1F61 ;
+ sub less W by uni1F69 ;
+ sub less grave a by uni1F03 ;
+ sub less grave A by uni1F0B ;
+ sub less grave e by uni1F13 ;
+ sub less grave E by uni1F1B ;
+ sub less grave h by uni1F23 ;
+ sub less grave H by uni1F2B ;
+ sub less grave i by uni1F33 ;
+ sub less grave I by uni1F3B ;
+ sub less grave o by uni1F43 ;
+ sub less grave O by uni1F4B ;
+ sub less grave u by uni1F53 ;
+ sub less grave U by uni1F5B ;
+ sub less grave w by uni1F63 ;
+ sub less grave W by uni1F6B ;
+ sub less quotesingle a by uni1F05 ;
+ sub less quotesingle A by uni1F0D ;
+ sub less quotesingle e by uni1F15 ;
+ sub less quotesingle E by uni1F1D ;
+ sub less quotesingle h by uni1F25 ;
+ sub less quotesingle H by uni1F2D ;
+ sub less quotesingle i by uni1F35 ;
+ sub less quotesingle I by uni1F3D ;
+ sub less quotesingle o by uni1F45 ;
+ sub less quotesingle O by uni1F4D ;
+ sub less quotesingle u by uni1F55 ;
+ sub less quotesingle U by uni1F5D ;
+ sub less quotesingle w by uni1F65 ;
+ sub less quotesingle W by uni1F6D ;
+ sub less asciitilde a by uni1F07 ;
+ sub less asciitilde A by uni1F0F ;
+ sub less asciitilde e by uni1F17 ;
+ sub less asciitilde E by uni1F1F ;
+ sub less asciitilde h by uni1F27 ;
+ sub less asciitilde H by uni1F2F ;
+ sub less asciitilde i by uni1F37 ;
+ sub less asciitilde I by uni1F3F ;
+ sub less asciitilde o by uni1F47 ;
+ sub less asciitilde O by uni1F4F ;
+ sub less asciitilde u by uni1F57 ;
+ sub less asciitilde U by uni1F5F ;
+ sub less asciitilde w by uni1F67 ;
+ sub less asciitilde W by uni1F6F ;
+ sub grave a by uni1F70 ;
+ sub quotesingle a by uni1F71 ;
+ sub grave e by uni1F72 ;
+ sub quotesingle e by uni1F73 ;
+ sub grave h by uni1F74 ;
+ sub quotesingle h by uni1F75 ;
+ sub grave i by uni1F76 ;
+ sub quotesingle i by uni1F77 ;
+ sub grave o by uni1F78 ;
+ sub quotesingle o by uni1F79 ;
+ sub grave u by uni1F7A ;
+ sub quotesingle u by uni1F7B ;
+ sub grave w by uni1F7C ;
+ sub quotesingle w by uni1F7D ;
+ sub grave A by uni1FBA ;
+ sub quotesingle A by uni1FBB ;
+ sub grave E by uni1FC8 ;
+ sub quotesingle E by uni1FC9 ;
+ sub grave H by uni1FCA ;
+ sub quotesingle H by uni1FCB ;
+ sub grave I by uni1FDA ;
+ sub quotesingle I by uni1FDB ;
+ sub grave U by uni1FEA ;
+ sub quotesingle U by uni1FEB ;
+ sub grave W by uni1FFA ;
+ sub quotesingle W by uni1FFB ;
+ sub greater a bar by uni1F80 ;
+ sub greater A bar by uni1F88 ;
+ sub greater h bar by uni1F90 ;
+ sub greater H bar by uni1F98 ;
+ sub greater w bar by uni1FA0 ;
+ sub greater W bar by uni1FA8 ;
+ sub greater grave a bar by uni1F82 ;
+ sub greater grave A bar by uni1F8A ;
+ sub greater grave h bar by uni1F92 ;
+ sub greater grave H bar by uni1F9A ;
+ sub greater grave w bar by uni1FA2 ;
+ sub greater grave W bar by uni1FAA ;
+ sub greater quotesingle a bar by uni1F84 ;
+ sub greater quotesingle A bar by uni1F8C ;
+ sub greater quotesingle h bar by uni1F94 ;
+ sub greater quotesingle H bar by uni1F9C ;
+ sub greater quotesingle w bar by uni1FA4 ;
+ sub greater quotesingle W bar by uni1FAC ;
+ sub greater asciitilde a bar by uni1F86 ;
+ sub greater asciitilde A bar by uni1F8E ;
+ sub greater asciitilde h bar by uni1F96 ;
+ sub greater asciitilde H bar by uni1F9E ;
+ sub greater asciitilde w bar by uni1FA6 ;
+ sub greater asciitilde W bar by uni1FAE ;
+ sub less a bar by uni1F81 ;
+ sub less A bar by uni1F89 ;
+ sub less h bar by uni1F91 ;
+ sub less H bar by uni1F99 ;
+ sub less w bar by uni1FA1 ;
+ sub less W bar by uni1FA9 ;
+ sub less grave a bar by uni1F83 ;
+ sub less grave A bar by uni1F8B ;
+ sub less grave h bar by uni1F93 ;
+ sub less grave H bar by uni1F9B ;
+ sub less grave w bar by uni1FA3 ;
+ sub less grave W bar by uni1FAB ;
+ sub less quotesingle a bar by uni1F85 ;
+ sub less quotesingle A bar by uni1F8D ;
+ sub less quotesingle h bar by uni1F95 ;
+ sub less quotesingle H bar by uni1F9D ;
+ sub less quotesingle w bar by uni1FA5 ;
+ sub less quotesingle W bar by uni1FAD ;
+ sub less asciitilde a bar by uni1F87 ;
+ sub less asciitilde A bar by uni1F8F ;
+ sub less asciitilde h bar by uni1F97 ;
+ sub less asciitilde H bar by uni1F9F ;
+ sub less asciitilde w bar by uni1FA7 ;
+ sub less asciitilde W bar by uni1FAF ;
+ sub grave a bar by uni1FB2 ;
+ sub a bar by uni1FB3 ;
+ sub quotesingle a bar by uni1FB4 ;
+ sub h bar by uni1FC3 ;
+ sub grave h bar by uni1FC2 ;
+ sub quotesingle h bar by uni1FC4 ;
+ sub grave w bar by uni1FF2 ;
+ sub w bar by uni1FF3 ;
+ sub quotesingle w bar by uni1FF4 ;
+ sub asciitilde a by uni1FB6 ;
+ sub asciitilde a bar by uni1FB7 ;
+ sub asciitilde h by uni1FC6 ;
+ sub asciitilde h bar by uni1FC7 ;
+ sub asciitilde i by uni1FD6 ;
+ sub asciitilde u by uni1FE6 ;
+ sub asciitilde w by uni1FF6 ;
+ sub asciitilde w bar by uni1FF7 ;
+ sub greater r by uni1FE4 ;
+ sub less r by uni1FE5 ;
+ sub less R by uni1FEC ;
+} GreekBabelLookupMultiple ;
+
+lookup GreekBabelLookupSimple {
+ lookupflag 0 ;
+ sub a by alpha ;
+ sub b by beta ;
+ sub g by gamma ;
+ sub d by delta ;
+ sub e by epsilon ;
+ sub z by zeta ;
+ sub h by eta ;
+ sub j by theta ;
+ sub i by iota ;
+ sub k by kappa ;
+ sub l by lambda ;
+ sub m by mu ;
+ sub n by nu ;
+ sub x by xi ;
+ sub o by omicron ;
+ sub p by pi ;
+ sub r by rho ;
+ sub c by uni03F2 ;
+ sub s by uni03F2 ;
+ sub t by tau ;
+ sub u by upsilon ;
+ sub f by phi ;
+ sub q by chi ;
+ sub y by psi ;
+ sub w by omega ;
+ sub A by Alpha ;
+ sub B by Beta ;
+ sub G by Gamma ;
+ sub D by Delta ;
+ sub E by Epsilon ;
+ sub Z by Zeta ;
+ sub H by Eta ;
+ sub J by Theta ;
+ sub I by Iota ;
+ sub K by Kappa ;
+ sub L by Lambda ;
+ sub M by Mu ;
+ sub N by Nu ;
+ sub X by Xi ;
+ sub O by Omicron ;
+ sub P by Pi ;
+ sub R by Rho ;
+ sub C by Uni03C2 ;
+ sub S by uni03F9 ;
+ sub T by Tau ;
+ sub U by Upsilon ;
+ sub F by Phi ;
+ sub Q by Chi ;
+ sub Y by Psi ;
+ sub W by Omega ;
+ sub semicolon by anoteleia ;
+ sub exclam by dotbelowcomb ;
+} GreekBabelLookupSimple ;
+
+feature grbl {
+
+ script DFLT ;
+ language dflt ;
+ lookup GreekBabelLookupMultiple ;
+ lookup GreekBabelLookupSimple ;
+
+ script latn;
+ language dflt ;
+ lookup GreekBabelLookupMultiple ;
+ lookup GreekBabelLookupSimple ;
+} grbl ;
+
diff --git a/fonts/fea/context/test-features.fea b/fonts/fea/context/test-features.fea
new file mode 100644
index 000000000..ffc3c588d
--- /dev/null
+++ b/fonts/fea/context/test-features.fea
@@ -0,0 +1,20 @@
+lookup TestLookupENGLISH {
+ lookupflag 0 ;
+ sub l a n g u a g e by e n g l i s h ;
+} TestLookupENGLISH ;
+
+lookup TestLookupDUTCH {
+ lookupflag 0 ;
+ sub l a n g u a g e by d u t c h ;
+} TestLookupDUTCH ;
+
+feature test {
+
+ script latn ;
+ language ENG exclude_dflt ;
+ lookup TestLookupENGLISH ;
+ language NLD exclude_dflt ;
+ lookup TestLookupDUTCH ;
+
+} test ;
+
diff --git a/fonts/fea/context/texhistoric.fea b/fonts/fea/context/texhistoric.fea
new file mode 100644
index 000000000..453ea0188
--- /dev/null
+++ b/fonts/fea/context/texhistoric.fea
@@ -0,0 +1,42 @@
+# The first MkIV OpenType Handler used internal methods, but
+# after we implemented other things it made more sense to
+# do the following. (HH)
+
+lookup TeXPseudoLigaturesLookup {
+ lookupflag 1 ;
+ sub hyphen hyphen hypen by emdash ;
+ sub hyphen hyphen by endash ;
+ sub hyphen endash by emdash ;
+ sub endash hyphen by emdash ;
+ sub quoteleft quoteleft by quotedblleft ;
+ sub quoteright quoteright by quotedblright ;
+ sub grave grave by quotedblleft ;
+ sub quotesingle quotesingle by quotedblright ;
+ sub comma comma by quotedblbase ;
+} TeXPseudoLigaturesLookup ;
+
+lookup TeXQuoteReplacementLookup {
+ lookupflag 1 ;
+ sub quotedbl by quotedblright ;
+ sub quotesingle by quoteright ;
+ sub grave by quoteleft ;
+} TeXQuoteReplacementLookup ;
+
+feature tlig {
+ script DFLT ;
+ language dflt ;
+ lookup TeXPseudoLigaturesLookup ;
+ script latn;
+ language dflt ;
+ lookup TeXPseudoLigaturesLookup ;
+} tlig ;
+
+feature trep {
+ script DFLT ;
+ language dflt ;
+ lookup TeXQuoteReplacementLookup ;
+ script latn;
+ language dflt ;
+ lookup TeXQuoteReplacementLookup ;
+} trep ;
+
diff --git a/fonts/fea/context/verbose-digits.fea b/fonts/fea/context/verbose-digits.fea
new file mode 100644
index 000000000..866734853
--- /dev/null
+++ b/fonts/fea/context/verbose-digits.fea
@@ -0,0 +1,36 @@
+lookup NumericLookupDFLT {
+ lookupflag 0 ;
+ sub zero by z e r o ;
+ sub one by o n e ;
+ sub two by t w o ;
+ sub three by t h r e e ;
+ sub four by f o u r ;
+ sub five by f i v e ;
+ sub six by s i x ;
+ sub seven by s e v e n ;
+ sub eight by e i g h t ;
+ sub nine by n i n e ;
+} NumericLookupDFLT ;
+
+feature verb {
+
+ script DFLT ;
+ language dflt ;
+ lookup NumericLookupDFLT ;
+
+ script latn;
+ language dflt ;
+ lookup NumericLookupDFLT ;
+ language AZE exclude_dflt ;
+ lookup NumericLookupDFLT ;
+ language CRT exclude_dflt ;
+ lookup NumericLookupDFLT ;
+ language MOL exclude_dflt ;
+ lookup NumericLookupDFLT ;
+ language ROM exclude_dflt ;
+ lookup NumericLookupDFLT ;
+ language TRK exclude_dflt ;
+ lookup NumericLookupDFLT ;
+
+} verb ;
+