mirror of
https://github.com/intel/intel-one-mono.git
synced 2026-03-11 09:04:30 +00:00
Merge pull request #49 from intel/V1.3
Update hinting and builds for release V1.3
This commit is contained in:
commit
10bd351fe1
88 changed files with 1116 additions and 643 deletions
|
|
@ -29,7 +29,7 @@ We recommend using these fonts at 7 points and larger in print, 9 pixels and lar
|
|||
|
||||
### Available OpenType Features
|
||||
Outside of the default characters, there are a few extra features that are accessible in some applications, as well as via CSS:
|
||||
- **Raised Colon:** there is an option for a raised colon, either applied contextually between numbers or activated generally. The contextual option is available via ss11 (Stylistic Set #11), or use ss12 (Stylistic Set #12) or salt (Stylistic Alternates) for the global switch.
|
||||
- **Raised Colon:** there is an option for a raised colon, either applied contextually between numbers or activated generally. The contextual option is available via ss11 (Stylistic Set #11), or use ss12 (Stylistic Set #12) or salt (Stylistic Alternates) for the global switch. Also, the colon will automatically be raised in operators, to align with math symbols.
|
||||
- **Language Support:** ccmp and locl features ensure correct display across a wide range of languages. These are usually activated by default. We recommend setting the language tag/setting in your software to the desired language for best results.
|
||||
- **Superior/superscript and inferior/subscript figures** are included via their Unicode codepoints, or you can produce them from the default figures via the sups (Superscript), subs (Subscript), and si (Scientific Inferior) features.
|
||||
- **Fraction numerals** are similarly available via the numr (Numerator) and dnom (Denominator) features. A set of premade fractions is also available in the fonts.
|
||||
|
|
|
|||
|
|
@ -1,12 +1,18 @@
|
|||
Release Notes / IntelOne Mono
|
||||
2023-05-01
|
||||
Release Notes / Intel One Mono
|
||||
2023-08-18
|
||||
|
||||
|
||||
Family name
|
||||
IntelOne Mono
|
||||
Intel One Mono
|
||||
|
||||
Version number
|
||||
1.2 (2023-05-01) - edits to OpenType features
|
||||
1.3 Updated font naming (“Intel One Mono”) - will require relinking
|
||||
Improved linking of Regular and Bold weights
|
||||
Improved alignment between hyphen, colon, and operators
|
||||
Updated art for backtick/grave
|
||||
Edited mark/ccmp features for language support
|
||||
Edits to meta info and licensing text
|
||||
|
||||
|
||||
Supported scripts
|
||||
Latin (full glyph complement supporting over 200 languages)
|
||||
|
|
@ -47,6 +53,7 @@ Available OpenType features
|
|||
salt Stylistic Alternates
|
||||
locl Localizations
|
||||
ccmp Glyph Composition/Decomposition Rules
|
||||
mark Mark Attachment
|
||||
numr Numerator
|
||||
dnom Denominator
|
||||
sups Superscript
|
||||
|
|
|
|||
BIN
fonts/otf.zip
BIN
fonts/otf.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,8 +1,8 @@
|
|||
Copyright (c) 2023 Intel Corp. with Reserved Font Name "Intel One Mono", "IntelOne Mono"
|
||||
Copyright 2023 Intel Corp. with Reserved Font Name 'Intel One Mono'
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
BIN
fonts/ttf.zip
BIN
fonts/ttf.zip
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -1,8 +1,8 @@
|
|||
Copyright (c) 2023 Intel Corp. with Reserved Font Name "Intel One Mono", "IntelOne Mono"
|
||||
Copyright 2023 Intel Corp. with Reserved Font Name 'Intel One Mono'
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
BIN
fonts/woff.zip
BIN
fonts/woff.zip
Binary file not shown.
BIN
fonts/woff/IntelOneMono-Bold.woff
Normal file
BIN
fonts/woff/IntelOneMono-Bold.woff
Normal file
Binary file not shown.
BIN
fonts/woff/IntelOneMono-BoldItalic.woff
Normal file
BIN
fonts/woff/IntelOneMono-BoldItalic.woff
Normal file
Binary file not shown.
BIN
fonts/woff/IntelOneMono-Italic.woff
Normal file
BIN
fonts/woff/IntelOneMono-Italic.woff
Normal file
Binary file not shown.
BIN
fonts/woff/IntelOneMono-Light.woff
Normal file
BIN
fonts/woff/IntelOneMono-Light.woff
Normal file
Binary file not shown.
BIN
fonts/woff/IntelOneMono-LightItalic.woff
Normal file
BIN
fonts/woff/IntelOneMono-LightItalic.woff
Normal file
Binary file not shown.
BIN
fonts/woff/IntelOneMono-Medium.woff
Normal file
BIN
fonts/woff/IntelOneMono-Medium.woff
Normal file
Binary file not shown.
BIN
fonts/woff/IntelOneMono-MediumItalic.woff
Normal file
BIN
fonts/woff/IntelOneMono-MediumItalic.woff
Normal file
Binary file not shown.
BIN
fonts/woff/IntelOneMono-Regular.woff
Normal file
BIN
fonts/woff/IntelOneMono-Regular.woff
Normal file
Binary file not shown.
|
|
@ -1,8 +1,8 @@
|
|||
Copyright (c) 2023 Intel Corp. with Reserved Font Name "Intel One Mono", "IntelOne Mono"
|
||||
Copyright 2023 Intel Corp. with Reserved Font Name 'Intel One Mono'
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
fonts/woff2.zip
BIN
fonts/woff2.zip
Binary file not shown.
BIN
fonts/woff2/IntelOneMono-Bold.woff2
Normal file
BIN
fonts/woff2/IntelOneMono-Bold.woff2
Normal file
Binary file not shown.
BIN
fonts/woff2/IntelOneMono-BoldItalic.woff2
Normal file
BIN
fonts/woff2/IntelOneMono-BoldItalic.woff2
Normal file
Binary file not shown.
BIN
fonts/woff2/IntelOneMono-Italic.woff2
Normal file
BIN
fonts/woff2/IntelOneMono-Italic.woff2
Normal file
Binary file not shown.
BIN
fonts/woff2/IntelOneMono-Light.woff2
Normal file
BIN
fonts/woff2/IntelOneMono-Light.woff2
Normal file
Binary file not shown.
BIN
fonts/woff2/IntelOneMono-LightItalic.woff2
Normal file
BIN
fonts/woff2/IntelOneMono-LightItalic.woff2
Normal file
Binary file not shown.
BIN
fonts/woff2/IntelOneMono-Medium.woff2
Normal file
BIN
fonts/woff2/IntelOneMono-Medium.woff2
Normal file
Binary file not shown.
BIN
fonts/woff2/IntelOneMono-MediumItalic.woff2
Normal file
BIN
fonts/woff2/IntelOneMono-MediumItalic.woff2
Normal file
Binary file not shown.
BIN
fonts/woff2/IntelOneMono-Regular.woff2
Normal file
BIN
fonts/woff2/IntelOneMono-Regular.woff2
Normal file
Binary file not shown.
|
|
@ -1,8 +1,8 @@
|
|||
Copyright (c) 2023 Intel Corp. with Reserved Font Name "Intel One Mono", "IntelOne Mono"
|
||||
Copyright 2023 Intel Corp. with Reserved Font Name 'Intel One Mono'
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# Replace letters with dotless counterparts when followed by a combining mark
|
||||
lookup Dotless {
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks] by [dotlessi dotlessj];
|
||||
} Dotless;
|
||||
|
||||
# Replace e ogonek with eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# Replace letters with dotless counterparts when followed by a combining mark
|
||||
lookup Dotless {
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks] by [dotlessi dotlessj];
|
||||
} Dotless;
|
||||
|
||||
# Replace e ogonek with eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
@ -176,103 +209,6 @@ feature salt {
|
|||
} salt;
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# MARK | Generated: November 23, 2022 - 02:37:46 PM by 'markFeature.py'
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
markClass [acutecmb caroncmb circumflexcmb dieresiscmb dotaccentcmb gravecmb macroncmb tildecmb] <anchor 76 502> @mark_aboveLC;
|
||||
markClass [acutecmb.cap caroncmb.cap circumflexcmb.cap dieresiscmb.cap dotaccentcmb.cap gravecmb.cap macroncmb.cap tildecmb.cap] <anchor 130 691> @mark_aboveUC;
|
||||
markClass [dieresisbelowcmb dotbelowcmb macronbelowcmb] <anchor -78 -35> @mark_below;
|
||||
markClass [cedillacmb] <anchor -71 -10> @mark_belowcedilla;
|
||||
markClass [ogonekcmb] <anchor -71 -10> @mark_belowogonek;
|
||||
|
||||
feature mark {
|
||||
|
||||
lookup aboveLC{
|
||||
pos base [a] <anchor 372 507> mark @mark_aboveLC;
|
||||
pos base [c] <anchor 389 507> mark @mark_aboveLC;
|
||||
pos base [dotlessi] <anchor 388 502> mark @mark_aboveLC;
|
||||
pos base [dotlessj] <anchor 476 502> mark @mark_aboveLC;
|
||||
pos base [e] <anchor 395 507> mark @mark_aboveLC;
|
||||
pos base [eogonek] <anchor 395 507> mark @mark_aboveLC;
|
||||
pos base [g] <anchor 400 507> mark @mark_aboveLC;
|
||||
pos base [m] <anchor 382 502> mark @mark_aboveLC;
|
||||
pos base [n] <anchor 384 502> mark @mark_aboveLC;
|
||||
pos base [o] <anchor 370 507> mark @mark_aboveLC;
|
||||
pos base [p] <anchor 394 502> mark @mark_aboveLC;
|
||||
pos base [s] <anchor 388 507> mark @mark_aboveLC;
|
||||
pos base [u] <anchor 386 502> mark @mark_aboveLC;
|
||||
pos base [z] <anchor 364 502> mark @mark_aboveLC;
|
||||
} aboveLC;
|
||||
|
||||
lookup aboveUC{
|
||||
pos base [A] <anchor 427 691> mark @mark_aboveUC;
|
||||
pos base [C] <anchor 472 696> mark @mark_aboveUC;
|
||||
pos base [E] <anchor 443 691> mark @mark_aboveUC;
|
||||
pos base [Eogonek] <anchor 443 691> mark @mark_aboveUC;
|
||||
pos base [G] <anchor 460 691> mark @mark_aboveUC;
|
||||
pos base [I] <anchor 437 691> mark @mark_aboveUC;
|
||||
pos base [J] <anchor 599 691> mark @mark_aboveUC;
|
||||
pos base [M] <anchor 436 691> mark @mark_aboveUC;
|
||||
pos base [N] <anchor 440 691> mark @mark_aboveUC;
|
||||
pos base [O] <anchor 440 696> mark @mark_aboveUC;
|
||||
pos base [P] <anchor 452 691> mark @mark_aboveUC;
|
||||
pos base [S] <anchor 452 696> mark @mark_aboveUC;
|
||||
pos base [U] <anchor 436 691> mark @mark_aboveUC;
|
||||
pos base [Z] <anchor 422 691> mark @mark_aboveUC;
|
||||
} aboveUC;
|
||||
|
||||
lookup below{
|
||||
pos base [C] <anchor 275 -40> mark @mark_below;
|
||||
pos base [Dcroat] <anchor 303 -35> mark @mark_below;
|
||||
pos base [E] <anchor 246 -35> mark @mark_below;
|
||||
pos base [H] <anchor 229 -35> mark @mark_below;
|
||||
pos base [I] <anchor 228 -35> mark @mark_below;
|
||||
pos base [O] <anchor 243 -40> mark @mark_below;
|
||||
pos base [S] <anchor 271 -40> mark @mark_below;
|
||||
pos base [U] <anchor 228 -40> mark @mark_below;
|
||||
pos base [X] <anchor 230 -35> mark @mark_below;
|
||||
pos base [Z] <anchor 239 -35> mark @mark_below;
|
||||
pos base [c] <anchor 232 -35> mark @mark_below;
|
||||
pos base [dcroat] <anchor 254 -30> mark @mark_below;
|
||||
pos base [dotlessi] <anchor 235 -35> mark @mark_below;
|
||||
pos base [e] <anchor 240 -40> mark @mark_below;
|
||||
pos base [h] <anchor 240 -35> mark @mark_below;
|
||||
pos base [o] <anchor 242 -40> mark @mark_below;
|
||||
pos base [s] <anchor 222 -40> mark @mark_below;
|
||||
pos base [u] <anchor 239 -35> mark @mark_below;
|
||||
pos base [x] <anchor 227 -35> mark @mark_below;
|
||||
pos base [z] <anchor 237 -35> mark @mark_below;
|
||||
} below;
|
||||
|
||||
lookup belowcedilla{
|
||||
pos base [Z] <anchor 246 -10> mark @mark_belowcedilla;
|
||||
pos base [z] <anchor 244 -10> mark @mark_belowcedilla;
|
||||
} belowcedilla;
|
||||
|
||||
lookup belowogonek{
|
||||
pos base [A] <anchor 443 -10> mark @mark_belowogonek;
|
||||
pos base [E] <anchor 396 -10> mark @mark_belowogonek;
|
||||
pos base [I] <anchor 235 -10> mark @mark_belowogonek;
|
||||
pos base [O] <anchor 248 -15> mark @mark_belowogonek;
|
||||
pos base [U] <anchor 238 -15> mark @mark_belowogonek;
|
||||
pos base [a] <anchor 391 -10> mark @mark_belowogonek;
|
||||
pos base [dotlessi] <anchor 242 -9> mark @mark_belowogonek;
|
||||
pos base [e] <anchor 339 -10> mark @mark_belowogonek;
|
||||
pos base [o] <anchor 245 -15> mark @mark_belowogonek;
|
||||
pos base [u] <anchor 401 -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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# Replace letters with dotless counterparts when followed by a combining mark
|
||||
lookup Dotless {
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks] by [dotlessi dotlessj];
|
||||
} Dotless;
|
||||
|
||||
# Replace e ogonek with eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# Replace letters with dotless counterparts when followed by a combining mark
|
||||
lookup Dotless {
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks] by [dotlessi dotlessj];
|
||||
} Dotless;
|
||||
|
||||
# Replace e ogonek with eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# Replace letters with dotless counterparts when followed by a combining mark
|
||||
lookup Dotless {
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks] by [dotlessi dotlessj];
|
||||
} Dotless;
|
||||
|
||||
# Replace e ogonek with eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# Replace letters with dotless counterparts when followed by a combining mark
|
||||
lookup Dotless {
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks] by [dotlessi dotlessj];
|
||||
} Dotless;
|
||||
|
||||
# Replace e ogonek with eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# Replace letters with dotless counterparts when followed by a combining mark
|
||||
lookup Dotless {
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks] by [dotlessi dotlessj];
|
||||
} Dotless;
|
||||
|
||||
# Replace e ogonek with eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# Replace letters with dotless counterparts when followed by a combining mark
|
||||
lookup Dotless {
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks gravecmb] by [dotlessi dotlessj];
|
||||
sub [i j]' [@belowMarks dotbelowcmb] [@lcMarks] by [dotlessi dotlessj];
|
||||
sub [i j]' [@lcMarks] by [dotlessi dotlessj];
|
||||
} Dotless;
|
||||
|
||||
# Replace e ogonek with eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
@ -176,103 +209,6 @@ feature salt {
|
|||
} salt;
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------
|
||||
# MARK | Generated: November 23, 2022 - 02:37:46 PM by 'markFeature.py'
|
||||
# ---------------------------------------------------------------------
|
||||
|
||||
markClass [acutecmb caroncmb circumflexcmb dieresiscmb dotaccentcmb gravecmb macroncmb tildecmb] <anchor 76 502> @mark_aboveLC;
|
||||
markClass [acutecmb.cap caroncmb.cap circumflexcmb.cap dieresiscmb.cap dotaccentcmb.cap gravecmb.cap macroncmb.cap tildecmb.cap] <anchor 130 691> @mark_aboveUC;
|
||||
markClass [dieresisbelowcmb dotbelowcmb macronbelowcmb] <anchor -78 -35> @mark_below;
|
||||
markClass [cedillacmb] <anchor -71 -10> @mark_belowcedilla;
|
||||
markClass [ogonekcmb] <anchor -71 -10> @mark_belowogonek;
|
||||
|
||||
feature mark {
|
||||
|
||||
lookup aboveLC{
|
||||
pos base [a] <anchor 372 507> mark @mark_aboveLC;
|
||||
pos base [c] <anchor 389 507> mark @mark_aboveLC;
|
||||
pos base [dotlessi] <anchor 388 502> mark @mark_aboveLC;
|
||||
pos base [dotlessj] <anchor 476 502> mark @mark_aboveLC;
|
||||
pos base [e] <anchor 395 507> mark @mark_aboveLC;
|
||||
pos base [eogonek] <anchor 395 507> mark @mark_aboveLC;
|
||||
pos base [g] <anchor 400 507> mark @mark_aboveLC;
|
||||
pos base [m] <anchor 382 502> mark @mark_aboveLC;
|
||||
pos base [n] <anchor 384 502> mark @mark_aboveLC;
|
||||
pos base [o] <anchor 370 507> mark @mark_aboveLC;
|
||||
pos base [p] <anchor 394 502> mark @mark_aboveLC;
|
||||
pos base [s] <anchor 388 507> mark @mark_aboveLC;
|
||||
pos base [u] <anchor 386 502> mark @mark_aboveLC;
|
||||
pos base [z] <anchor 364 502> mark @mark_aboveLC;
|
||||
} aboveLC;
|
||||
|
||||
lookup aboveUC{
|
||||
pos base [A] <anchor 427 691> mark @mark_aboveUC;
|
||||
pos base [C] <anchor 472 696> mark @mark_aboveUC;
|
||||
pos base [E] <anchor 443 691> mark @mark_aboveUC;
|
||||
pos base [Eogonek] <anchor 443 691> mark @mark_aboveUC;
|
||||
pos base [G] <anchor 460 691> mark @mark_aboveUC;
|
||||
pos base [I] <anchor 437 691> mark @mark_aboveUC;
|
||||
pos base [J] <anchor 599 691> mark @mark_aboveUC;
|
||||
pos base [M] <anchor 436 691> mark @mark_aboveUC;
|
||||
pos base [N] <anchor 440 691> mark @mark_aboveUC;
|
||||
pos base [O] <anchor 440 696> mark @mark_aboveUC;
|
||||
pos base [P] <anchor 452 691> mark @mark_aboveUC;
|
||||
pos base [S] <anchor 452 696> mark @mark_aboveUC;
|
||||
pos base [U] <anchor 436 691> mark @mark_aboveUC;
|
||||
pos base [Z] <anchor 422 691> mark @mark_aboveUC;
|
||||
} aboveUC;
|
||||
|
||||
lookup below{
|
||||
pos base [C] <anchor 275 -40> mark @mark_below;
|
||||
pos base [Dcroat] <anchor 303 -35> mark @mark_below;
|
||||
pos base [E] <anchor 246 -35> mark @mark_below;
|
||||
pos base [H] <anchor 229 -35> mark @mark_below;
|
||||
pos base [I] <anchor 228 -35> mark @mark_below;
|
||||
pos base [O] <anchor 243 -40> mark @mark_below;
|
||||
pos base [S] <anchor 271 -40> mark @mark_below;
|
||||
pos base [U] <anchor 228 -40> mark @mark_below;
|
||||
pos base [X] <anchor 230 -35> mark @mark_below;
|
||||
pos base [Z] <anchor 239 -35> mark @mark_below;
|
||||
pos base [c] <anchor 232 -35> mark @mark_below;
|
||||
pos base [dcroat] <anchor 254 -30> mark @mark_below;
|
||||
pos base [dotlessi] <anchor 235 -35> mark @mark_below;
|
||||
pos base [e] <anchor 240 -40> mark @mark_below;
|
||||
pos base [h] <anchor 240 -35> mark @mark_below;
|
||||
pos base [o] <anchor 242 -40> mark @mark_below;
|
||||
pos base [s] <anchor 222 -40> mark @mark_below;
|
||||
pos base [u] <anchor 239 -35> mark @mark_below;
|
||||
pos base [x] <anchor 227 -35> mark @mark_below;
|
||||
pos base [z] <anchor 237 -35> mark @mark_below;
|
||||
} below;
|
||||
|
||||
lookup belowcedilla{
|
||||
pos base [Z] <anchor 246 -10> mark @mark_belowcedilla;
|
||||
pos base [z] <anchor 244 -10> mark @mark_belowcedilla;
|
||||
} belowcedilla;
|
||||
|
||||
lookup belowogonek{
|
||||
pos base [A] <anchor 443 -10> mark @mark_belowogonek;
|
||||
pos base [E] <anchor 396 -10> mark @mark_belowogonek;
|
||||
pos base [I] <anchor 235 -10> mark @mark_belowogonek;
|
||||
pos base [O] <anchor 248 -15> mark @mark_belowogonek;
|
||||
pos base [U] <anchor 238 -15> mark @mark_belowogonek;
|
||||
pos base [a] <anchor 391 -10> mark @mark_belowogonek;
|
||||
pos base [dotlessi] <anchor 242 -9> mark @mark_belowogonek;
|
||||
pos base [e] <anchor 339 -10> mark @mark_belowogonek;
|
||||
pos base [o] <anchor 245 -15> mark @mark_belowogonek;
|
||||
pos base [u] <anchor 401 -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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# ----------------------------
|
||||
# INTEL MONO OPENTYPE CODE
|
||||
# INTEL ONE MONO OPENTYPE CODE
|
||||
# ----------------------------
|
||||
|
||||
# ----------------
|
||||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# ----------------------------
|
||||
# INTEL MONO OPENTYPE CODE
|
||||
# INTEL ONE MONO OPENTYPE CODE
|
||||
# ----------------------------
|
||||
|
||||
# ----------------
|
||||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="IntelOneMono-LightItalic-mstr.ufo" familyname="IntelOne Mono" stylename="Light Italic">
|
||||
<source filename="IntelOneMono-LightItalic-mstr.ufo" familyname="Intel One Mono" stylename="Light Italic">
|
||||
<lib copy="1"/>
|
||||
<groups copy="1"/>
|
||||
<features copy="1"/>
|
||||
|
|
@ -39,35 +39,35 @@
|
|||
<dimension name="weight" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="IntelOneMono-BoldItalic-mstr.ufo" familyname="IntelOne Mono" stylename="Bold Italic">
|
||||
<source filename="IntelOneMono-BoldItalic-mstr.ufo" familyname="Intel One Mono" stylename="Bold Italic">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="144"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance familyname="IntelOne Mono" stylename="Light Italic" filename="instances/IntelOneMono-LightItalic.ufo">
|
||||
<instance familyname="Intel One Mono" stylename="Light Italic" filename="instances/IntelOneMono-LightItalic.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="IntelOne Mono" stylename="Italic" filename="instances/IntelOneMono-Italic.ufo">
|
||||
<instance familyname="Intel One Mono" stylename="Italic" filename="instances/IntelOneMono-Italic.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="86"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="IntelOne Mono" stylename="Medium Italic" filename="instances/IntelOneMono-MediumItalic.ufo">
|
||||
<instance familyname="Intel One Mono" stylename="Medium Italic" filename="instances/IntelOneMono-MediumItalic.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="112"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="IntelOne Mono" stylename="Bold Italic" filename="instances/IntelOneMono-BoldItalic.ufo">
|
||||
<instance familyname="Intel One Mono" stylename="Bold Italic" filename="instances/IntelOneMono-BoldItalic.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="144"/>
|
||||
</location>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# ----------------------------
|
||||
# INTEL MONO OPENTYPE CODE
|
||||
# INTEL ONE MONO OPENTYPE CODE
|
||||
# ----------------------------
|
||||
|
||||
# ----------------
|
||||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# ----------------------------
|
||||
# INTEL MONO OPENTYPE CODE
|
||||
# INTEL ONE MONO OPENTYPE CODE
|
||||
# ----------------------------
|
||||
|
||||
# ----------------
|
||||
|
|
@ -29,13 +29,11 @@ languagesystem latn CAT;
|
|||
@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 - no grave
|
||||
@deadMarks = [acute hungarumlaut circumflex caron breve tilde macron dieresis dotaccent ring ];
|
||||
@lcMarks = [acutecmb hungarumlautcmb circumflexcmb caroncmb brevecmb tildecmb macroncmb dieresiscmb dotaccentcmb ringcmb ];
|
||||
@ucMarks = [acutecmb.cap hungarumlautcmb.cap circumflexcmb.cap caroncmb.cap brevecmb.cap tildecmb.cap macroncmb.cap dieresiscmb.cap dotaccentcmb.cap ringcmb.cap];
|
||||
# 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
|
||||
@deadbelowMarks = [uniA788 macronlowmod cedilla ogonek];
|
||||
@belowMarks = [circumflexbelowcmb macronbelowcmb cedillacmb ogonekcmb];
|
||||
|
||||
|
||||
|
|
@ -69,35 +67,54 @@ feature locl {
|
|||
|
||||
feature ccmp {
|
||||
|
||||
# Decompose unicode lowercase characters whose capital counterparts have no unicode.
|
||||
# Decompose unicode lowercase characters whose uppercase counterparts have no unicode.
|
||||
lookup Decomp {
|
||||
sub hlinebelow by h macronlowmod;
|
||||
sub jcaron by j caron;
|
||||
} Decomp;
|
||||
|
||||
# Replace marks that follow a letter and another mark with their combining forms.
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
# Replace double above accents by combined drawings.
|
||||
lookup DblMarks {
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks dotbelowcmb] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
sub [@ltrUC] [@lcMarks @deadbelowMarks dotbelowcmb] [@lcMarks]' by [@ucMarks];
|
||||
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 marks that follow a letter with their combining forms.
|
||||
lookup CmbMarks {
|
||||
# grave is not included; we prioritize its use as a symbol for programming, which should not fuse with letters.
|
||||
sub [@ltrLC] [@deadMarks @deadbelowMarks]' by [@lcMarks @belowMarks];
|
||||
sub [@ltrUC] [@deadMarks @deadbelowMarks]' by [@ucMarks @belowMarks];
|
||||
|
||||
# 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];
|
||||
} CmbMarks;
|
||||
} CapitalMarks;
|
||||
|
||||
# Replace letters with dotless counterparts when followed by a combining mark.
|
||||
# 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 eogonek.
|
||||
# Replace e ogonek with pre-drawn eogonek
|
||||
lookup eogonek {
|
||||
sub e ogonekcmb by eogonek;
|
||||
} eogonek;
|
||||
|
|
@ -142,6 +159,22 @@ feature sinf {
|
|||
} 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
|
||||
# --------------
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@
|
|||
</rule>
|
||||
</rules>
|
||||
<sources>
|
||||
<source filename="IntelOneMono-Light-mstr.ufo" familyname="IntelOne Mono" stylename="Light">
|
||||
<source filename="IntelOneMono-Light-mstr.ufo" familyname="Intel One Mono" stylename="Light">
|
||||
<lib copy="1"/>
|
||||
<groups copy="1"/>
|
||||
<features copy="1"/>
|
||||
|
|
@ -39,35 +39,35 @@
|
|||
<dimension name="weight" xvalue="60"/>
|
||||
</location>
|
||||
</source>
|
||||
<source filename="IntelOneMono-Bold-mstr.ufo" familyname="IntelOne Mono" stylename="Bold">
|
||||
<source filename="IntelOneMono-Bold-mstr.ufo" familyname="Intel One Mono" stylename="Bold">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="144"/>
|
||||
</location>
|
||||
</source>
|
||||
</sources>
|
||||
<instances>
|
||||
<instance familyname="IntelOne Mono" stylename="Light" filename="instances/IntelOneMono-Light.ufo">
|
||||
<instance familyname="Intel One Mono" stylename="Light" filename="instances/IntelOneMono-Light.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="60"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="IntelOne Mono" stylename="Regular" filename="instances/IntelOneMono-Regular.ufo">
|
||||
<instance familyname="Intel One Mono" stylename="Regular" filename="instances/IntelOneMono-Regular.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="86"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="IntelOne Mono" stylename="Medium" filename="instances/IntelOneMono-Medium.ufo">
|
||||
<instance familyname="Intel One Mono" stylename="Medium" filename="instances/IntelOneMono-Medium.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="112"/>
|
||||
</location>
|
||||
<kerning/>
|
||||
<info/>
|
||||
</instance>
|
||||
<instance familyname="IntelOne Mono" stylename="Bold" filename="instances/IntelOneMono-Bold.ufo">
|
||||
<instance familyname="Intel One Mono" stylename="Bold" filename="instances/IntelOneMono-Bold.ufo">
|
||||
<location>
|
||||
<dimension name="weight" xvalue="144"/>
|
||||
</location>
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in a new issue