# DTL default OpenType Layout features file # Version 2.1 Revision 8 # Supports AFDKO 2.0 and newer # Changed character naming to AGLFN version 1.5 specs # Includes Cyrillic and Greek # Last update: 20 December 2011 / FEB # Copyright (c) Dutch Type Library, 2011. All rights reserved #--------------------------------------- # table OS/2 { # TypoAscender 000; # TypoDescender -000; # Panose 0 0 0 0 0 0 0 0 0 0; # XHeight 000; # CapHeight 000; # FSType 0; # } OS/2; #--------------------------------------- # The following is controlled via the 'include (featname.txt)' statement at the end of this file. # Can be used for specific font-modified features files. # table name { # nameid 0 "Copyright \00a9 Dutch Type Library, All rights reserved"; # nameid 0 1 "Copyright \00a9 Dutch Type Library, All rights reserved"; # nameid 1 ""; # nameid 1 1 ""; # nameid 2 ""; # nameid 2 1 ""; # nameid 3 ""; # nameid 3 1 ""; # nameid 4 ""; # nameid 4 1 ""; # nameid 5 ""; # nameid 5 1 ""; # nameid 6 ""; # nameid 6 1 ""; # nameid 7 " is a trademark of the Dutch Type Library"; # nameid 7 1 " is a trademark of the Dutch Type Library"; # nameid 8 "Dutch Type Library"; # nameid 8 1 "Dutch Type Library"; # nameid 9 ""; # nameid 9 1 ""; # nameid 10 ""; # nameid 10 1 ""; # nameid 11 "http://www.dutchtypelibrary.nl"; # nameid 11 1 "http://www.dutchtypelibrary.nl"; # nameid 12 ""; # nameid 12 1 ""; # nameid 13 "By downloading, unpacking and/or installing DTL Font Software you acknowledge that you have read the DTL End User License Agreement, understand it and that together with the related invoice it is the complete and exclusive statement of your agreement with the Dutch Type Library concerning this purchase of DTL Font Software and that your obligations under this agreement shall inure to the benefit of Dutch Type Library licensors whose rights are licensed under this agreement. No variation of the terms of this agreement will be enforceable against the Dutch Type Library unless the Dutch Type Library gives it expressed consent in writing signed by an officer of the Dutch Type Library. By installing the software you accept your own liability to comply with all terms and conditions of the license. If you do not agree completely with the license, do not download, unpack and/or install DTL Font Software."; # nameid 13 1 "By downloading, unpacking and/or installing DTL Font Software you acknowledge that you have read the DTL End User License Agreement, understand it and that together with the related invoice it is the complete and exclusive statement of your agreement with the Dutch Type Library concerning this purchase of DTL Font Software and that your obligations under this agreement shall inure to the benefit of Dutch Type Library licensors whose rights are licensed under this agreement. No variation of the terms of this agreement will be enforceable against the Dutch Type Library unless the Dutch Type Library gives it expressed consent in writing signed by an officer of the Dutch Type Library. By installing the software you accept your own liability to comply with all terms and conditions of the license. If you do not agree completely with the license, do not download, unpack and/or install DTL Font Software."; # nameid 14 "http://www.dutchtypelibrary.nl"; # nameid 14 1 "http://www.dutchtypelibrary.nl"; # nameid 16 1 ""; # nameid 17 1 ""; # nameid 18 ""; # nameid 19 "The quick brown fox jumps over the lazy dog"; # nameid 19 1 "The quick brown fox jumps over the lazy dog"; # } name; # Note: The original Adobe HOT tool would not take the names in the range of 1-6 # (the standard range) from a feature file. # The modified URW++ HOT tool will take any ID but you will get a warning that # the respective name may not be compatible with some names in the 'CFF ' table. #--------------------------------------- # --- GLYPH GROUPINGS # --- Latin @LETTERS_UC = [ A - Z AE Lslash Oslash OE Thorn Eth Aacute Abreve Acircumflex Adieresis Agrave Amacron Aogonek Aring Atilde Cacute Ccaron Ccedilla Dcaron Dcroat Eacute Ecaron Ecircumflex Edieresis Edotaccent Egrave Emacron Eogonek Gbreve Gcommaaccent Iacute Icircumflex Idieresis Igrave Imacron Iogonek Kcommaaccent Lacute Lcaron Lcommaaccent Nacute Ncaron Ncommaaccent Ntilde Oacute Ocircumflex Odieresis Ograve Ohungarumlaut Omacron Otilde Racute Rcaron Rcommaaccent Sacute Scaron Scedilla Scommaaccent Tcaron Tcommaaccent Uacute Ucircumflex Udieresis Ugrave Uhungarumlaut Umacron Uogonek Uring Yacute Ydieresis Zacute Zcaron Zdotaccent ]; @ACCENTS_UC = [ Acute Breve Caron Cedilla Circumflex commaaccent.cap Dieresis Dotaccent Grave Hungarumlaut Macron Ogonek Ring Tilde ]; @LETTERS_LC = [ a - z ae lslash oslash oe thorn eth aacute abreve acircumflex adieresis agrave amacron aogonek aring atilde cacute ccaron ccedilla dcaron dcroat eacute ecaron ecircumflex edieresis edotaccent egrave emacron eogonek gbreve gcommaaccent iacute icircumflex idieresis igrave imacron iogonek kcommaaccent lacute lcaron lcommaaccent nacute ncaron ncommaaccent ntilde oacute ocircumflex odieresis ograve ohungarumlaut omacron otilde racute rcaron rcommaaccent sacute scaron scedilla scommaaccent tcaron tcommaaccent uacute ucircumflex udieresis ugrave uhungarumlaut umacron uogonek uring yacute ydieresis zacute zcaron zdotaccent ]; @ACCENTS_LC = [ acute breve caron cedilla circumflex commaaccent dieresis dotaccent grave hungarumlaut macron ogonek ring tilde ]; @LETTERS_SC = [ a.sc - z.sc ae.sc lslash.sc oslash.sc oe.sc thorn.sc eth.sc aacute.sc abreve.sc acircumflex.sc adieresis.sc agrave.sc amacron.sc aogonek.sc aring.sc atilde.sc cacute.sc ccaron.sc ccedilla.sc dcaron.sc dcroat.sc eacute.sc ecaron.sc ecircumflex.sc edieresis.sc edotaccent.sc egrave.sc emacron.sc eogonek.sc gbreve.sc gcommaaccent.sc iacute.sc icircumflex.sc idieresis.sc igrave.sc imacron.sc iogonek.sc kcommaaccent.sc lacute.sc lcaron.sc lcommaaccent.sc nacute.sc ncaron.sc ncommaaccent.sc ntilde.sc oacute.sc ocircumflex.sc odieresis.sc ograve.sc ohungarumlaut.sc omacron.sc otilde.sc racute.sc rcaron.sc rcommaaccent.sc sacute.sc scaron.sc scedilla.sc scommaaccent.sc tcaron.sc tcommaaccent.sc uacute.sc ucircumflex.sc udieresis.sc ugrave.sc uhungarumlaut.sc umacron.sc uogonek.sc uring.sc yacute.sc ydieresis.sc zacute.sc zcaron.sc zdotaccent.sc ]; @ACCENTS_SC = [ acute.sc breve.sc caron.sc cedilla.sc circumflex.sc commaaccent.sc dieresis.sc dotaccent.sc grave.sc hungarumlaut.sc macron.sc ogonek.sc ring.sc tilde.sc ]; @LETTERS_SUPERIOR = [ a.superior b.superior d.superior e.superior h.superior i.superior l.superior m.superior n.superior o.superior r.superior s.superior t.superior ]; @PUNCT_DEFAULT = [ ampersand exclam exclamdown question questiondown ]; @PUNCT_SC = [ ampersand.sc exclam.sc exclamdown.sc question.sc questiondown.sc ]; @PUNCT_LC = [ at braceleft braceright bracketleft bracketright emdash endash exclamdown guillemotleft guillemotright guilsinglleft guilsinglright hyphen parenleft parenright periodcentered questiondown ]; @PUNCT_UC = [ at.cap braceleft.cap braceright.cap bracketleft.cap bracketright.cap emdash.cap endash.cap exclamdown.cap guillemotleft.cap guillemotright.cap guilsinglleft.cap guilsinglright.cap hyphen.cap parenleft.cap parenright.cap periodcentered.cap questiondown.cap ]; # --- Cyrillic @LETTERS_UC_CYRILLIC = [ afii10017 afii10018 afii10019 afii10020 afii10021 afii10022 afii10024 afii10025 afii10026 afii10028 afii10029 afii10030 afii10031 afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038 afii10039 afii10040 afii10041 afii10042 afii10043 afii10046 afii10045 afii10044 afii10047 afii10048 afii10049 afii10050 afii10051 afii10053 afii10054 afii10055 afii10057 afii10058 afii10059 afii10060 afii10145 uni04E8 uni0496 uni04AE uni04D8 uni04BA uni0492 uni04B0 afii10023 afii10027 afii10052 afii10056 afii10061 afii10062 uni04E2 uni04EE uni049C uni049A uni04A2 uni04B2 uni04B8 uni04B6 uni0400 uni040D ]; @LETTERS_LC_CYRILLIC = [ afii10065 afii10066 afii10067 afii10068 afii10069 afii10070 afii10072 afii10073 afii10074 afii10076 afii10077 afii10078 afii10079 afii10080 afii10081 afii10082 afii10083 afii10084 afii10085 afii10086 afii10087 afii10088 afii10089 afii10090 afii10091 afii10092 afii10093 afii10094 afii10095 afii10096 afii10097 afii10098 afii10099 afii10101 afii10102 afii10103 afii10105 afii10106 afii10107 afii10108 afii10193 uni04E9 uni0497 uni04AF afii10846 uni04BB uni0493 uni04B1 afii10071 afii10075 afii10100 afii10104 afii10109 afii10110 uni04E3 uni04EF uni049D uni049B uni04A3 uni04B3 uni04B9 uni04B7 uni0450 uni045D ]; @LETTERS_SC_CYRILLIC = [ afii10065.sc afii10066.sc afii10067.sc afii10068.sc afii10069.sc afii10070.sc afii10072.sc afii10073.sc afii10074.sc afii10076.sc afii10077.sc afii10078.sc afii10079.sc afii10080.sc afii10081.sc afii10082.sc afii10083.sc afii10084.sc afii10085.sc afii10086.sc afii10087.sc afii10088.sc afii10089.sc afii10090.sc afii10091.sc afii10092.sc afii10093.sc afii10094.sc afii10095.sc afii10096.sc afii10097.sc afii10098.sc afii10099.sc afii10101.sc afii10102.sc afii10103.sc afii10105.sc afii10106.sc afii10107.sc afii10108.sc afii10193.sc uni04E9.sc uni0497.sc uni04AF.sc afii10846.sc uni04BB.sc uni0493.sc uni04B1.sc afii10071.sc afii10075.sc afii10100.sc afii10104.sc afii10109.sc afii10110.sc uni04E3.sc uni04EF.sc uni049D.sc uni049B.sc uni04A3.sc uni04B3.sc uni04B9.sc uni04B7.sc uni0450.sc uni045D.sc ]; # --- Greek @LETTERS_UC_GREEK = [ Alpha Beta Gamma Delta Epsilon Zeta Eta Theta Iota Kappa Lambda Mu Nu Xi Omicron Pi Rho Sigma Tau Upsilon Phi Chi Psi Omega Iotadieresis Upsilondieresis Alphatonos Epsilontonos Etatonos Iotatonos Omicrontonos Omegatonos Upsilontonos Iotadieresistonos ]; @LETTERS_LC_GREEK = [ alpha beta gamma delta epsilon zeta eta theta iota kappa lambda mu nu xi omicron pi rho sigma tau upsilon phi chi psi omega iotadieresis upsilondieresis alphatonos epsilontonos etatonos iotatonos omicrontonos omegatonos upsilontonos iotadieresistonos ]; @LETTERS_SC_GREEK = [ alpha.sc beta.sc gamma.sc delta.sc epsilon.sc zeta.sc eta.sc theta.sc iota.sc kappa.sc lambda.sc mu.sc nu.sc xi.sc omicron.sc pi.sc rho.sc sigma.sc tau.sc upsilon.sc phi.sc chi.sc psi.sc omega.sc iotadieresis.sc upsilondieresis.sc alphatonos.sc epsilontonos.sc etatonos.sc iotatonos.sc omicrontonos.sc omegatonos.sc upsilontonos.sc iotadieresistonos.sc ]; # --- Titling @LETTERS_UC_TITLING = [ A.titling - Z.titling AE.titling Lslash.titling Oslash.titling OE.titling Thorn.titling Eth.titling Aacute.titling Abreve.titling Acircumflex.titling Adieresis.titling Agrave.titling Amacron.titling Aogonek.titling Aring.titling Atilde.titling Cacute.titling Ccaron.titling Ccedilla.titling Dcaron.titling Dcroat.titling Eacute.titling Ecaron.titling Ecircumflex.titling Edieresis.titling Edotaccent.titling Egrave.titling Emacron.titling Eogonek.titling Gbreve.titling Gcommaaccent.titling Iacute.titling Icircumflex.titling Idieresis.titling Igrave.titling Imacron.titling Iogonek.titling Kcommaaccent.titling Lacute.titling Lcaron.titling Lcommaaccent.titling Nacute.titling Ncaron.titling Ncommaaccent.titling Ntilde.titling Oacute.titling Ocircumflex.titling Odieresis.titling Ograve.titling Ohungarumlaut.titling Omacron.titling Otilde.titling Racute.titling Rcaron.titling Rcommaaccent.titling Sacute.titling Scaron.titling Scedilla.titling Scommaaccent.titling Tcaron.titling Tcommaaccent.titling Uacute.titling Ucircumflex.titling Udieresis.titling Ugrave.titling Uhungarumlaut.titling Umacron.titling Uogonek.titling Uring.titling Yacute.titling Ydieresis.titling Zacute.titling Zcaron.titling Zdotaccent.titling ]; @ACCENTS_UC_TITLING = [ Acute.titling Breve.titling Caron.titling Cedilla.titling Circumflex.titling Commaaccent.titling Dieresis.titling Dotaccent.titling Grave.titling Hungarumlaut.titling Macron.titling Ogonek.titling Ring.titling Tilde.titling ]; @PUNCT_UC_TITLING = [ at.captitling braceleft.captitling braceright.captitling bracketleft.captitling bracketright.captitling emdash.captitling endash.captitling exclamdown.captitling guillemotleft.captitling guillemotright.captitling guilsinglleft.captitling guilsinglright.captitling hyphen.captitling parenleft.captitling parenright.captitling periodcentered.captitling questiondown.captitling ]; # --- Swash @LETTERS_UC_SWASH = [ A.swash - Z.swash AE.swash Lslash.swash Oslash.swash OE.swash Thorn.swash Eth.swash Aacute.swash Abreve.swash Acircumflex.swash Adieresis.swash Agrave.swash Amacron.swash Aogonek.swash Aring.swash Atilde.swash Cacute.swash Ccaron.swash Ccedilla.swash Dcaron.swash Dcroat.swash Eacute.swash Ecaron.swash Ecircumflex.swash Edieresis.swash Edotaccent.swash Egrave.swash Emacron.swash Eogonek.swash Gbreve.swash Gcommaaccent.swash Iacute.swash Icircumflex.swash Idieresis.swash Igrave.swash Imacron.swash Iogonek.swash Kcommaaccent.swash Lacute.swash Lcaron.swash Lcommaaccent.swash Nacute.swash Ncaron.swash Ncommaaccent.swash Ntilde.swash Oacute.swash Ocircumflex.swash Odieresis.swash Ograve.swash Ohungarumlaut.swash Omacron.swash Otilde.swash Racute.swash Rcaron.swash Rcommaaccent.swash Sacute.swash Scaron.swash Scedilla.swash Scommaaccent.swash Tcaron.swash Tcommaaccent.swash Uacute.swash Ucircumflex.swash Udieresis.swash Ugrave.swash Uhungarumlaut.swash Umacron.swash Uogonek.swash Uring.swash Yacute.swash Ydieresis.swash Zacute.swash Zcaron.swash Zdotaccent.swash ]; @LETTERS_LC_SWASH = [ a.swash - z.swash ae.swash lslash.swash oslash.swash oe.swash thorn.swash eth.swash aacute.swash abreve.swash acircumflex.swash adieresis.swash agrave.swash amacron.swash aogonek.swash aring.swash atilde.swash cacute.swash ccaron.swash ccedilla.swash dcaron.swash dcroat.swash eacute.swash ecaron.swash ecircumflex.swash edieresis.swash edotaccent.swash egrave.swash emacron.swash eogonek.swash gbreve.swash gcommaaccent.swash iacute.swash icircumflex.swash idieresis.swash igrave.swash imacron.swash iogonek.swash kcommaaccent.swash lacute.swash lcaron.swash lcommaaccent.swash nacute.swash ncaron.swash ncommaaccent.swash ntilde.swash oacute.swash ocircumflex.swash odieresis.swash ograve.swash ohungarumlaut.swash omacron.swash otilde.swash racute.swash rcaron.swash rcommaaccent.swash sacute.swash scaron.swash scedilla.swash scommaaccent.swash tcaron.swash tcommaaccent.swash uacute.swash ucircumflex.swash udieresis.swash ugrave.swash uhungarumlaut.swash umacron.swash uogonek.swash uring.swash yacute.swash ydieresis.swash zacute.swash zcaron.swash zdotaccent.swash ]; @LETTERS_SC_SWASH = [ a.sc.swash - z.sc.swash ae.sc.swash lslash.sc.swash oslash.sc.swash oe.sc.swash thorn.sc.swash eth.sc.swash aacute.sc.swash abreve.sc.swash acircumflex.sc.swash adieresis.sc.swash agrave.sc.swash amacron.sc.swash aogonek.sc.swash aring.sc.swash atilde.sc.swash cacute.sc.swash ccaron.sc.swash ccedilla.sc.swash dcaron.sc.swash dcroat.sc.swash eacute.sc.swash ecaron.sc.swash ecircumflex.sc.swash edieresis.sc.swash edotaccent.sc.swash egrave.sc.swash emacron.sc.swash eogonek.sc.swash gbreve.sc.swash gcommaaccent.sc.swash iacute.sc.swash icircumflex.sc.swash idieresis.sc.swash igrave.sc.swash imacron.sc.swash iogonek.sc.swash kcommaaccent.sc.swash lacute.sc.swash lcaron.sc.swash lcommaaccent.sc.swash nacute.sc.swash ncaron.sc.swash ncommaaccent.sc.swash ntilde.sc.swash oacute.sc.swash ocircumflex.sc.swash odieresis.sc.swash ograve.sc.swash ohungarumlaut.sc.swash omacron.sc.swash otilde.sc.swash racute.sc.swash rcaron.sc.swash rcommaaccent.sc.swash sacute.sc.swash scaron.sc.swash scedilla.sc.swash scommaaccent.sc.swash tcaron.sc.swash tcommaaccent.sc.swash uacute.sc.swash ucircumflex.sc.swash udieresis.sc.swash ugrave.sc.swash uhungarumlaut.sc.swash umacron.sc.swash uogonek.sc.swash uring.sc.swash yacute.sc.swash ydieresis.sc.swash zacute.sc.swash zcaron.sc.swash zdotaccent.sc.swash ]; # --- Alternate 'general' variations (always applicable alternative characters) @LETTERS_UC_ALT = [ A.alt - Z.alt AE.alt Lslash.alt Oslash.alt OE.alt Thorn.alt Eth.alt Aacute.alt Abreve.alt Acircumflex.alt Adieresis.alt Agrave.alt Amacron.alt Aogonek.alt Aring.alt Atilde.alt Cacute.alt Ccaron.alt Ccedilla.alt Dcaron.alt Dcroat.alt Eacute.alt Ecaron.alt Ecircumflex.alt Edieresis.alt Edotaccent.alt Egrave.alt Emacron.alt Eogonek.alt Gbreve.alt Gcommaaccent.alt Iacute.alt Icircumflex.alt Idieresis.alt Igrave.alt Imacron.alt Iogonek.alt Kcommaaccent.alt Lacute.alt Lcaron.alt Lcommaaccent.alt Nacute.alt Ncaron.alt Ncommaaccent.alt Ntilde.alt Oacute.alt Ocircumflex.alt Odieresis.alt Ograve.alt Ohungarumlaut.alt Omacron.alt Otilde.alt Racute.alt Rcaron.alt Rcommaaccent.alt Sacute.alt Scaron.alt Scedilla.alt Scommaaccent.alt Tcaron.alt Tcommaaccent.alt Uacute.alt Ucircumflex.alt Udieresis.alt Ugrave.alt Uhungarumlaut.alt Umacron.alt Uogonek.alt Uring.alt Yacute.alt Ydieresis.alt Zacute.alt Zcaron.alt Zdotaccent.alt ]; @LETTERS_LC_ALT = [ a.alt - z.alt ae.alt lslash.alt oslash.alt oe.alt thorn.alt eth.alt aacute.alt abreve.alt acircumflex.alt adieresis.alt agrave.alt amacron.alt aogonek.alt aring.alt atilde.alt cacute.alt ccaron.alt ccedilla.alt dcaron.alt dcroat.alt eacute.alt ecaron.alt ecircumflex.alt edieresis.alt edotaccent.alt egrave.alt emacron.alt eogonek.alt gbreve.alt gcommaaccent.alt iacute.alt icircumflex.alt idieresis.alt igrave.alt imacron.alt iogonek.alt kcommaaccent.alt lacute.alt lcaron.alt lcommaaccent.alt nacute.alt ncaron.alt ncommaaccent.alt ntilde.alt oacute.alt ocircumflex.alt odieresis.alt ograve.alt ohungarumlaut.alt omacron.alt otilde.alt racute.alt rcaron.alt rcommaaccent.alt sacute.alt scaron.alt scedilla.alt scommaaccent.alt tcaron.alt tcommaaccent.alt uacute.alt ucircumflex.alt udieresis.alt ugrave.alt uhungarumlaut.alt umacron.alt uogonek.alt uring.alt yacute.alt ydieresis.alt zacute.alt zcaron.alt zdotaccent.alt ]; @LETTERS_SC_ALT = [ a.sc.alt - z.sc.alt ae.sc.alt lslash.sc.alt oslash.sc.alt oe.sc.alt thorn.sc.alt eth.sc.alt aacute.sc.alt abreve.sc.alt acircumflex.sc.alt adieresis.sc.alt agrave.sc.alt amacron.sc.alt aogonek.sc.alt aring.sc.alt atilde.sc.alt cacute.sc.alt ccaron.sc.alt ccedilla.sc.alt dcaron.sc.alt dcroat.sc.alt eacute.sc.alt ecaron.sc.alt ecircumflex.sc.alt edieresis.sc.alt edotaccent.sc.alt egrave.sc.alt emacron.sc.alt eogonek.sc.alt gbreve.sc.alt gcommaaccent.sc.alt iacute.sc.alt icircumflex.sc.alt idieresis.sc.alt igrave.sc.alt imacron.sc.alt iogonek.sc.alt kcommaaccent.sc.alt lacute.sc.alt lcaron.sc.alt lcommaaccent.sc.alt nacute.sc.alt ncaron.sc.alt ncommaaccent.sc.alt ntilde.sc.alt oacute.sc.alt ocircumflex.sc.alt odieresis.sc.alt ograve.sc.alt ohungarumlaut.sc.alt omacron.sc.alt otilde.sc.alt racute.sc.alt rcaron.sc.alt rcommaaccent.sc.alt sacute.sc.alt scaron.sc.alt scedilla.sc.alt scommaaccent.sc.alt tcaron.sc.alt tcommaaccent.sc.alt uacute.sc.alt ucircumflex.sc.alt udieresis.sc.alt ugrave.sc.alt uhungarumlaut.sc.alt umacron.sc.alt uogonek.sc.alt uring.sc.alt yacute.sc.alt ydieresis.sc.alt zacute.sc.alt zcaron.sc.alt zdotaccent.sc.alt ]; # --- Alternate variations for the beginning-of-word boundery @LETTERS_UC_BEGINNING = [ A - Z AE Lslash Oslash OE Thorn Eth Aacute Abreve Acircumflex Adieresis Agrave Amacron Aogonek Aring Atilde Cacute Ccaron Ccedilla Dcaron Dcroat Eacute Ecaron Ecircumflex Edieresis Edotaccent Egrave Emacron Eogonek Gbreve Gcommaaccent Iacute Icircumflex Idieresis Igrave Imacron Iogonek Kcommaaccent Lacute Lcaron Lcommaaccent Nacute Ncaron Ncommaaccent Ntilde Oacute Ocircumflex Odieresis Ograve Ohungarumlaut Omacron Otilde Racute Rcaron Rcommaaccent Sacute Scaron Scedilla Scommaaccent Tcaron Tcommaaccent Uacute Ucircumflex Udieresis Ugrave Uhungarumlaut Umacron Uogonek Uring Yacute Ydieresis Zacute Zcaron Zdotaccent ]; @LETTERS_LC_BEGINNING = [ a - z ae lslash oslash oe thorn eth aacute abreve acircumflex adieresis agrave amacron aogonek aring atilde cacute ccaron ccedilla dcaron dcroat eacute ecaron ecircumflex edieresis edotaccent egrave emacron eogonek gbreve gcommaaccent iacute icircumflex idieresis igrave imacron iogonek kcommaaccent lacute lcaron lcommaaccent nacute ncaron ncommaaccent ntilde oacute ocircumflex odieresis ograve ohungarumlaut omacron otilde racute rcaron rcommaaccent sacute scaron scedilla scommaaccent tcaron tcommaaccent uacute ucircumflex udieresis ugrave uhungarumlaut umacron uogonek uring yacute ydieresis zacute zcaron zdotaccent ]; @LETTERS_SC_BEGINNING = [ a.sc - z.sc ae.sc lslash.sc oslash.sc oe.sc thorn.sc eth.sc aacute.sc abreve.sc acircumflex.sc adieresis.sc agrave.sc amacron.sc aogonek.sc aring.sc atilde.sc cacute.sc ccaron.sc ccedilla.sc dcaron.sc dcroat.sc eacute.sc ecaron.sc ecircumflex.sc edieresis.sc edotaccent.sc egrave.sc emacron.sc eogonek.sc gbreve.sc gcommaaccent.sc iacute.sc icircumflex.sc idieresis.sc igrave.sc imacron.sc iogonek.sc kcommaaccent.sc lacute.sc lcaron.sc lcommaaccent.sc nacute.sc ncaron.sc ncommaaccent.sc ntilde.sc oacute.sc ocircumflex.sc odieresis.sc ograve.sc ohungarumlaut.sc omacron.sc otilde.sc racute.sc rcaron.sc rcommaaccent.sc sacute.sc scaron.sc scedilla.sc scommaaccent.sc tcaron.sc tcommaaccent.sc uacute.sc ucircumflex.sc udieresis.sc ugrave.sc uhungarumlaut.sc umacron.sc uogonek.sc uring.sc yacute.sc ydieresis.sc zacute.sc zcaron.sc zdotaccent.sc ]; @LETTERS_UC_START = [ A.start - Z.start AE.start Lslash.start Oslash.start OE.start Thorn.start Eth.start Aacute.start Abreve.start Acircumflex.start Adieresis.start Agrave.start Amacron.start Aogonek.start Aring.start Atilde.start Cacute.start Ccaron.start Ccedilla.start Dcaron.start Dcroat.start Eacute.start Ecaron.start Ecircumflex.start Edieresis.start Edotaccent.start Egrave.start Emacron.start Eogonek.start Gbreve.start Gcommaaccent.start Iacute.start Icircumflex.start Idieresis.start Igrave.start Imacron.start Iogonek.start Kcommaaccent.start Lacute.start Lcaron.start Lcommaaccent.start Nacute.start Ncaron.start Ncommaaccent.start Ntilde.start Oacute.start Ocircumflex.start Odieresis.start Ograve.start Ohungarumlaut.start Omacron.start Otilde.start Racute.start Rcaron.start Rcommaaccent.start Sacute.start Scaron.start Scedilla.start Scommaaccent.start Tcaron.start Tcommaaccent.start Uacute.start Ucircumflex.start Udieresis.start Ugrave.start Uhungarumlaut.start Umacron.start Uogonek.start Uring.start Yacute.start Ydieresis.start Zacute.start Zcaron.start Zdotaccent.start ]; @LETTERS_LC_START = [ a.start - z.start ae.start lslash.start oslash.start oe.start thorn.start eth.start aacute.start abreve.start acircumflex.start adieresis.start agrave.start amacron.start aogonek.start aring.start atilde.start cacute.start ccaron.start ccedilla.start dcaron.start dcroat.start eacute.start ecaron.start ecircumflex.start edieresis.start edotaccent.start egrave.start emacron.start eogonek.start gbreve.start gcommaaccent.start iacute.start icircumflex.start idieresis.start igrave.start imacron.start iogonek.start kcommaaccent.start lacute.start lcaron.start lcommaaccent.start nacute.start ncaron.start ncommaaccent.start ntilde.start oacute.start ocircumflex.start odieresis.start ograve.start ohungarumlaut.start omacron.start otilde.start racute.start rcaron.start rcommaaccent.start sacute.start scaron.start scedilla.start scommaaccent.start tcaron.start tcommaaccent.start uacute.start ucircumflex.start udieresis.start ugrave.start uhungarumlaut.start umacron.start uogonek.start uring.start yacute.start ydieresis.start zacute.start zcaron.start zdotaccent.start ]; @LETTERS_SC_START = [ a.sc.start - z.sc.start ae.sc.start lslash.sc.start oslash.sc.start oe.sc.start thorn.sc.start eth.sc.start aacute.sc.start abreve.sc.start acircumflex.sc.start adieresis.sc.start agrave.sc.start amacron.sc.start aogonek.sc.start aring.sc.start atilde.sc.start cacute.sc.start ccaron.sc.start ccedilla.sc.start dcaron.sc.start dcroat.sc.start eacute.sc.start ecaron.sc.start ecircumflex.sc.start edieresis.sc.start edotaccent.sc.start egrave.sc.start emacron.sc.start eogonek.sc.start gbreve.sc.start gcommaaccent.sc.start iacute.sc.start icircumflex.sc.start idieresis.sc.start igrave.sc.start imacron.sc.start iogonek.sc.start kcommaaccent.sc.start lacute.sc.start lcaron.sc.start lcommaaccent.sc.start nacute.sc.start ncaron.sc.start ncommaaccent.sc.start ntilde.sc.start oacute.sc.start ocircumflex.sc.start odieresis.sc.start ograve.sc.start ohungarumlaut.sc.start omacron.sc.start otilde.sc.start racute.sc.start rcaron.sc.start rcommaaccent.sc.start sacute.sc.start scaron.sc.start scedilla.sc.start scommaaccent.sc.start tcaron.sc.start tcommaaccent.sc.start uacute.sc.start ucircumflex.sc.start udieresis.sc.start ugrave.sc.start uhungarumlaut.sc.start umacron.sc.start uogonek.sc.start uring.sc.start yacute.sc.start ydieresis.sc.start zacute.sc.start zcaron.sc.start zdotaccent.sc.start ]; # --- Alternate variations for the ending-of-word boundery @LETTERS_UC_ENDING = [ A - Z AE Lslash Oslash OE Thorn Eth Aacute Abreve Acircumflex Adieresis Agrave Amacron Aogonek Aring Atilde Cacute Ccaron Ccedilla Dcaron Dcroat Eacute Ecaron Ecircumflex Edieresis Edotaccent Egrave Emacron Eogonek Gbreve Gcommaaccent Iacute Icircumflex Idieresis Igrave Imacron Iogonek Kcommaaccent Lacute Lcaron Lcommaaccent Nacute Ncaron Ncommaaccent Ntilde Oacute Ocircumflex Odieresis Ograve Ohungarumlaut Omacron Otilde Racute Rcaron Rcommaaccent Sacute Scaron Scedilla Scommaaccent Tcaron Tcommaaccent Uacute Ucircumflex Udieresis Ugrave Uhungarumlaut Umacron Uogonek Uring Yacute Ydieresis Zacute Zcaron Zdotaccent ]; @LETTERS_LC_ENDING = [ a - z ae lslash oslash oe thorn eth aacute abreve acircumflex adieresis agrave amacron aogonek aring atilde cacute ccaron ccedilla dcaron dcroat eacute ecaron ecircumflex edieresis edotaccent egrave emacron eogonek gbreve gcommaaccent iacute icircumflex idieresis igrave imacron iogonek kcommaaccent lacute lcaron lcommaaccent nacute ncaron ncommaaccent ntilde oacute ocircumflex odieresis ograve ohungarumlaut omacron otilde racute rcaron rcommaaccent sacute scaron scedilla scommaaccent tcaron tcommaaccent uacute ucircumflex udieresis ugrave uhungarumlaut umacron uogonek uring yacute ydieresis zacute zcaron zdotaccent ]; @LETTERS_SC_ENDING = [ a.sc - z.sc ae.sc lslash.sc oslash.sc oe.sc thorn.sc eth.sc aacute.sc abreve.sc acircumflex.sc adieresis.sc agrave.sc amacron.sc aogonek.sc aring.sc atilde.sc cacute.sc ccaron.sc ccedilla.sc dcaron.sc dcroat.sc eacute.sc ecaron.sc ecircumflex.sc edieresis.sc edotaccent.sc egrave.sc emacron.sc eogonek.sc gbreve.sc gcommaaccent.sc iacute.sc icircumflex.sc idieresis.sc igrave.sc imacron.sc iogonek.sc kcommaaccent.sc lacute.sc lcaron.sc lcommaaccent.sc nacute.sc ncaron.sc ncommaaccent.sc ntilde.sc oacute.sc ocircumflex.sc odieresis.sc ograve.sc ohungarumlaut.sc omacron.sc otilde.sc racute.sc rcaron.sc rcommaaccent.sc sacute.sc scaron.sc scedilla.sc scommaaccent.sc tcaron.sc tcommaaccent.sc uacute.sc ucircumflex.sc udieresis.sc ugrave.sc uhungarumlaut.sc umacron.sc uogonek.sc uring.sc yacute.sc ydieresis.sc zacute.sc zcaron.sc zdotaccent.sc ]; @LETTERS_UC_END = [ A.end - Z.end AE.end Lslash.end Oslash.end OE.end Thorn.end Eth.end Aacute.end Abreve.end Acircumflex.end Adieresis.end Agrave.end Amacron.end Aogonek.end Aring.end Atilde.end Cacute.end Ccaron.end Ccedilla.end Dcaron.end Dcroat.end Eacute.end Ecaron.end Ecircumflex.end Edieresis.end Edotaccent.end Egrave.end Emacron.end Eogonek.end Gbreve.end Gcommaaccent.end Iacute.end Icircumflex.end Idieresis.end Igrave.end Imacron.end Iogonek.end Kcommaaccent.end Lacute.end Lcaron.end Lcommaaccent.end Nacute.end Ncaron.end Ncommaaccent.end Ntilde.end Oacute.end Ocircumflex.end Odieresis.end Ograve.end Ohungarumlaut.end Omacron.end Otilde.end Racute.end Rcaron.end Rcommaaccent.end Sacute.end Scaron.end Scedilla.end Scommaaccent.end Tcaron.end Tcommaaccent.end Uacute.end Ucircumflex.end Udieresis.end Ugrave.end Uhungarumlaut.end Umacron.end Uogonek.end Uring.end Yacute.end Ydieresis.end Zacute.end Zcaron.end Zdotaccent.end ]; @LETTERS_LC_END = [ a.end - z.end ae.end lslash.end oslash.end oe.end thorn.end eth.end aacute.end abreve.end acircumflex.end adieresis.end agrave.end amacron.end aogonek.end aring.end atilde.end cacute.end ccaron.end ccedilla.end dcaron.end dcroat.end eacute.end ecaron.end ecircumflex.end edieresis.end edotaccent.end egrave.end emacron.end eogonek.end gbreve.end gcommaaccent.end iacute.end icircumflex.end idieresis.end igrave.end imacron.end iogonek.end kcommaaccent.end lacute.end lcaron.end lcommaaccent.end nacute.end ncaron.end ncommaaccent.end ntilde.end oacute.end ocircumflex.end odieresis.end ograve.end ohungarumlaut.end omacron.end otilde.end racute.end rcaron.end rcommaaccent.end sacute.end scaron.end scedilla.end scommaaccent.end tcaron.end tcommaaccent.end uacute.end ucircumflex.end udieresis.end ugrave.end uhungarumlaut.end umacron.end uogonek.end uring.end yacute.end ydieresis.end zacute.end zcaron.end zdotaccent.end ]; @LETTERS_SC_END = [ a.sc.end - z.sc.end ae.sc.end lslash.sc.end oslash.sc.end oe.sc.end thorn.sc.end eth.sc.end aacute.sc.end abreve.sc.end acircumflex.sc.end adieresis.sc.end agrave.sc.end amacron.sc.end aogonek.sc.end aring.sc.end atilde.sc.end cacute.sc.end ccaron.sc.end ccedilla.sc.end dcaron.sc.end dcroat.sc.end eacute.sc.end ecaron.sc.end ecircumflex.sc.end edieresis.sc.end edotaccent.sc.end egrave.sc.end emacron.sc.end eogonek.sc.end gbreve.sc.end gcommaaccent.sc.end iacute.sc.end icircumflex.sc.end idieresis.sc.end igrave.sc.end imacron.sc.end iogonek.sc.end kcommaaccent.sc.end lacute.sc.end lcaron.sc.end lcommaaccent.sc.end nacute.sc.end ncaron.sc.end ncommaaccent.sc.end ntilde.sc.end oacute.sc.end ocircumflex.sc.end odieresis.sc.end ograve.sc.end ohungarumlaut.sc.end omacron.sc.end otilde.sc.end racute.sc.end rcaron.sc.end rcommaaccent.sc.end sacute.sc.end scaron.sc.end scedilla.sc.end scommaaccent.sc.end tcaron.sc.end tcommaaccent.sc.end uacute.sc.end ucircumflex.sc.end udieresis.sc.end ugrave.sc.end uhungarumlaut.sc.end umacron.sc.end uogonek.sc.end uring.sc.end yacute.sc.end ydieresis.sc.end zacute.sc.end zcaron.sc.end zdotaccent.sc.end ]; # --- Stylistic alternates (contextual) @LETTERS_UC_ss04 = [ A.ss04 - Z.ss04 AE.ss04 Lslash.ss04 Oslash.ss04 OE.ss04 Thorn.ss04 Eth.ss04 Aacute.ss04 Abreve.ss04 Acircumflex.ss04 Adieresis.ss04 Agrave.ss04 Amacron.ss04 Aogonek.ss04 Aring.ss04 Atilde.ss04 Cacute.ss04 Ccaron.ss04 Ccedilla.ss04 Dcaron.ss04 Dcroat.ss04 Eacute.ss04 Ecaron.ss04 Ecircumflex.ss04 Edieresis.ss04 Edotaccent.ss04 Egrave.ss04 Emacron.ss04 Eogonek.ss04 Gbreve.ss04 Gcommaaccent.ss04 Iacute.ss04 Icircumflex.ss04 Idieresis.ss04 Igrave.ss04 Imacron.ss04 Iogonek.ss04 Kcommaaccent.ss04 Lacute.ss04 Lcaron.ss04 Lcommaaccent.ss04 Nacute.ss04 Ncaron.ss04 Ncommaaccent.ss04 Ntilde.ss04 Oacute.ss04 Ocircumflex.ss04 Odieresis.ss04 Ograve.ss04 Ohungarumlaut.ss04 Omacron.ss04 Otilde.ss04 Racute.ss04 Rcaron.ss04 Rcommaaccent.ss04 Sacute.ss04 Scaron.ss04 Scedilla.ss04 Scommaaccent.ss04 Tcaron.ss04 Tcommaaccent.ss04 Uacute.ss04 Ucircumflex.ss04 Udieresis.ss04 Ugrave.ss04 Uhungarumlaut.ss04 Umacron.ss04 Uogonek.ss04 Uring.ss04 Yacute.ss04 Ydieresis.ss04 Zacute.ss04 Zcaron.ss04 Zdotaccent.ss04 ]; @LETTERS_LC_ss04 = [ a.ss04 - z.ss04 ae.ss04 lslash.ss04 oslash.ss04 oe.ss04 thorn.ss04 eth.ss04 aacute.ss04 abreve.ss04 acircumflex.ss04 adieresis.ss04 agrave.ss04 amacron.ss04 aogonek.ss04 aring.ss04 atilde.ss04 cacute.ss04 ccaron.ss04 ccedilla.ss04 dcaron.ss04 dcroat.ss04 eacute.ss04 ecaron.ss04 ecircumflex.ss04 edieresis.ss04 edotaccent.ss04 egrave.ss04 emacron.ss04 eogonek.ss04 gbreve.ss04 gcommaaccent.ss04 iacute.ss04 icircumflex.ss04 idieresis.ss04 igrave.ss04 imacron.ss04 iogonek.ss04 kcommaaccent.ss04 lacute.ss04 lcaron.ss04 lcommaaccent.ss04 nacute.ss04 ncaron.ss04 ncommaaccent.ss04 ntilde.ss04 oacute.ss04 ocircumflex.ss04 odieresis.ss04 ograve.ss04 ohungarumlaut.ss04 omacron.ss04 otilde.ss04 racute.ss04 rcaron.ss04 rcommaaccent.ss04 sacute.ss04 scaron.ss04 scedilla.ss04 scommaaccent.ss04 tcaron.ss04 tcommaaccent.ss04 uacute.ss04 ucircumflex.ss04 udieresis.ss04 ugrave.ss04 uhungarumlaut.ss04 umacron.ss04 uogonek.ss04 uring.ss04 yacute.ss04 ydieresis.ss04 zacute.ss04 zcaron.ss04 zdotaccent.ss04 ]; @LETTERS_SC_ss04 = [ a.sc.ss04 - z.sc.ss04 ae.sc.ss04 lslash.sc.ss04 oslash.sc.ss04 oe.sc.ss04 thorn.sc.ss04 eth.sc.ss04 aacute.sc.ss04 abreve.sc.ss04 acircumflex.sc.ss04 adieresis.sc.ss04 agrave.sc.ss04 amacron.sc.ss04 aogonek.sc.ss04 aring.sc.ss04 atilde.sc.ss04 cacute.sc.ss04 ccaron.sc.ss04 ccedilla.sc.ss04 dcaron.sc.ss04 dcroat.sc.ss04 eacute.sc.ss04 ecaron.sc.ss04 ecircumflex.sc.ss04 edieresis.sc.ss04 edotaccent.sc.ss04 egrave.sc.ss04 emacron.sc.ss04 eogonek.sc.ss04 gbreve.sc.ss04 gcommaaccent.sc.ss04 iacute.sc.ss04 icircumflex.sc.ss04 idieresis.sc.ss04 igrave.sc.ss04 imacron.sc.ss04 iogonek.sc.ss04 kcommaaccent.sc.ss04 lacute.sc.ss04 lcaron.sc.ss04 lcommaaccent.sc.ss04 nacute.sc.ss04 ncaron.sc.ss04 ncommaaccent.sc.ss04 ntilde.sc.ss04 oacute.sc.ss04 ocircumflex.sc.ss04 odieresis.sc.ss04 ograve.sc.ss04 ohungarumlaut.sc.ss04 omacron.sc.ss04 otilde.sc.ss04 racute.sc.ss04 rcaron.sc.ss04 rcommaaccent.sc.ss04 sacute.sc.ss04 scaron.sc.ss04 scedilla.sc.ss04 scommaaccent.sc.ss04 tcaron.sc.ss04 tcommaaccent.sc.ss04 uacute.sc.ss04 ucircumflex.sc.ss04 udieresis.sc.ss04 ugrave.sc.ss04 uhungarumlaut.sc.ss04 umacron.sc.ss04 uogonek.sc.ss04 uring.sc.ss04 yacute.sc.ss04 ydieresis.sc.ss04 zacute.sc.ss04 zcaron.sc.ss04 zdotaccent.sc.ss04 ]; # --- Figures & numerators @FIG_TAB_LINING = [ zero one two three four five six seven eight nine ]; @FIG_TAB_OLDSTYLE = [ zero.taboldstyle one.taboldstyle two.taboldstyle three.taboldstyle four.taboldstyle five.taboldstyle six.taboldstyle seven.taboldstyle eight.taboldstyle nine.taboldstyle ]; @FIG_FIT_LINING = [ zero.fitted one.fitted two.fitted three.fitted four.fitted five.fitted six.fitted seven.fitted eight.fitted nine.fitted ]; @FIG_FIT_OLDSTYLE = [ zero.oldstyle one.oldstyle two.oldstyle three.oldstyle four.oldstyle five.oldstyle six.oldstyle seven.oldstyle eight.oldstyle nine.oldstyle ]; @FIG_FIT_SC = [ zero.sc one.sc two.sc three.sc four.sc five.sc six.sc seven.sc eight.sc nine.sc ]; @FIGURES = [ @FIG_TAB_LINING @FIG_FIT_LINING @FIG_FIT_OLDSTYLE @FIG_TAB_OLDSTYLE ]; @FIG_TITLING = [ zero.titling one.titling two.titling three.titling four.titling five.titling six.titling seven.titling eight.titling nine.titling ]; @FIG_TAB_LINING_TITLING = [ zero.titling one.titling two.titling three.titling four.titling five.titling six.titling seven.titling eight.titling nine.titling ]; @FIG_SUPERIOR = [ zero.superior one.superior two.superior three.superior four.superior five.superior six.superior seven.superior eight.superior nine.superior ]; @FIG_INFERIOR = [ zero.inferior one.inferior two.inferior three.inferior four.inferior five.inferior six.inferior seven.inferior eight.inferior nine.inferior ]; @FIG_NUMERATOR = [ zero.numerator one.numerator two.numerator three.numerator four.numerator five.numerator six.numerator seven.numerator eight.numerator nine.numerator ]; @FIG_DENOMINATOR = [ zero.denominator one.denominator two.denominator three.denominator four.denominator five.denominator six.denominator seven.denominator eight.denominator nine.denominator ]; # --- Currency & miscellaneous @CURRENCY_LINING = [ cent dollar sterling florin yen Euro colonmonetary ]; @CURRENCY_LINING2 = [ franc lira peseta ]; @CURRENCY_LINING3 = [ cent dollar sterling florin yen ]; @CURRENCY_SC = [ cent.sc dollar.sc sterling.sc florin.sc yen.sc euro.sc colonmonetary.sc ]; @CURRENCY_TAB_OLDSTYLE = [ cent.taboldstyle dollar.taboldstyle sterling.taboldstyle florin.taboldstyle yen.taboldstyle Euro.taboldstyle colonmonetary.taboldstyle ]; @CURRENCY_TAB_OLDSTYLE2 = [ cent.taboldstyle dollar.taboldstyle sterling.taboldstyle florin.taboldstyle yen.taboldstyle ]; @CURRENCY_FIT_OLDSTYLE = [ centoldstyle dollaroldstyle ]; @CURRENCY_TITLING = [ cent.titling dollar.titling sterling.titling florin.titling yen.titling ]; @MISC_LINING = [ period comma cent dollar parenleft parenright hyphen ]; @MISC_SUPERIOR = [ period.superior comma.superior centsuperior dollarsuperior parenleft.superior parenright.superior hyphensuperior ]; @MISC_INFERIOR = [ periodinferior commainferior centinferior dollarinferior parenleftinferior parenrightinferior hypheninferior ]; @MISC_NUMERATOR = [ period.numerator comma.numerator cent.numerator dollar.numerator parenleft.numerator parenright.numerator hyphen.numerator ]; @MISC_DENOMINATOR = [ period.denominator comma.denominator cent.denominator dollar.denominator parenleft.denominator parenright.denominator hyphen.denominator ]; @ORNAMENTS = [ orn.001 orn.002 orn.003 orn.004 orn.005 orn.006 orn.007 orn.008 orn.009 orn.010 orn.011 orn.012 orn.013 orn.014 orn.015 orn.016 orn.017 orn.018 orn.019 orn.020 orn.021 orn.022 orn.023 orn.024 orn.025 orn.026 orn.027 orn.028 orn.029 orn.030 orn.031 orn.032 orn.033 orn.034 orn.035 orn.036 orn.037 orn.038 orn.039 orn.040 orn.041 orn.042 orn.043 orn.044 orn.045 orn.046 orn.047 orn.048 orn.049 orn.050 ]; #--------------------------------------- # --- FEATURE SUMMARY (description) # --- Substitution (in alphabetical order): # CRCY: replaces any currency character with any other one (proprietary; crcy removed from OT specification 1.25) # NFRC: substitutes the standard fractions by nut ones (proprietary) # aalt: access all alternates # c2sc: caps to smallcaps # case: uppercase, math and punct shift up # dlig: discretionary ligatures # dnom: replaces selected figures with denominators # dpng: dipthong subs (removed from OT specification 1.25) # frac: substitutes the existing fractions # hist: historical forms # hlig: historical ligatures # liga: standard lig replacement # lnum: changes to lining figures # numr: replaces selected figures with numerators # onum: changes to oldstyle figures # ordn: subs ordinal glyphs after numbers # ornm: allows access to ornaments # pnum: changes to proportional figures # salt: replaces glyphs with alternate variations # sinf: makes numbers inferior # smcp: lc to smallcaps # ss01; Beginning-of-word-boundary alternates # ss02; Ending-of-word-boundary alternates # ss03; identical to 'hist' feature for applications that don't support this # ss04-ss10; Reserved for font-specific (contextual) alternates # ss11; Bulgarian Cyrillic alternates # ss12-ss20; To be defined # sups: makes numbers superior # titl: replaces default glyphs with .titling variations # tnum: changes to tabular figures # zero: slashed zero #--------------------------------------- # --- POSITIONING # kern: pairs in simple and class form # cpsp: wider spacing for caps in all-cap setting #--------------------------------------- # --- LANGUAGESYSTEMS languagesystem DFLT dflt; languagesystem latn dflt; languagesystem cyrl dflt; languagesystem grek dflt; languagesystem latn AZE; languagesystem latn CRT; languagesystem latn DEU; languagesystem latn MOL; languagesystem latn ROM; languagesystem latn TRK; languagesystem cyrl BGR; languagesystem cyrl SRB; #--------------------------------------- # --- SUBSTITUTION feature aalt { sub a by ordfeminine; sub o by ordmasculine; sub numbersign by numbersign.oldstyle; sub hyphen from [endash emdash hyphen.cap hyphen.superior hyphen.inferior hyphen.numerator hyphen.denominator figuredash threequartersemdash minus]; sub hyphen.cap from [endash.cap emdash.cap]; sub period from [ellipsis period.superior period.inferior period.numerator period.denominator onedotenleader twodotenleader]; sub zero.slash from [zero.fitted zero.oldstyle zero.taboldstyle zero.superior zero.inferior zero.numerator zero.denominator]; sub zero.slashfitted from [zero.fitted zero.oldstyle zero.taboldstyle zero.superior zero.inferior zero.numerator zero.denominator]; feature locl; feature c2sc; feature smcp; feature case; feature onum; feature lnum; feature pnum; feature tnum; feature CRCY; feature sups; feature sinf; feature numr; feature dnom; feature NFRC; feature hist; feature salt; feature swsh; feature titl; feature ss01; feature ss02; feature ss03; feature ss11; feature ordn; feature ornm; feature zero; } aalt; #--------------------------------------- feature locl { script latn; language ROM exclude_dflt; lookup LOCL_ROM { sub Scedilla by Scommaaccent; sub scedilla by scommaaccent; sub scedilla.sc by scommaaccent.sc; } LOCL_ROM; script latn; language MOL exclude_dflt; lookup LOCL_ROM; script cyrl; language SRB exclude_dflt; lookup LOCL_SRB { sub afii10066 by afii10066.serb; sub afii10068 by afii10068.serb; sub afii10069 by afii10069.serb; sub afii10081 by afii10081.serb; sub afii10084 by afii10084.serb; } LOCL_SRB; } locl; #--------------------------------------- feature c2sc { sub @LETTERS_UC by @LETTERS_SC; # sub @LETTERS_UC_GREEK by @LETTERS_SC_GREEK; # sub @LETTERS_UC_CYRILLIC by @LETTERS_SC_CYRILLIC; sub @PUNCT_UC by @PUNCT_LC; sub @PUNCT_DEFAULT by @PUNCT_SC; sub @FIG_TAB_LINING by @FIG_FIT_SC; sub @FIG_FIT_LINING by @FIG_FIT_SC; sub @FIG_FIT_OLDSTYLE by @FIG_FIT_SC; sub @FIG_TAB_OLDSTYLE by @FIG_FIT_SC; sub @CURRENCY_LINING by @CURRENCY_TAB_OLDSTYLE; sub @ACCENTS_UC by @ACCENTS_SC; sub [percent perthousand] by [percent.sc perthousand.sc]; sub Idotaccent by i.dotaccentsc; } c2sc; #--------------------------------------- feature smcp { script latn; language dflt; lookup SMCP_DFLT { sub i by i.sc; } SMCP_DFLT; lookup SMCP_ALL { sub @LETTERS_LC by @LETTERS_SC; # sub @LETTERS_LC_GREEK by @LETTERS_SC_GREEK; # sub @LETTERS_LC_CYRILLIC by @LETTERS_SC_CYRILLIC; sub @PUNCT_DEFAULT by @PUNCT_SC; sub @FIG_TAB_LINING by @FIG_FIT_SC; sub @FIG_FIT_LINING by @FIG_FIT_SC; sub @FIG_FIT_OLDSTYLE by @FIG_FIT_SC; sub @FIG_TAB_OLDSTYLE by @FIG_FIT_SC; sub @CURRENCY_LINING by @CURRENCY_SC; sub @ACCENTS_LC by @ACCENTS_SC; sub dotlessi by dotlessi.sc; sub [percent perthousand] by [percent.sc perthousand.sc]; sub germandbls by germandbls.sc; sub commaaccent by commaaccent.sc; sub [ampersand exclam question exclamdown questiondown] by [ampersand.sc exclam.sc question.sc exclamdown.sc questiondown.sc]; sub acaron by uni01cd.sc; sub numbersign by numbersign.sc; sub numbersign.fitted by numbersign.sc; sub percent by percent.sc; sub perthousand by perthousand.sc; sub estimated by estimated.sc; } SMCP_ALL; language DEU include_dflt; language MOL include_dflt; language ROM include_dflt; language SRB include_dflt; language AZE exclude_dflt; lookup SMCP_TURK { sub i by i.dotaccentsc; } SMCP_TURK; lookup SMCP_ALL; language CRT exclude_dflt; lookup SMCP_TURK; lookup SMCP_ALL; language TRK exclude_dflt; lookup SMCP_TURK; lookup SMCP_ALL; script cyrl; language dflt; lookup SMCP_DFLT; lookup SMCP_ALL; script grek; language dflt; lookup SMCP_DFLT; lookup SMCP_ALL; } smcp; #--------------------------------------- feature case { sub @FIG_TAB_OLDSTYLE by @FIG_TAB_LINING; sub @FIG_FIT_OLDSTYLE by @FIG_TAB_LINING; sub @FIG_FIT_SC by @FIG_TAB_LINING; sub @CURRENCY_TAB_OLDSTYLE by @CURRENCY_LINING; sub @CURRENCY_FIT_OLDSTYLE by [cent dollar]; sub @CURRENCY_SC by @CURRENCY_LINING; sub @ACCENTS_LC by @ACCENTS_UC; sub @PUNCT_LC by @PUNCT_UC; sub [numbersign.sc percent.sc perthousand.sc] by [numbersign percent perthousand]; } case; #--------------------------------------- feature onum { sub @FIG_TAB_LINING by @FIG_FIT_OLDSTYLE; sub @FIG_FIT_LINING by @FIG_FIT_OLDSTYLE; sub @CURRENCY_LINING by @CURRENCY_TAB_OLDSTYLE; sub [numbersign percent perthousand] by [numbersign.taboldstyle percent.oldstyle perthousand.oldstyle]; } onum; #--------------------------------------- feature lnum { sub @FIG_TAB_OLDSTYLE by @FIG_TAB_LINING; sub @FIG_FIT_OLDSTYLE by @FIG_TAB_LINING; sub @CURRENCY_TAB_OLDSTYLE by @CURRENCY_LINING; sub @CURRENCY_FIT_OLDSTYLE by [cent dollar]; sub [numbersign.taboldstyle percent.oldstyle perthousand.oldstyle] by [numbersign percent perthousand]; } lnum; #--------------------------------------- feature pnum { sub @FIG_TAB_LINING by @FIG_FIT_LINING; sub @FIG_TAB_OLDSTYLE by @FIG_FIT_OLDSTYLE; sub [cent.taboldstyle dollar.taboldstyle] by @CURRENCY_FIT_OLDSTYLE; } pnum; #--------------------------------------- feature tnum { sub @FIG_FIT_LINING by @FIG_TAB_LINING; sub @FIG_FIT_OLDSTYLE by @FIG_TAB_OLDSTYLE; sub @CURRENCY_FIT_OLDSTYLE by [cent.taboldstyle dollar.taboldstyle]; } tnum; #--------------------------------------- feature CRCY { sub Euro from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub Euro.taboldstyle from [@CURRENCY_TAB_OLDSTYLE]; sub cent from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub cent.taboldstyle from [@CURRENCY_TAB_OLDSTYLE]; sub cent.titling from @CURRENCY_TITLING; sub centoldstyle from [@CURRENCY_FIT_OLDSTYLE]; sub colonmonetary from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub colonmonetary.taboldstyle from [@CURRENCY_TAB_OLDSTYLE]; sub currency from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah]; sub dollar from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub dollar.taboldstyle from [@CURRENCY_TAB_OLDSTYLE]; sub dollar.titling from @CURRENCY_TITLING; sub dollaroldstyle from [@CURRENCY_FIT_OLDSTYLE]; sub florin from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub florin.taboldstyle from [@CURRENCY_TAB_OLDSTYLE]; sub florin.titling from @CURRENCY_TITLING; sub franc from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub lira from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub peseta from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub rupiah from [@CURRENCY_LINING @CURRENCY_LINING2 currency]; sub sterling from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub sterling.taboldstyle from [@CURRENCY_TAB_OLDSTYLE]; sub sterling.titling from @CURRENCY_TITLING; sub yen from [@CURRENCY_LINING @CURRENCY_LINING2 rupiah currency]; sub yen.taboldstyle from [@CURRENCY_TAB_OLDSTYLE]; sub yen.titling from @CURRENCY_TITLING; } CRCY; #--------------------------------------- feature sups { sub @FIG_TAB_LINING by @FIG_SUPERIOR; sub @FIG_FIT_LINING by @FIG_SUPERIOR; sub @FIG_FIT_OLDSTYLE by @FIG_SUPERIOR; sub @FIG_TAB_OLDSTYLE by @FIG_SUPERIOR; sub @FIG_FIT_SC by @FIG_SUPERIOR; sub @FIG_INFERIOR by @FIG_SUPERIOR; sub @FIG_NUMERATOR by @FIG_SUPERIOR; sub @FIG_DENOMINATOR by @FIG_SUPERIOR; sub @MISC_LINING by @MISC_SUPERIOR; sub @MISC_INFERIOR by @MISC_SUPERIOR; sub @MISC_NUMERATOR by @MISC_SUPERIOR; sub @MISC_DENOMINATOR by @MISC_SUPERIOR; sub [a b d e h i l m n o r s t] by @LETTERS_SUPERIOR; sub [centoldstyle dollaroldstyle] by [centsuperior dollarsuperior]; sub [cent.taboldstyle dollar.taboldstyle] by [centsuperior dollarsuperior]; } sups; #--------------------------------------- feature sinf { sub @FIG_TAB_LINING by @FIG_INFERIOR; sub @FIG_FIT_LINING by @FIG_INFERIOR; sub @FIG_FIT_OLDSTYLE by @FIG_INFERIOR; sub @FIG_TAB_OLDSTYLE by @FIG_INFERIOR; sub @FIG_FIT_SC by @FIG_INFERIOR; sub @FIG_SUPERIOR by @FIG_INFERIOR; sub @FIG_NUMERATOR by @FIG_INFERIOR; sub @FIG_DENOMINATOR by @FIG_INFERIOR; sub @MISC_LINING by @MISC_INFERIOR; sub @MISC_SUPERIOR by @MISC_INFERIOR; sub @MISC_NUMERATOR by @MISC_INFERIOR; sub @MISC_DENOMINATOR by @MISC_INFERIOR; sub [centoldstyle dollaroldstyle] by [centinferior dollarinferior]; sub [cent.taboldstyle dollar.taboldstyle] by [centinferior dollarinferior]; } sinf; #--------------------------------------- feature numr { sub @FIG_TAB_LINING by @FIG_NUMERATOR; sub @FIG_FIT_LINING by @FIG_NUMERATOR; sub @FIG_FIT_OLDSTYLE by @FIG_NUMERATOR; sub @FIG_TAB_OLDSTYLE by @FIG_NUMERATOR; sub @FIG_SUPERIOR by @FIG_NUMERATOR; sub @FIG_INFERIOR by @FIG_NUMERATOR; sub @FIG_DENOMINATOR by @FIG_NUMERATOR; sub @MISC_LINING by @MISC_NUMERATOR; sub @MISC_INFERIOR by @MISC_NUMERATOR; sub @MISC_SUPERIOR by @MISC_NUMERATOR; sub @MISC_DENOMINATOR by @MISC_NUMERATOR; sub slash by fraction; sub [centoldstyle dollaroldstyle] by [cent.numerator dollar.numerator]; sub [cent.taboldstyle dollar.taboldstyle] by [cent.numerator dollar.numerator]; } numr; #--------------------------------------- feature dnom { sub @FIG_TAB_LINING by @FIG_DENOMINATOR; sub @FIG_FIT_LINING by @FIG_DENOMINATOR; sub @FIG_FIT_OLDSTYLE by @FIG_DENOMINATOR; sub @FIG_TAB_OLDSTYLE by @FIG_DENOMINATOR; sub @FIG_NUMERATOR by @FIG_DENOMINATOR; sub @FIG_SUPERIOR by @FIG_DENOMINATOR; sub @FIG_INFERIOR by @FIG_DENOMINATOR; sub @MISC_LINING by @MISC_DENOMINATOR; sub @MISC_INFERIOR by @MISC_DENOMINATOR; sub @MISC_NUMERATOR by @MISC_DENOMINATOR; sub @MISC_SUPERIOR by @MISC_DENOMINATOR; sub slash by fraction; sub [centoldstyle dollaroldstyle] by [cent.denominator dollar.denominator]; sub [cent.taboldstyle dollar.taboldstyle] by [cent.denominator dollar.denominator]; } dnom; #--------------------------------------- # Very 'flat' substitution of fractions, which doesn't change the figure style. # Can be left on by user. # Disadvantage: only pre-composed fractions can be use. feature frac { @FRACTION = [ fraction slash ]; lookup fractions_percent { sub zero @FRACTION zero by percent; sub zero.fitted @FRACTION zero.fitted by percent; sub zero.oldstyle @FRACTION zero.oldstyle by percent; sub zero.taboldstyle @FRACTION zero.taboldstyle by percent; sub zero.sc @FRACTION zero.sc by percent; sub zero.superior @FRACTION zero.superior by percent; sub zero.inferior @FRACTION zero.inferior by percent; sub zero.numerator @FRACTION zero.numerator by percent; sub zero.denominator @FRACTION zero.denominator by percent; } fractions_percent; lookup fractions_perthousand { sub percent zero by perthousand; sub percent zero.fitted by perthousand; sub percent zero.oldstyle by perthousand; sub percent zero.taboldstyle by perthousand; sub percent zero.sc by perthousand; sub percent zero.superior by perthousand; sub percent zero.inferior by perthousand; sub percent zero.numerator by perthousand; sub percent zero.denominator by perthousand; } fractions_perthousand; lookup fractions_oneone { sub one @FRACTION one by oneone; sub one.fitted @FRACTION one.fitted by oneone; sub one.oldstyle @FRACTION oneeoldstyle by oneone; sub one.taboldstyle @FRACTION one.taboldstyle by oneone; sub one.sc @FRACTION one.sc by oneone; sub one.superior @FRACTION one.superior by oneone; sub one.inferior @FRACTION one.inferior by oneone; sub one.numerator @FRACTION one.numerator by oneone; sub one.denominator @FRACTION one.denominator by oneone; } fractions_oneone; lookup fractions_onehalf { sub one @FRACTION two by onehalf; sub one.fitted @FRACTION two.fitted by onehalf; sub one.oldstyle @FRACTION two.oldstyle by onehalf; sub one.taboldstyle @FRACTION two.taboldstyle by onehalf; sub one.sc @FRACTION two.sc by onehalf; sub one.superior @FRACTION two.superior by onehalf; sub one.inferior @FRACTION two.inferior by onehalf; sub one.numerator @FRACTION two.numerator by onehalf; sub one.denominator @FRACTION two.denominator by onehalf; } fractions_onehalf; lookup fractions_onethird { sub one @FRACTION three by onethird; sub one.fitted @FRACTION three.fitted by onethird; sub one.oldstyle @FRACTION three.oldstyle by onethird; sub one.taboldstyle @FRACTION three.taboldstyle by onethird; sub one.sc @FRACTION three.sc by onethird; sub one.superior @FRACTION three.superior by onethird; sub one.inferior @FRACTION three.inferior by onethird; sub one.numerator @FRACTION three.numerator by onethird; sub one.denominator @FRACTION three.denominator by onethird; } fractions_onethird; lookup fractions_onequarter { sub one @FRACTION four by onequarter; sub one.fitted @FRACTION four.fitted by onequarter; sub one.oldstyle @FRACTION four.oldstyle by onequarter; sub one.taboldstyle @FRACTION four.taboldstyle by onequarter; sub one.sc @FRACTION four.sc by onequarter; sub one.superior @FRACTION four.superior by onequarter; sub one.inferior @FRACTION four.inferior by onequarter; sub one.numerator @FRACTION four.numerator by onequarter; sub one.denominator @FRACTION four.denominator by onequarter; } fractions_onequarter; lookup fractions_onefifth { sub one @FRACTION five by onefifth; sub one.fitted @FRACTION five.fitted by onefifth; sub one.oldstyle @FRACTION five.oldstyle by onefifth; sub one.taboldstyle @FRACTION five.taboldstyle by onefifth; sub one.sc @FRACTION five.sc by onefifth; sub one.superior @FRACTION five.superior by onefifth; sub one.inferior @FRACTION five.inferior by onefifth; sub one.numerator @FRACTION five.numerator by onefifth; sub one.denominator @FRACTION five.denominator by onefifth; } fractions_onefifth; lookup fractions_onesixth { sub one @FRACTION six by onesixth; sub one.fitted @FRACTION six.fitted by onesixth; sub one.oldstyle @FRACTION six.oldstyle by onesixth; sub one.taboldstyle @FRACTION six.taboldstyle by onesixth; sub one.sc @FRACTION six.sc by onesixth; sub one.superior @FRACTION six.superior by onesixth; sub one.inferior @FRACTION six.inferior by onesixth; sub one.numerator @FRACTION six.numerator by onesixth; sub one.denominator @FRACTION six.denominator by onesixth; } fractions_onesixth; lookup fractions_oneeighth { sub one @FRACTION eight by oneeighth; sub one.fitted @FRACTION eight.fitted by oneeighth; sub one.oldstyle @FRACTION eight.oldstyle by oneeighth; sub one.taboldstyle @FRACTION eight.taboldstyle by oneeighth; sub one.sc @FRACTION eight.sc by oneeighth; sub one.superior @FRACTION eight.superior by oneeighth; sub one.inferior @FRACTION eight.inferior by oneeighth; sub one.numerator @FRACTION eight.numerator by oneeighth; sub one.denominator @FRACTION eight.denominator by oneeighth; } fractions_oneeighth; lookup fractions_twothirds { sub two @FRACTION three by twothirds; sub two.fitted @FRACTION three.fitted by twothirds; sub two.oldstyle @FRACTION three.oldstyle by twothirds; sub two.taboldstyle @FRACTION three.taboldstyle by twothirds; sub two.sc @FRACTION three.sc by twothirds; sub two.superior @FRACTION three.superior by twothirds; sub two.inferior @FRACTION three.inferior by twothirds; sub two.numerator @FRACTION three.numerator by twothirds; sub two.denominator @FRACTION three.denominator by twothirds; } fractions_twothirds; lookup fractions_twofifth { sub two @FRACTION five by twofifth; sub two.fitted @FRACTION five.fitted by twofifth; sub two.oldstyle @FRACTION five.oldstyle by twofifth; sub two.taboldstyle @FRACTION five.taboldstyle by twofifth; sub two.sc @FRACTION five.sc by twofifth; sub two.superior @FRACTION five.superior by twofifth; sub two.inferior @FRACTION five.inferior by twofifth; sub two.numerator @FRACTION five.numerator by twofifth; sub two.denominator @FRACTION five.denominator by twofifth; } fractions_twofifth; lookup fractions_threequarters { sub three @FRACTION four by threequarters; sub three.fitted @FRACTION four.fitted by threequarters; sub three.oldstyle @FRACTION four.oldstyle by threequarters; sub three.taboldstyle @FRACTION four.taboldstyle by threequarters; sub three.sc @FRACTION four.sc by threequarters; sub three.superior @FRACTION four.superior by threequarters; sub three.inferior @FRACTION four.inferior by threequarters; sub three.numerator @FRACTION four.numerator by threequarters; sub three.denominator @FRACTION four.denominator by threequarters; } fractions_threequarters; lookup fractions_threefifth { sub three @FRACTION five by threefifth; sub three.fitted @FRACTION five.fitted by threefifth; sub three.oldstyle @FRACTION five.oldstyle by threefifth; sub three.taboldstyle @FRACTION five.taboldstyle by threefifth; sub three.sc @FRACTION five.sc by threefifth; sub three.superior @FRACTION five.superior by threefifth; sub three.inferior @FRACTION five.inferior by threefifth; sub three.numerator @FRACTION five.numerator by threefifth; sub three.denominator @FRACTION five.denominator by threefifth; } fractions_threefifth; lookup fractions_threeeighths { sub three @FRACTION eight by threeeighths; sub three.fitted @FRACTION eight.fitted by threeeighths; sub three.oldstyle @FRACTION eight.oldstyle by threeeighths; sub three.taboldstyle @FRACTION eight.taboldstyle by threeeighths; sub three.sc @FRACTION eight.sc by threeeighths; sub three.superior @FRACTION eight.superior by threeeighths; sub three.inferior @FRACTION eight.inferior by threeeighths; sub three.numerator @FRACTION eight.numerator by threeeighths; sub three.denominator @FRACTION eight.denominator by threeeighths; } fractions_threeeighths; lookup fractions_fourfifth { sub four @FRACTION five by fourfifth; sub four.fitted @FRACTION five.fitted by fourfifth; sub four.oldstyle @FRACTION five.oldstyle by fourfifth; sub four.taboldstyle @FRACTION five.taboldstyle by fourfifth; sub four.sc @FRACTION five.sc by fourfifth; sub four.superior @FRACTION five.superior by fourfifth; sub four.inferior @FRACTION five.inferior by fourfifth; sub four.numerator @FRACTION five.numerator by fourfifth; sub four.denominator @FRACTION five.denominator by fourfifth; } fractions_fourfifth; lookup fractions_fivesixth { sub five @FRACTION six by fivesixth; sub five.fitted @FRACTION six.fitted by fivesixth; sub five.oldstyle @FRACTION six.oldstyle by fivesixth; sub five.taboldstyle @FRACTION six.taboldstyle by fivesixth; sub five.sc @FRACTION six.sc by fivesixth; sub five.superior @FRACTION six.superior by fivesixth; sub five.inferior @FRACTION six.inferior by fivesixth; sub five.numerator @FRACTION six.numerator by fivesixth; sub five.denominator @FRACTION six.denominator by fivesixth; } fractions_fivesixth; lookup fractions_fiveeighths { sub five @FRACTION eight by fiveeighths; sub five.fitted @FRACTION eight.fitted by fiveeighths; sub five.oldstyle @FRACTION eight.oldstyle by fiveeighths; sub five.taboldstyle @FRACTION eight.taboldstyle by fiveeighths; sub five.sc @FRACTION eight.sc by fiveeighths; sub five.superior @FRACTION eight.superior by fiveeighths; sub five.inferior @FRACTION eight.inferior by fiveeighths; sub five.numerator @FRACTION eight.numerator by fiveeighths; sub five.denominator @FRACTION eight.denominator by fiveeighths; } fractions_fiveeighths; lookup fractions_seveneighths { sub seven @FRACTION eight by seveneighths; sub seven.fitted @FRACTION eight.fitted by seveneighths; sub seven.oldstyle @FRACTION eight.oldstyle by seveneighths; sub seven.taboldstyle @FRACTION eight.taboldstyle by seveneighths; sub seven.sc @FRACTION eight.sc by seveneighths; sub seven.superior @FRACTION eight.superior by seveneighths; sub seven.inferior @FRACTION eight.inferior by seveneighths; sub seven.numerator @FRACTION eight.numerator by seveneighths; sub seven.denominator @FRACTION eight.denominator by seveneighths; } fractions_seveneighths; } frac; #--------------------------------------- feature NFRC { sub oneone by oneone.nut; sub onehalf by onehalf.nut; sub onethird by onethird.nut; sub twothirds by twothirds.nut; sub onequarter by onequarter.nut; sub threequarters by threequarters.nut; sub onefifth by onefifth.nut; sub twofifth by twofifth.nut; sub threefifth by threefifth.nut; sub fourfifth by fourfifth.nut; sub onesixth by onesixth.nut; sub fivesixth by fivesixth.nut; sub oneeighth by oneeighth.nut; sub threeeighths by threeeighths.nut; sub fiveeighths by fiveeighths.nut; sub seveneighths by seveneighths.nut; sub fraction by fraction.nut; } NFRC; #--------------------------------------- # feature dpng { # sub A E by AE; # sub A e by AE; # sub O E by OE; # sub O e by OE; # sub a e by ae; # sub i j by ij; # sub o e by oe; # sub a.sc e.sc by ae.sc; # sub o.sc e.sc by oe.sc; # sub A e.sc by AE; # sub O e.sc by OE; # sub A.titling E.titling by AE.titling; # sub O.titling E.titling by OE.titling; # } dpng; #--------------------------------------- feature liga { script latn; language dflt; lookup FI_LIGS { sub f f i by ffi; sub f i by fi; } FI_LIGS; lookup NOFI { sub f f b by f_f_b; sub f f f by f_f_f; sub f f h by f_f_h; sub f f j by f_f_j; sub f f k by f_f_k; sub f f l by ffl; sub f f t by f_f_t; sub f b by f_b; sub f f by ff; sub f h by f_h; sub f j by f_j; sub f k by f_k; sub f l by fl; sub f r by f_r; sub f t by f_t; sub f adieresis by f_adieresis; sub f odieresis by f_odieresis; sub f udieresis by f_udieresis; } NOFI; language SRB include_dflt; language MOL include_dflt; language ROM include_dflt; language DEU include_dflt; language AZE exclude_dflt; lookup NOFI; language CRT exclude_dflt; lookup NOFI; language TRK exclude_dflt; lookup NOFI; script cyrl; lookup FI_LIGS; lookup NOFI; script grek; lookup FI_LIGS; lookup NOFI; } liga; #--------------------------------------- feature salt { sub @LETTERS_UC by @LETTERS_UC_ALT; sub @LETTERS_LC by @LETTERS_LC_ALT; sub @LETTERS_SC by @LETTERS_SC_ALT; } salt; #--------------------------------------- # Uses s.long to preserve the Unicode code point for the s. # This feature is only supported by applications that support the Mac OS X native text engines. # Also supported by TEXWorks/XeTex. # For other applications the stylistic set ss03 can be used. feature hist { sub s by s.long; sub s.long' f by s; sub s.long s.long' by s; sub f s.long' by s; ignore sub s.long' @LETTERS_LC; sub s.long' by s; } hist; #--------------------------------------- feature swsh { sub @LETTERS_UC by @LETTERS_UC_SWASH; sub @LETTERS_LC by @LETTERS_LC_SWASH; sub @LETTERS_SC by @LETTERS_SC_SWASH; } swsh; #--------------------------------------- feature titl { sub @LETTERS_UC by @LETTERS_UC_TITLING; sub @ACCENTS_UC by @ACCENTS_UC_TITLING; sub @PUNCT_UC by @PUNCT_UC_TITLING; sub @FIG_TAB_LINING by @FIG_TAB_LINING_TITLING; } titl; #--------------------------------------- #feature ss01 { # ignore substitute @LETTERS_UC @LETTERS_UC_BEGINNING'; # substitute @LETTERS_UC_BEGINNING' by @LETTERS_UC_START; # ignore substitute @LETTERS_LC @LETTERS_LC_BEGINNING'; # substitute @LETTERS_LC_BEGINNING' by @LETTERS_LC_START; # ignore substitute @LETTERS_SC @LETTERS_SC_BEGINNING'; # substitute @LETTERS_SC_BEGINNING' by @LETTERS_SC_START; #} ss01; #--------------------------------------- #feature ss02 { # ignore substitute @LETTERS_UC @LETTERS_UC_ENDING'; # substitute @LETTERS_UC_ENDING' by @LETTERS_UC_END; # ignore substitute @LETTERS_LC @LETTERS_LC_ENDING'; # substitute @LETTERS_LC_ENDING' by @LETTERS_LC_END; # ignore substitute @LETTERS_SC @LETTERS_SC_ENDING'; # substitute @LETTERS_SC_ENDING' by @LETTERS_SC_END; #} ss02; #--------------------------------------- #feature ss03 { # sub s by s.long; # sub s.long' f by s; # sub s.long s.long' by s; # sub f s.long' by s; # ignore sub s.long' @LETTERS_LC; # sub s.long' by s; #} ss03; #--------------------------------------- # ss04-ss10; Reserved for font-specific (contextual) alternates #--------------------------------------- # reserved for Bulgarian alternates #feature ss11 { # sub afii10024 by afii10024.bul; # sub afii10028 by afii10028.bul; # sub afii10061 by afii10061.bul; # sub afii10029 by afii10029.bul; # sub afii10058 by afii10058.bul; # sub afii10027 by afii10027.bul; # sub afii10038 by afii10038.bul; # sub afii10062 by afii10062.bul; # sub afii10067 by afii10067.bul; # sub afii10068 by afii10068.bul; # sub afii10100 by afii10100.bul; # sub afii10069 by afii10069.bul; # sub afii10072 by afii10072.bul; # sub afii10076 by afii10076.bul; # sub afii10109 by afii10109.bul; # sub afii10077 by afii10077.bul; # sub afii10106 by afii10106.bul; # sub afii10079 by afii10079.bul; # sub afii10107 by afii10107.bul; # sub afii10074 by afii10074.bul; # sub afii10075 by afii10075.bul; # sub uni045D by uni045D.bul; # sub afii10081 by afii10081.bul; # sub afii10084 by afii10084.bul; # sub afii10086 by afii10086.bul; # sub afii10089 by afii10089.bul; # sub afii10193 by afii10193.bul; # sub afii10093 by afii10093.bul; # sub afii10092 by afii10092.bul; # sub afii10088 by afii10088.bul; # sub afii10090 by afii10090.bul; # sub afii10091 by afii10091.bul; # sub afii10110 by afii10110.bul; # sub afii10096 by afii10096.bul; # sub afii10073 by afii10073.bul; # sub afii10094 by afii10094.bul; # sub afii10072 by afii10072.scbul; # sub afii10076 by afii10076.scbul; # sub afii10109 by afii10109.scbul; # sub afii10077 by afii10077.scbul; # sub afii10106 by afii10106.scbul; # sub afii10075 by afii10075.scbul; # sub afii10086 by afii10086.scbul; # sub afii10110 by afii10110.scbul; #} ss11; #--------------------------------------- # ss12-ss20; To be defined #--------------------------------------- feature dlig { script latn; language dflt; lookup dlig_dflt { sub T h by T_h; sub Tcommaaccent h by Tcommaaccent_h; sub Tcaron h by Tcaron_h; sub a s by a_s; sub c h by c_h; sub c k by c_k; sub c h by c_h; sub c t by c_t; sub e s by e_s; sub g g by g_g; sub g y by g_y; sub i s by i_s; sub s h by s_h; sub s k by s_k; sub s l by s_l; sub s p by s_p; sub s t by s_t; sub t h by t_h; sub t t by t_t; sub u s by u_s; } dlig_dflt; language AZE include_dflt; language CRT include_dflt; language MOL include_dflt; language ROM include_dflt; language SRB include_dflt; language TRK include_dflt; language DEU include_dflt; script cyrl; lookup dlig_dflt; script grek; lookup dlig_dflt; } dlig; #--------------------------------------- # functions together with 'hist' feature feature hlig { sub s.long f i by s.long_f_i; sub s.long f j by s.long_f_j; sub s.long f l by s.long_f_l; sub s.long s.long by s.long_s.long; sub s.long s.long i by s.long_s.long_i; sub s.long s.long l by s.long_s.long_l; sub s.long b by s.long_b; sub s.long f by s.long_f; sub s.long h by s.long_h; sub s.long i by s.long_i; sub s.long j by s.long_j; sub s.long k by s.long_k; sub s.long l by s.long_l; sub s.long t by s.long_t; sub s.long adieresis by s.long_adieresis; sub s.long odieresis by s.long_odieresis; sub s.long udieresis by s.long_udieresis; } hlig; #--------------------------------------- feature ordn { sub @FIGURES a' by ordfeminine; sub @FIGURES o' by ordmasculine; sub @FIGURES period a' by ordfeminine; sub @FIGURES period o' by ordmasculine; sub @FIG_TITLING period.titling a' by ordfeminine.titling; sub @FIG_TITLING period.titling o' by ordmasculine.titling; } ordn; #--------------------------------------- feature ornm { sub bullet from @ORNAMENTS; } ornm; #--------------------------------------- feature zero { sub zero by zero.slash; sub zero.fitted by zero.slash; } zero; #--------------------------------------- # Enabling the following options will have as a result that the information is taken # from the UFM, PAR and kern files. When disabled, the naming and kerning information will # be taken from this features file. # The CFF table info is always taken from the UFM file's CFF table info, because CFF is just # a compressed copy of the intermediate Type1 font temporarily created with the # URW++ Type1 tool, which 'knows' nothing about features files. # As long as one doesn't specify a features file with it's own name table block, CFF # names and names from "featname.txt" are compatible anyway because they are based # on the same data source, i.e., UFM and PAR. # The default features file contains no real data but simply includes a set of 4 # other temporarily created feature files "featkern.txt", "feathead.txt", # "featname.txt", and "featos2.txt". # 'featkern.txt' contains a 'kern' feature block with kerning data based on the # file selected as "Data Source for Kerning" in the 'Advanced ...' UFM dialog. KPX # pairs from AFM or TFM will be converted to feature positioning ('pos') statements. # 'feathead.txt', 'featname.txt', and 'featos2.txt' contain table blocks for the # 'head', 'name' and 'OS/2' table, with all entries based on the UFM and PAR # files, i.e., anything to be viewed and edited in the "Advanced ..." dialog. # Name IDs from "featname.txt" are in the range of 1-6 (the standard range). # The original Adobe HOT tool would not take these names from a features file. # The modified URW++ HOT tool will take any ID but you will get a warning that # the respective name may not be compatible with some names in the 'CFF' table. # Note: for use with OTM, the following statements should be all disabled. # --- POSITIONING include (featkern.txt); # --- TABLE DATA include (featos2.txt); include (feathead.txt); include (featname.txt); #--------------------------------------- # --- End of file