mirror of
https://github.com/intel/intel-one-mono.git
synced 2026-03-11 09:04:30 +00:00
368 lines
14 KiB
Text
368 lines
14 KiB
Text
# ----------------------------
|
|
# INTEL ONE MONO OPENTYPE CODE
|
|
# ----------------------------
|
|
|
|
# ----------------
|
|
# Language Systems
|
|
# ----------------
|
|
|
|
languagesystem DFLT dflt;
|
|
languagesystem latn dflt;
|
|
languagesystem latn TRK;
|
|
languagesystem latn AZE;
|
|
languagesystem latn CRT;
|
|
languagesystem latn CAT;
|
|
|
|
|
|
# -------
|
|
# Classes
|
|
# -------
|
|
|
|
# Base Letters
|
|
@ltrUC = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z uni1E9E AE OE Schwa Eng Thorn Eth Dcroat Hbar Tbar Lslash Oslash Aring Ohorn Uhorn I];
|
|
@ltrLC = [a b c d e f g h i j k l m n o p q r s t u v w x y z germandbls ae oe schwa eng thorn eth dcroat hbar tbar lslash oslash aring ohorn uhorn dotlessi];
|
|
|
|
# Figures
|
|
@fig = [zero one two three four five six seven eight nine];
|
|
@figSup = [zero.sup one.sup two.sup three.sup four.sup five.sup six.sup seven.sup eight.sup nine.sup];
|
|
@figInf = [zero.inf one.inf two.inf three.inf four.inf five.inf six.inf seven.inf eight.inf nine.inf];
|
|
@figNum = [zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num];
|
|
@figDen = [zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den];
|
|
|
|
# Marks Above
|
|
@lcMarks = [acutecmb gravecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
|
@ucMarks = [acutecmb.cap gravecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
|
|
|
# Marks Below
|
|
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
|
|
|
|
|
# ---------------
|
|
# Localized Forms
|
|
# ---------------
|
|
|
|
feature locl {
|
|
script latn;
|
|
language TRK;
|
|
lookup iTurkish {
|
|
sub i by idotaccent;
|
|
} iTurkish;
|
|
language AZE;
|
|
lookup iTurkish;
|
|
language CRT;
|
|
lookup iTurkish;
|
|
language CAT;
|
|
sub l periodcentered' l by middotcat;
|
|
sub L periodcentered' L by middotcat.cap;
|
|
# try fusing them
|
|
sub L middotcat.cap by L.dot;
|
|
sub L middotcat by L.dot;
|
|
sub l middotcat by l.dot;
|
|
} locl;
|
|
|
|
|
|
# ---------------------------------
|
|
# Glyph Composition / Decomposition
|
|
# ---------------------------------
|
|
|
|
feature ccmp {
|
|
|
|
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
|
lookup Decomp {
|
|
sub hlinebelow by h macronlowmod;
|
|
sub jcaron by j caron;
|
|
} Decomp;
|
|
|
|
# Replace double above accents by combined drawings.
|
|
lookup DblMarks {
|
|
sub dieresiscmb acutecmb by dieresisacute;
|
|
sub dieresiscmb gravecmb by dieresisgrave;
|
|
sub dieresiscmb caroncmb by dieresiscaron;
|
|
sub dieresiscmb macroncmb by dieresismacron;
|
|
sub brevecmb acutecmb by breveacute;
|
|
sub brevecmb gravecmb by brevegrave;
|
|
sub brevecmb hookcmb by brevehook;
|
|
sub brevecmb tildecmb by brevetilde;
|
|
sub circumflexcmb acutecmb by circumflexacute;
|
|
sub circumflexcmb gravecmb by circumflexgrave;
|
|
sub circumflexcmb hookcmb by circumflexhook;
|
|
sub circumflexcmb tildecmb by circumflextilde;
|
|
# capital forms
|
|
sub dieresiscmb.cap acutecmb.cap by dieresisacute.cap;
|
|
sub dieresiscmb.cap gravecmb.cap by dieresisgrave.cap;
|
|
sub dieresiscmb.cap caroncmb.cap by dieresiscaron.cap;
|
|
sub dieresiscmb.cap macroncmb.cap by dieresismacron.cap;
|
|
sub brevecmb.cap acutecmb.cap by breveacute.cap;
|
|
sub brevecmb.cap gravecmb.cap by brevegrave.cap;
|
|
sub brevecmb.cap hookcmb.cap by brevehook.cap;
|
|
sub brevecmb.cap tildecmb.cap by brevetilde.cap;
|
|
sub circumflexcmb.cap acutecmb.cap by circumflexacute.cap;
|
|
sub circumflexcmb.cap gravecmb.cap by circumflexgrave.cap;
|
|
sub circumflexcmb.cap hookcmb.cap by circumflexhook.cap;
|
|
sub circumflexcmb.cap tildecmb.cap by circumflextilde.cap;
|
|
} DblMarks;
|
|
|
|
# Replace combining marks that follow a uppercase letter by their uppercase form
|
|
lookup CapitalMarks {
|
|
sub [@ltrUC] [@lcMarks @belowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
|
sub [@ltrUC] [@lcMarks]' by [@ucMarks];
|
|
} CapitalMarks;
|
|
|
|
# Replace letters with dotless counterparts when followed by a combining mark
|
|
lookup Dotless {
|
|
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks] by [dotlessi dotlessj];
|
|
sub [i j]' [@lcMarks] by [dotlessi dotlessj];
|
|
} Dotless;
|
|
|
|
# Replace e ogonek with pre-drawn eogonek
|
|
lookup eogonek {
|
|
sub e ogonekcmb by eogonek;
|
|
} eogonek;
|
|
|
|
} ccmp;
|
|
|
|
|
|
# ----------
|
|
# Numerators
|
|
# ----------
|
|
|
|
feature numr {
|
|
sub @fig by @figNum;
|
|
} numr;
|
|
|
|
# ------------
|
|
# Denominators
|
|
# ------------
|
|
|
|
feature dnom {
|
|
sub @fig by @figDen;
|
|
} dnom;
|
|
|
|
# -----------
|
|
# Superscript
|
|
# -----------
|
|
|
|
feature sups {
|
|
sub @fig by @figSup;
|
|
} sups;
|
|
|
|
# ---------------------
|
|
# Subscript & Inferiors
|
|
# ---------------------
|
|
|
|
feature subs {
|
|
sub @fig by @figInf;
|
|
} subs;
|
|
|
|
feature sinf {
|
|
sub @fig by @figInf;
|
|
} sinf;
|
|
|
|
|
|
# ---------------------
|
|
# Contextual Alternates
|
|
# ---------------------
|
|
|
|
feature calt {
|
|
# shifts colon to align with math symbols when used together
|
|
|
|
sub colon' [plus equal greater less hyphen] by colon.fig;
|
|
sub [plus equal less greater hyphen] colon' by colon.fig;
|
|
|
|
sub colon' [colon colon.fig] by colon.fig;
|
|
sub colon.fig colon' by colon.fig;
|
|
|
|
} calt;
|
|
|
|
|
|
# --------------
|
|
# Stylistic Sets
|
|
# --------------
|
|
|
|
feature ss11 {
|
|
featureNames {
|
|
name "Raised Colon (Figures Only)"; # Windows English
|
|
name 1 0 0 "Raised Colon (Figures Only)"; # Mac English
|
|
};
|
|
lookup FigureColonContextual {
|
|
sub @fig colon' @fig by colon.fig;
|
|
} FigureColonContextual;
|
|
} ss11;
|
|
|
|
feature ss12 {
|
|
featureNames {
|
|
name "Raised Colon (Global)"; # Windows English
|
|
name 1 0 0 "Raised Colon (Global)"; # Mac English
|
|
};
|
|
lookup FigureColon {
|
|
sub colon by colon.fig;
|
|
} FigureColon;
|
|
} ss12;
|
|
|
|
|
|
# --------------------
|
|
# Stylistic Alternates
|
|
# --------------------
|
|
|
|
feature salt {
|
|
lookup FigureColon; # SS12
|
|
} salt;
|
|
|
|
|
|
# ---------------------------------------------------------------------
|
|
# MARK | Generated: November 23, 2022 - 02:38:01 PM by 'markFeature.py'
|
|
# ---------------------------------------------------------------------
|
|
|
|
markClass [acutecmb caroncmb circumflexcmb dieresiscmb dotaccentcmb gravecmb macroncmb tildecmb] <anchor 0 502> @mark_aboveLC;
|
|
markClass [acutecmb.cap caroncmb.cap circumflexcmb.cap dieresiscmb.cap dotaccentcmb.cap gravecmb.cap macroncmb.cap tildecmb.cap] <anchor 0 691> @mark_aboveUC;
|
|
markClass [dieresisbelowcmb dotbelowcmb macronbelowcmb] <anchor 0 -35> @mark_below;
|
|
markClass [cedillacmb] <anchor 0 -10> @mark_belowcedilla;
|
|
markClass [ogonekcmb] <anchor 0 -10> @mark_belowogonek;
|
|
|
|
feature mark {
|
|
|
|
lookup aboveLC{
|
|
pos base [a] <anchor 301 507> mark @mark_aboveLC;
|
|
pos base [c] <anchor 319 507> mark @mark_aboveLC;
|
|
pos base [dotlessi] <anchor 319 502> mark @mark_aboveLC;
|
|
pos base [dotlessj] <anchor 387 502> mark @mark_aboveLC;
|
|
pos base [e] <anchor 319 507> mark @mark_aboveLC;
|
|
pos base [eogonek] <anchor 319 507> mark @mark_aboveLC;
|
|
pos base [g] <anchor 309 505> mark @mark_aboveLC;
|
|
pos base [m] <anchor 308 502> mark @mark_aboveLC;
|
|
pos base [n] <anchor 308 502> mark @mark_aboveLC;
|
|
pos base [o] <anchor 308 507> mark @mark_aboveLC;
|
|
pos base [p] <anchor 323 502> mark @mark_aboveLC;
|
|
pos base [s] <anchor 317 507> mark @mark_aboveLC;
|
|
pos base [u] <anchor 314 502> mark @mark_aboveLC;
|
|
pos base [z] <anchor 309 502> mark @mark_aboveLC;
|
|
} aboveLC;
|
|
|
|
lookup aboveUC{
|
|
pos base [A] <anchor 301 691> mark @mark_aboveUC;
|
|
pos base [C] <anchor 351 694> mark @mark_aboveUC;
|
|
pos base [E] <anchor 322 691> mark @mark_aboveUC;
|
|
pos base [Eogonek] <anchor 322 691> mark @mark_aboveUC;
|
|
pos base [G] <anchor 339 693> mark @mark_aboveUC;
|
|
pos base [I] <anchor 307 691> mark @mark_aboveUC;
|
|
pos base [J] <anchor 471 691> mark @mark_aboveUC;
|
|
pos base [M] <anchor 310 691> mark @mark_aboveUC;
|
|
pos base [N] <anchor 312 691> mark @mark_aboveUC;
|
|
pos base [O] <anchor 308 696> mark @mark_aboveUC;
|
|
pos base [P] <anchor 323 691> mark @mark_aboveUC;
|
|
pos base [S] <anchor 318 696> mark @mark_aboveUC;
|
|
pos base [U] <anchor 307 691> mark @mark_aboveUC;
|
|
pos base [Z] <anchor 313 691> mark @mark_aboveUC;
|
|
} aboveUC;
|
|
|
|
lookup below{
|
|
pos base [C] <anchor 345 -40> mark @mark_below;
|
|
pos base [Dcroat] <anchor 301 -33> mark @mark_below;
|
|
pos base [E] <anchor 322 -35> mark @mark_below;
|
|
pos base [H] <anchor 307 -35> mark @mark_below;
|
|
pos base [I] <anchor 307 -35> mark @mark_below;
|
|
pos base [O] <anchor 309 -40> mark @mark_below;
|
|
pos base [S] <anchor 300 -38> mark @mark_below;
|
|
pos base [U] <anchor 307 -40> mark @mark_below;
|
|
pos base [X] <anchor 308 -35> mark @mark_below;
|
|
pos base [Z] <anchor 313 -35> mark @mark_below;
|
|
pos base [c] <anchor 315 -37> mark @mark_below;
|
|
pos base [dcroat] <anchor 328 -32> mark @mark_below;
|
|
pos base [dotlessi] <anchor 323 -35> mark @mark_below;
|
|
pos base [e] <anchor 319 -38> mark @mark_below;
|
|
pos base [h] <anchor 315 -35> mark @mark_below;
|
|
pos base [o] <anchor 307 -40> mark @mark_below;
|
|
pos base [s] <anchor 300 -40> mark @mark_below;
|
|
pos base [u] <anchor 309 -35> mark @mark_below;
|
|
pos base [x] <anchor 305 -35> mark @mark_below;
|
|
pos base [z] <anchor 309 -35> mark @mark_below;
|
|
} below;
|
|
|
|
lookup belowcedilla{
|
|
pos base [Z] <anchor 313 -10> mark @mark_belowcedilla;
|
|
pos base [z] <anchor 309 -10> mark @mark_belowcedilla;
|
|
} belowcedilla;
|
|
|
|
lookup belowogonek{
|
|
pos base [A] <anchor 505 -10> mark @mark_belowogonek;
|
|
pos base [E] <anchor 463 -10> mark @mark_belowogonek;
|
|
pos base [I] <anchor 307 -10> mark @mark_belowogonek;
|
|
pos base [O] <anchor 318 -15> mark @mark_belowogonek;
|
|
pos base [U] <anchor 316 -15> mark @mark_belowogonek;
|
|
pos base [a] <anchor 466 -10> mark @mark_belowogonek;
|
|
pos base [dotlessi] <anchor 323 -9> mark @mark_belowogonek;
|
|
pos base [e] <anchor 400 -10> mark @mark_belowogonek;
|
|
pos base [o] <anchor 313 -15> mark @mark_belowogonek;
|
|
pos base [u] <anchor 476 -10> mark @mark_belowogonek;
|
|
} belowogonek;
|
|
|
|
} mark;
|
|
|
|
@BASES = [A C Dcroat E Eogonek G H I J M N O P S U X Z a c dcroat dotlessi dotlessj e eogonek g h m n o p s u x z];
|
|
@MARKS = [@mark_aboveLC @mark_aboveUC @mark_below @mark_belowcedilla @mark_belowogonek];
|
|
|
|
table GDEF {
|
|
GlyphClassDef @BASES,,@MARKS,;
|
|
} GDEF;
|
|
|
|
|
|
# --------------
|
|
# All Alternates
|
|
# --------------
|
|
|
|
feature aalt {
|
|
sub germandbls from [germandbls uni1E9E];
|
|
sub uni1E9E from [uni1E9E germandbls];
|
|
sub colon from [colon colon.fig];
|
|
sub colon.fig from [colon.fig colon];
|
|
sub eight from [eight eight.den eight.sup eight.num eight.inf];
|
|
sub eight.inf from [eight.inf eight eight.den eight.sup eight.num];
|
|
sub eight.num from [eight.num eight.inf eight eight.den eight.sup];
|
|
sub eight.sup from [eight.sup eight.num eight.inf eight eight.den];
|
|
sub eight.den from [eight.den eight.sup eight.num eight.inf eight];
|
|
sub five from [five five.inf five.num five.den five.sup];
|
|
sub five.sup from [five.sup five five.inf five.num five.den];
|
|
sub five.den from [five.den five.sup five five.inf five.num];
|
|
sub five.num from [five.num five.den five.sup five five.inf];
|
|
sub five.inf from [five.inf five.num five.den five.sup five];
|
|
sub four from [four four.sup four.num four.den four.inf];
|
|
sub four.inf from [four.inf four four.sup four.num four.den];
|
|
sub four.den from [four.den four.inf four four.sup four.num];
|
|
sub four.num from [four.num four.den four.inf four four.sup];
|
|
sub four.sup from [four.sup four.num four.den four.inf four];
|
|
sub nine from [nine nine.den nine.inf nine.num nine.sup];
|
|
sub nine.sup from [nine.sup nine nine.den nine.inf nine.num];
|
|
sub nine.num from [nine.num nine.sup nine nine.den nine.inf];
|
|
sub nine.inf from [nine.inf nine.num nine.sup nine nine.den];
|
|
sub nine.den from [nine.den nine.inf nine.num nine.sup nine];
|
|
sub one from [one one.den one.num one.inf one.sup];
|
|
sub one.sup from [one.sup one one.den one.num one.inf];
|
|
sub one.inf from [one.inf one.sup one one.den one.num];
|
|
sub one.num from [one.num one.inf one.sup one one.den];
|
|
sub one.den from [one.den one.num one.inf one.sup one];
|
|
sub seven from [seven seven.inf seven.num seven.sup seven.den];
|
|
sub seven.den from [seven.den seven seven.inf seven.num seven.sup];
|
|
sub seven.sup from [seven.sup seven.den seven seven.inf seven.num];
|
|
sub seven.num from [seven.num seven.sup seven.den seven seven.inf];
|
|
sub seven.inf from [seven.inf seven.num seven.sup seven.den seven];
|
|
sub six from [six six.num six.sup six.den six.inf];
|
|
sub six.inf from [six.inf six six.num six.sup six.den];
|
|
sub six.den from [six.den six.inf six six.num six.sup];
|
|
sub six.sup from [six.sup six.den six.inf six six.num];
|
|
sub six.num from [six.num six.sup six.den six.inf six];
|
|
sub three from [three three.inf three.den three.num three.sup];
|
|
sub three.sup from [three.sup three three.inf three.den three.num];
|
|
sub three.num from [three.num three.sup three three.inf three.den];
|
|
sub three.den from [three.den three.num three.sup three three.inf];
|
|
sub three.inf from [three.inf three.den three.num three.sup three];
|
|
sub two from [two two.inf two.sup two.num two.den];
|
|
sub two.den from [two.den two two.inf two.sup two.num];
|
|
sub two.num from [two.num two.den two two.inf two.sup];
|
|
sub two.sup from [two.sup two.num two.den two two.inf];
|
|
sub two.inf from [two.inf two.sup two.num two.den two];
|
|
sub zero from [zero zero.sup zero.num zero.den zero.inf];
|
|
sub zero.inf from [zero.inf zero zero.sup zero.num zero.den];
|
|
sub zero.den from [zero.den zero.inf zero zero.sup zero.num];
|
|
sub zero.num from [zero.num zero.den zero.inf zero zero.sup];
|
|
sub zero.sup from [zero.sup zero.num zero.den zero.inf zero];
|
|
} aalt;
|