1
1
mirror of https://github.com/i-tu/Hasklig.git synced 2024-09-11 10:36:46 +03:00

Place basic features ahead of alternate lookups

Fixes "Stylistic Alternates" usage bug in Photoshop
This commit is contained in:
Miguel Sousa 2017-08-14 01:54:23 -07:00
parent b2fb112d9b
commit bd41a18075
2 changed files with 295 additions and 315 deletions

View File

@ -73,59 +73,6 @@ languagesystem grek dflt; # Greek default
languagesystem cyrl dflt; # Cyrillic default languagesystem cyrl dflt; # Cyrillic default
languagesystem cyrl SRB; # Serbian languagesystem cyrl SRB; # Serbian
#--------------------------------------
lookup A_LC_ALT {
sub @A_LC by @A_LC_ALT;
} A_LC_ALT;
lookup G_LC_ALT {
sub @G_LC by @G_LC_ALT;
} G_LC_ALT;
lookup ENG_UC_SAMI { # preferred Eng shape for Sami languages
sub Eng by Eng.a;
} ENG_UC_SAMI;
#lookup BETA_LC_ALT {
# sub beta by beta.a;
#} BETA_LC_ALT;
#
#lookup THETA_LC_ALT {
# sub theta by theta.a;
#} THETA_LC_ALT;
#
#lookup PHI_LC_ALT {
# sub phi by phi.a;
#} PHI_LC_ALT;
lookup BREVE_CYR { #preferred breve shape for Cyrillic script
sub [brevecmb brevecmb.cap] by [brevecmb.cyr brevecmb.cyrcap]; # combining marks
} BREVE_CYR;
#lookup BE_LC_SRB {
# sub be by be.srb;
#} BE_LC_SRB;
lookup ZERO_SLASH {
sub [zero zero.onum zero.cap] by [zero.0 zero.0o zero.0c];
} ZERO_SLASH;
lookup HYPHEN_ALT {
sub [hyphen sfthyphen hyphentwo] by [hyphen.a sfthyphen.a hyphentwo.a];
} HYPHEN_ALT;
lookup ASTERISK_ALT {
sub asterisk by asterisk.a;
} ASTERISK_ALT;
lookup DOLLAR_ALT {
sub dollar by dollar.a;
} DOLLAR_ALT;
lookup ONE_ALT {
sub one by one.a;
} ONE_ALT;
#-------------------------------------- #--------------------------------------
#feature aalt { # Access All Alternates #feature aalt { # Access All Alternates
# feature locl; # feature locl;
@ -152,21 +99,28 @@ lookup ONE_ALT {
feature locl { # Localized Forms feature locl { # Localized Forms
script latn; script latn;
language NSM exclude_dflt; language NSM exclude_dflt;
lookup ENG_UC_SAMI; lookup ENG_UC_SAMI { # preferred Eng shape for Sami languages
sub Eng by Eng.a;
} ENG_UC_SAMI;
language SKS exclude_dflt; language SKS exclude_dflt;
lookup ENG_UC_SAMI; lookup ENG_UC_SAMI;
# script grek; # script grek;
# sub [acutecmb gravecmb commaturnedabovecmb commaabovecmb] by [tonoscmb variacmb aspercmb leniscmb]; # combining marks # language dflt;
# sub [acutecmb gravecmb commaturnedabovecmb commaabovecmb] by [tonoscmb variacmb aspercmb leniscmb]; # combining marks
# #
# script cyrl; # script cyrl;
# lookup BREVE_CYR; # language dflt;
# lookup BREVE_CYR { #preferred breve shape for Cyrillic script
# sub [brevecmb brevecmb.cap] by [brevecmb.cyr brevecmb.cyrcap]; # combining marks
# } BREVE_CYR;
# #
# language SRB include_dflt; # language SRB include_dflt;
# lookup BE_LC_SRB; # lookup BE_LC_SRB {
# sub be by be.srb;
# } BE_LC_SRB;
} locl; } locl;
@ -275,6 +229,131 @@ feature ccmp { # Glyph Composition / Decomposition
} ccmp; } ccmp;
#--------------------------------------
feature numr { # Numerators
lookup NUMR {
sub @FIGURES_LINING by @FIGURES_NUMERATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_NUMERATOR;
} NUMR;
} numr;
#--------------------------------------
feature dnom { # Denominators
sub @FIGURES_LINING by @FIGURES_DENOMINATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_DENOMINATOR;
} dnom;
#--------------------------------------
feature frac { # Fractions
@SPACE_DEFAULT = [space nbspace];
@SPACE_FRAC = [space.frac nbspace.frac];
@SLASH = [slash.frac fraction divisionslash];
lookup NUMR;
sub slash by slash.frac;
sub @FIGURES_NUMERATOR @SPACE_DEFAULT' by @SPACE_FRAC;
lookup ADJUST_WIDTHS_FRAC {
pos @SLASH <-300 0 -600 0>;
} ADJUST_WIDTHS_FRAC;
sub [fraction divisionslash slash.frac @FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR] [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
sub @FIGURES_DENOMINATOR @SPACE_FRAC [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
} frac;
#--------------------------------------
feature ordn {
lookup SUPERIOR_LETTERS_MINISCULE {
sub @LETTERS_MINISCULE_LATIN_BASIC by @LETTERS_MINISCULE_LATIN_SUPERIOR;
sub [egrave eacute eogonek schwa hhook] by [egrave.sups eacute.sups eogonek.sups schwa.sups hhook.sups];
} SUPERIOR_LETTERS_MINISCULE;
} ordn;
#--------------------------------------
feature sups { # Superscript
lookup SUPERIOR_LETTERS_MINISCULE;
lookup SUPERIOR_NUMERALS_SORTS {
sub @FIGURES_LINING by @FIGURES_SUPERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_SUPERIOR;
} SUPERIOR_NUMERALS_SORTS;
lookup SUPERIOR_SORTS {
sub [colon hyphen endash emdash] by [colon.sups hyphen.sups endash.sups emdash.sups];
} SUPERIOR_SORTS;
} sups;
#--------------------------------------
feature subs { # Subscript
lookup INFERIOR {
sub @FIGURES_LINING by @FIGURES_INFERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_INFERIOR;
} INFERIOR;
} subs;
#--------------------------------------
feature sinf { # Scientific Inferiors
lookup INFERIOR;
} sinf;
#--------------------------------------
feature onum { # Oldstyle (Text) Figures
sub @FIGURES_LINING by @FIGURES_OLDSTYLE;
} onum;
#--------------------------------------
feature case { # Case-Sensitive Forms
sub @MARKS_CMB_ALL by @MARKS_CMB_ALL_CASE;
sub @FIGURES_LINING by @FIGURES_CASE;
sub @FIGURES_OLDSTYLE by @FIGURES_CASE;
sub one.a by one.ac;
sub ijacute by IJacute;
sub at by at.case;
# sub anoteleia by anoteleia.cap;
} case;
#--------------------------------------
lookup A_LC_ALT {
sub @A_LC by @A_LC_ALT;
} A_LC_ALT;
lookup G_LC_ALT {
sub @G_LC by @G_LC_ALT;
} G_LC_ALT;
#lookup BETA_LC_ALT {
# sub beta by beta.a;
#} BETA_LC_ALT;
#
#lookup THETA_LC_ALT {
# sub theta by theta.a;
#} THETA_LC_ALT;
#
#lookup PHI_LC_ALT {
# sub phi by phi.a;
#} PHI_LC_ALT;
lookup ZERO_SLASH {
sub [zero zero.onum zero.cap] by [zero.0 zero.0o zero.0c];
} ZERO_SLASH;
lookup HYPHEN_ALT {
sub [hyphen sfthyphen hyphentwo] by [hyphen.a sfthyphen.a hyphentwo.a];
} HYPHEN_ALT;
lookup ASTERISK_ALT {
sub asterisk by asterisk.a;
} ASTERISK_ALT;
lookup DOLLAR_ALT {
sub dollar by dollar.a;
} DOLLAR_ALT;
lookup ONE_ALT {
sub one by one.a;
} ONE_ALT;
#-------------------------------------- #--------------------------------------
feature cv01 { # Character Variant 1 (alternate lowercase a) feature cv01 { # Character Variant 1 (alternate lowercase a)
cvParameters { cvParameters {
@ -376,18 +455,18 @@ feature cv06 { # Character Variant 6 (Sami uppercase Eng)
#} cv10; #} cv10;
#-------------------------------------- #--------------------------------------
feature cv11 { # Character Variant 11 (Cyrillic breve) #feature cv11 { # Character Variant 11 (Cyrillic breve)
cvParameters { # cvParameters {
FeatUILabelNameID { # FeatUILabelNameID {
name 3 1 0x0409 "Cyrillic breve [\02D8]"; # English US # name 3 1 0x0409 "Cyrillic breve [\02D8]"; # English US
name 3 1 0x0408 "\03BA\03C5\03C1\03B9\03BB\03BB\03B9\03BA\03CC \03B2\03C1\03B1\03C7\03CD [\02D8]"; # Greek # name 3 1 0x0408 "\03BA\03C5\03C1\03B9\03BB\03BB\03B9\03BA\03CC \03B2\03C1\03B1\03C7\03CD [\02D8]"; # Greek
name 3 1 0x0419 "\043A\0438\0440\0438\043B\043B\0438\0447\0435\0441\043A\0430\044F \043A\0440\0430\0442\043A\0430 [\02D8]"; # Russian # name 3 1 0x0419 "\043A\0438\0440\0438\043B\043B\0438\0447\0435\0441\043A\0430\044F \043A\0440\0430\0442\043A\0430 [\02D8]"; # Russian
}; # };
}; # };
#
lookup BREVE_CYR; # lookup BREVE_CYR;
#
} cv11; #} cv11;
#-------------------------------------- #--------------------------------------
feature cv12 { # Character Variant 12 (slashed zero) feature cv12 { # Character Variant 12 (slashed zero)
@ -459,95 +538,6 @@ feature cv17 { # Character Variant 17 (alternate numeral one)
} cv17; } cv17;
#--------------------------------------
feature numr { # Numerators
lookup NUMR {
sub @FIGURES_LINING by @FIGURES_NUMERATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_NUMERATOR;
sub one.a by one.numr;
} NUMR;
} numr;
#--------------------------------------
feature dnom { # Denominators
sub @FIGURES_LINING by @FIGURES_DENOMINATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_DENOMINATOR;
sub one.a by one.dnom;
} dnom;
#--------------------------------------
feature frac { # Fractions
@SPACE_DEFAULT = [space nbspace];
@SPACE_FRAC = [space.frac nbspace.frac];
@SLASH = [slash.frac fraction divisionslash];
lookup NUMR;
sub slash by slash.frac;
sub @FIGURES_NUMERATOR @SPACE_DEFAULT' by @SPACE_FRAC;
lookup ADJUST_WIDTHS_FRAC {
pos @SLASH <-300 0 -600 0>;
} ADJUST_WIDTHS_FRAC;
sub [fraction divisionslash slash.frac @FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR] [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
sub @FIGURES_DENOMINATOR @SPACE_FRAC [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
} frac;
#--------------------------------------
feature ordn {
lookup SUPERIOR_LETTERS_MINISCULE {
sub @LETTERS_MINISCULE_LATIN_BASIC by @LETTERS_MINISCULE_LATIN_SUPERIOR;
sub [egrave eacute schwa] by [egrave.sups eacute.sups schwa.sups];
} SUPERIOR_LETTERS_MINISCULE;
} ordn;
#--------------------------------------
feature sups { # Superscript
lookup SUPERIOR_LETTERS_MINISCULE;
lookup SUPERIOR_NUMERALS_SORTS {
sub @FIGURES_LINING by @FIGURES_SUPERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_SUPERIOR;
sub one.a by one.sups;
} SUPERIOR_NUMERALS_SORTS;
lookup SUPERIOR_SORTS {
sub [colon hyphen endash emdash] by [colon.sups hyphen.sups endash.sups emdash.sups];
} SUPERIOR_SORTS;
} sups;
#--------------------------------------
feature subs { # Subscript
lookup INFERIOR {
sub @FIGURES_LINING by @FIGURES_INFERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_INFERIOR;
sub one.a by one.subs;
} INFERIOR;
} subs;
#--------------------------------------
feature sinf { # Scientific Inferiors
lookup INFERIOR;
} sinf;
#--------------------------------------
feature onum { # Oldstyle (Text) Figures
sub @FIGURES_LINING by @FIGURES_OLDSTYLE;
sub one.a by one.ao;
} onum;
#--------------------------------------
feature case { # Case-Sensitive Forms
sub @MARKS_CMB_ALL by @MARKS_CMB_ALL_CASE;
sub @FIGURES_LINING by @FIGURES_CASE;
sub @FIGURES_OLDSTYLE by @FIGURES_CASE;
sub one.a by one.ac;
sub ijacute by IJacute;
sub at by at.case;
# sub anoteleia by anoteleia.cap;
} case;
#-------------------------------------- #--------------------------------------
feature ss01 { # Stylistic Set 1 (typographic alternates) feature ss01 { # Stylistic Set 1 (typographic alternates)
featureNames { featureNames {

View File

@ -61,11 +61,11 @@ dieresisacutecmb.cap dieresisgravecmb.cap dieresismacroncmb.cap dieresiscaroncmb
@G_LC = [g gacute gcircumflex gbreve gdotaccent gcommaaccent gcaron gmacron gtilde g.sups]; @G_LC = [g gacute gcircumflex gbreve gdotaccent gcommaaccent gcaron gmacron gtilde g.sups];
@G_LC_ALT = [g.a gacute.a gcircumflex.a gbreve.a gdotaccent.a gcommaaccent.a gcaron.a gmacron.a gtilde.a g.supa]; @G_LC_ALT = [g.a gacute.a gcircumflex.a gbreve.a gdotaccent.a gcommaaccent.a gcaron.a gmacron.a gtilde.a g.supa];
@I_LC = [i dotlessi igrave iacute icircumflex itilde idieresis imacron icaron iogonek ihoi idotbelow ibreve istroke iogonek.d istroke.d iukran i.sups]; @I_LC = [i dotlessi igrave iacute icircumflex itilde idieresis imacron icaron iogonek ihoi idotbelow ibreve istroke iogonek.d istroke.d iukran yi i.sups];
@I_LC_ALT = [i.a dotlessi.a igrave.a iacute.a icircumflex.a itilde.a idieresis.a imacron.a icaron.a iogonek.a ihoi.a idotbelow.a ibreve.a istroke.a iogonek.da istroke.da iukran.a i.supa]; @I_LC_ALT = [i.a dotlessi.a igrave.a iacute.a icircumflex.a itilde.a idieresis.a imacron.a icaron.a iogonek.a ihoi.a idotbelow.a ibreve.a istroke.a iogonek.da istroke.da iukran.a yi.a i.supa];
@L_LC = [l lacute lcaron lcommaaccent ldotbelow ldotbelowmacron llinebelow lslash ldot lcat lmiddletilde lbelt]; @L_LC = [l lacute lcaron lcommaaccent ldotbelow ldotbelowmacron llinebelow lslash ldot lcat lmiddletilde lbelt palochka];
@L_LC_ALT = [l.a lacute.a lcaron.a lcommaaccent.a ldotbelow.a ldotbelowmacron.a llinebelow.a lslash.a ldot.a lcat.a lmiddletilde.a lbelt.a]; @L_LC_ALT = [l.a lacute.a lcaron.a lcommaaccent.a ldotbelow.a ldotbelowmacron.a llinebelow.a lslash.a ldot.a lcat.a lmiddletilde.a lbelt.a palochka.a];
#-------------------------------------- #--------------------------------------
languagesystem DFLT dflt; # Default languagesystem DFLT dflt; # Default
@ -80,64 +80,6 @@ languagesystem grek dflt; # Greek default
languagesystem cyrl dflt; # Cyrillic default languagesystem cyrl dflt; # Cyrillic default
languagesystem cyrl SRB; # Serbian languagesystem cyrl SRB; # Serbian
#--------------------------------------
lookup A_LC_ALT {
sub @A_LC by @A_LC_ALT;
} A_LC_ALT;
lookup G_LC_ALT {
sub @G_LC by @G_LC_ALT;
} G_LC_ALT;
lookup I_LC_ALT { # includes i & l alternates
sub @I_LC by @I_LC_ALT;
sub @L_LC by @L_LC_ALT;
} I_LC_ALT;
lookup ENG_UC_SAMI { # preferred Eng shape for Sami languages
sub Eng by Eng.a;
} ENG_UC_SAMI;
lookup BETA_LC_ALT {
sub beta by beta.a;
} BETA_LC_ALT;
lookup THETA_LC_ALT {
sub theta by theta.a;
} THETA_LC_ALT;
lookup PHI_LC_ALT {
sub phi by phi.a;
} PHI_LC_ALT;
lookup BREVE_CYR { #preferred breve shape for Cyrillic script
sub [brevecmb brevecmb.cap] by [brevecmb.cyr brevecmb.cyrcap]; # combining marks
} BREVE_CYR;
lookup BE_LC_SRB {
sub be by be.srb;
} BE_LC_SRB;
lookup ZERO_SLASH {
sub [zero zero.onum zero.cap] by [zero.0 zero.0o zero.0c];
} ZERO_SLASH;
lookup HYPHEN_ALT {
sub [hyphen sfthyphen hyphentwo] by [hyphen.a sfthyphen.a hyphentwo.a];
} HYPHEN_ALT;
lookup ASTERISK_ALT {
sub asterisk by asterisk.a;
} ASTERISK_ALT;
lookup DOLLAR_ALT {
sub dollar by dollar.a;
} DOLLAR_ALT;
lookup ONE_ALT {
sub one by one.a;
} ONE_ALT;
#-------------------------------------- #--------------------------------------
#feature aalt { # Access All Alternates #feature aalt { # Access All Alternates
# feature locl; # feature locl;
@ -164,21 +106,28 @@ lookup ONE_ALT {
feature locl { # Localized Forms feature locl { # Localized Forms
script latn; script latn;
language NSM exclude_dflt; language NSM exclude_dflt;
lookup ENG_UC_SAMI; lookup ENG_UC_SAMI { # preferred Eng shape for Sami languages
sub Eng by Eng.a;
} ENG_UC_SAMI;
language SKS exclude_dflt; language SKS exclude_dflt;
lookup ENG_UC_SAMI; lookup ENG_UC_SAMI;
script grek; script grek;
sub [acutecmb gravecmb commaturnedabovecmb commaabovecmb] by [tonoscmb variacmb aspercmb leniscmb]; # combining marks language dflt;
sub [acutecmb gravecmb commaturnedabovecmb commaabovecmb] by [tonoscmb variacmb aspercmb leniscmb]; # combining marks
script cyrl; script cyrl;
lookup BREVE_CYR; language dflt;
lookup BREVE_CYR { #preferred breve shape for Cyrillic script
sub [brevecmb brevecmb.cap] by [brevecmb.cyr brevecmb.cyrcap]; # combining marks
} BREVE_CYR;
language SRB include_dflt; language SRB include_dflt;
lookup BE_LC_SRB; lookup BE_LC_SRB {
sub be by be.srb;
} BE_LC_SRB;
} locl; } locl;
@ -288,6 +237,136 @@ feature ccmp { # Glyph Composition / Decomposition
} ccmp; } ccmp;
#--------------------------------------
feature numr { # Numerators
lookup NUMR {
sub @FIGURES_LINING by @FIGURES_NUMERATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_NUMERATOR;
} NUMR;
} numr;
#--------------------------------------
feature dnom { # Denominators
sub @FIGURES_LINING by @FIGURES_DENOMINATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_DENOMINATOR;
} dnom;
#--------------------------------------
feature frac { # Fractions
@SPACE_DEFAULT = [space nbspace];
@SPACE_FRAC = [space.frac nbspace.frac];
@SLASH = [slash.frac fraction divisionslash];
lookup NUMR;
sub slash by slash.frac;
sub @FIGURES_NUMERATOR @SPACE_DEFAULT' by @SPACE_FRAC;
lookup ADJUST_WIDTHS_FRAC {
pos @SLASH <-300 0 -600 0>;
} ADJUST_WIDTHS_FRAC;
sub [fraction divisionslash slash.frac @FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR] [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
sub @FIGURES_DENOMINATOR @SPACE_FRAC [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
} frac;
#--------------------------------------
feature ordn {
lookup SUPERIOR_LETTERS_MINISCULE {
sub @LETTERS_MINISCULE_LATIN_BASIC by @LETTERS_MINISCULE_LATIN_SUPERIOR;
sub [egrave eacute eogonek schwa hhook] by [egrave.sups eacute.sups eogonek.sups schwa.sups hhook.sups];
} SUPERIOR_LETTERS_MINISCULE;
} ordn;
#--------------------------------------
feature sups { # Superscript
lookup SUPERIOR_LETTERS_MINISCULE;
lookup SUPERIOR_NUMERALS_SORTS {
sub @FIGURES_LINING by @FIGURES_SUPERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_SUPERIOR;
} SUPERIOR_NUMERALS_SORTS;
lookup SUPERIOR_SORTS {
sub [colon hyphen endash emdash] by [colon.sups hyphen.sups endash.sups emdash.sups];
} SUPERIOR_SORTS;
} sups;
#--------------------------------------
feature subs { # Subscript
lookup INFERIOR {
sub @FIGURES_LINING by @FIGURES_INFERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_INFERIOR;
} INFERIOR;
} subs;
#--------------------------------------
feature sinf { # Scientific Inferiors
lookup INFERIOR;
} sinf;
#--------------------------------------
feature onum { # Oldstyle (Text) Figures
sub @FIGURES_LINING by @FIGURES_OLDSTYLE;
} onum;
#--------------------------------------
feature case { # Case-Sensitive Forms
sub @MARKS_CMB_ALL by @MARKS_CMB_ALL_CASE;
sub @FIGURES_LINING by @FIGURES_CASE;
sub @FIGURES_OLDSTYLE by @FIGURES_CASE;
sub one.a by one.ac;
sub ijacute by IJacute;
sub at by at.case;
sub anoteleia by anoteleia.cap;
} case;
#--------------------------------------
lookup A_LC_ALT {
sub @A_LC by @A_LC_ALT;
} A_LC_ALT;
lookup G_LC_ALT {
sub @G_LC by @G_LC_ALT;
} G_LC_ALT;
lookup I_LC_ALT { # includes i & l alternates
sub @I_LC by @I_LC_ALT;
sub @L_LC by @L_LC_ALT;
} I_LC_ALT;
lookup BETA_LC_ALT {
sub beta by beta.a;
} BETA_LC_ALT;
lookup THETA_LC_ALT {
sub theta by theta.a;
} THETA_LC_ALT;
lookup PHI_LC_ALT {
sub phi by phi.a;
} PHI_LC_ALT;
lookup ZERO_SLASH {
sub [zero zero.onum zero.cap] by [zero.0 zero.0o zero.0c];
} ZERO_SLASH;
lookup HYPHEN_ALT {
sub [hyphen sfthyphen hyphentwo] by [hyphen.a sfthyphen.a hyphentwo.a];
} HYPHEN_ALT;
lookup ASTERISK_ALT {
sub asterisk by asterisk.a;
} ASTERISK_ALT;
lookup DOLLAR_ALT {
sub dollar by dollar.a;
} DOLLAR_ALT;
lookup ONE_ALT {
sub one by one.a;
} ONE_ALT;
#-------------------------------------- #--------------------------------------
feature cv01 { # Character Variant 1 (alternate lowercase a) feature cv01 { # Character Variant 1 (alternate lowercase a)
cvParameters { cvParameters {
@ -484,95 +563,6 @@ feature cv17 { # Character Variant 17 (alternate numeral one)
} cv17; } cv17;
#--------------------------------------
feature numr { # Numerators
lookup NUMR {
sub @FIGURES_LINING by @FIGURES_NUMERATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_NUMERATOR;
sub one.a by one.numr;
} NUMR;
} numr;
#--------------------------------------
feature dnom { # Denominators
sub @FIGURES_LINING by @FIGURES_DENOMINATOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_DENOMINATOR;
sub one.a by one.dnom;
} dnom;
#--------------------------------------
feature frac { # Fractions
@SPACE_DEFAULT = [space nbspace];
@SPACE_FRAC = [space.frac nbspace.frac];
@SLASH = [slash.frac fraction divisionslash];
lookup NUMR;
sub slash by slash.frac;
sub @FIGURES_NUMERATOR @SPACE_DEFAULT' by @SPACE_FRAC;
lookup ADJUST_WIDTHS_FRAC {
pos @SLASH <-300 0 -600 0>;
} ADJUST_WIDTHS_FRAC;
sub [fraction divisionslash slash.frac @FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR] [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
sub @FIGURES_DENOMINATOR @SPACE_FRAC [@FIGURES_NUMERATOR @PUNCTUATION_NUMERATOR]' by [@FIGURES_DENOMINATOR @PUNCTUATION_DENOMINATOR];
} frac;
#--------------------------------------
feature ordn {
lookup SUPERIOR_LETTERS_MINISCULE {
sub @LETTERS_MINISCULE_LATIN_BASIC by @LETTERS_MINISCULE_LATIN_SUPERIOR;
sub [egrave eacute schwa] by [egrave.sups eacute.sups schwa.sups];
} SUPERIOR_LETTERS_MINISCULE;
} ordn;
#--------------------------------------
feature sups { # Superscript
lookup SUPERIOR_LETTERS_MINISCULE;
lookup SUPERIOR_NUMERALS_SORTS {
sub @FIGURES_LINING by @FIGURES_SUPERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_SUPERIOR;
sub one.a by one.sups;
} SUPERIOR_NUMERALS_SORTS;
lookup SUPERIOR_SORTS {
sub [colon hyphen endash emdash] by [colon.sups hyphen.sups endash.sups emdash.sups];
} SUPERIOR_SORTS;
} sups;
#--------------------------------------
feature subs { # Subscript
lookup INFERIOR {
sub @FIGURES_LINING by @FIGURES_INFERIOR;
sub @PUNCTUATION_FOR_SMALL_FIGURE_STYLES by @PUNCTUATION_INFERIOR;
sub one.a by one.subs;
} INFERIOR;
} subs;
#--------------------------------------
feature sinf { # Scientific Inferiors
lookup INFERIOR;
} sinf;
#--------------------------------------
feature onum { # Oldstyle (Text) Figures
sub @FIGURES_LINING by @FIGURES_OLDSTYLE;
sub one.a by one.ao;
} onum;
#--------------------------------------
feature case { # Case-Sensitive Forms
sub @MARKS_CMB_ALL by @MARKS_CMB_ALL_CASE;
sub @FIGURES_LINING by @FIGURES_CASE;
sub @FIGURES_OLDSTYLE by @FIGURES_CASE;
sub one.a by one.ac;
sub ijacute by IJacute;
sub at by at.case;
sub anoteleia by anoteleia.cap;
} case;
#-------------------------------------- #--------------------------------------
feature ss01 { # Stylistic Set 1 (typographic alternates) feature ss01 { # Stylistic Set 1 (typographic alternates)
featureNames { featureNames {