7 Commits

Author SHA1 Message Date
kiliman 1babf4977d 🚀 Deploy v2.5.1 2023-12-23 17:28:04 -06:00
kiliman 0d4a55ed1f 🔥 Remove canvas dependency 2023-12-23 17:25:11 -06:00
kiliman 10dd25fd26 🚀 Deploy v2.5.0 2023-12-21 10:40:52 -06:00
kiliman 135f6eb156 🖼️ Update ligature preview images 2023-12-21 10:40:39 -06:00
kiliman 4499ba4809 📦 Add canvas dependency 2023-12-21 10:25:47 -06:00
Jakob Pearson fff435748f Merge remote-tracking branch 'kiliman/master' (#185)
* OperatorMonoSSm (Light, Book, Medium, Bold)
New Ligatures:
    - colon_colon
    - exclam_exclam
    - semicolon_semicolon
    - less_less
    - greater_greater
    - hyphen_equal (minus_equal)
    - asterisk_equal
    - slash_equal
    - less_slash_greater
    - less_less_equal
    - quotedbl_quotedbl_quotedbl
    - quotesingle_quotesingle_quotesingle
New Powerline Glyhps:
    - E0A1 (Powerline LN)
    - E0A2 (Powerline lock)
    - E0B1 (Powerline left soft divider)
    - E0B3 (Powerline right soft divider)

Features:
    - ss10 can be used to substitute 'x' for '×'. Eg 0×FF or 800×600
    - 'Equality Spaces' and 'Less-than/Greater-than Horizontal Bar' alternatives are included
    by default, and can be activated via ss11 and ss12 respectively.
    - Corrected and simplified features code to include the missing 'kern' feature for
    fraction numerator and denominator positioning.
    - 'calt.js' will also generate the 'liga' feature.

Edited and repositioned some existing glyphs to be more consistent across font weights.
Created missing glyphs for other weights. Eg 'w_w_w.liga' and 'plus_equal.liga'

* 'calt.js' no longer generates the 'liga' feature.

* Adjusted hinting, no contours changed.
2023-12-21 11:21:24 -05:00
Michael Carter eec76d8792 📝 Update instructions for Mac installs 2022-09-14 12:11:11 -05:00
626 changed files with 7961 additions and 4190 deletions
+1
View File
@@ -3,3 +3,4 @@ node_modules
.idea
.vscode
.DS_Store
pnpm-lock.yaml
+6 -1
View File
@@ -10,6 +10,10 @@ those found in the popular [Fira Code](https://github.com/tonsky/FiraCode) font.
These ligatures were custom created using [Glyphs](https://glyphsapp.com/).
There are even italic versions of the ligatures.
## 🎉 What's New in Version 2.5
<img src="./images/new-ligatures-2.5.png"/>
## 🎉 What's New in Version 2
<img src="./images/new-ligatures.png"/>
@@ -56,12 +60,13 @@ Which font weight of Operator Mono do you use? Also note difference between Scre
- The original _Operator Mono_ font... of course.
- Python (v2.7+)
- **NOTE**: For Mac, the default system Python v2.7 doesn't work. Make sure you install Python 3.
- Node.js
- Install _fonttools_ from https://github.com/fonttools/fonttools
- Windows/Linux: `pip install fonttools`
- **NOTE**: For Windows you should use a console with administrative permissions if your Python sit under `C:\PythonX`
- **NOTE**: For Linux in WSL/WSL2, ensure that _fonttools_ is added to PATH after install. Alternatively, consider installing via `sudo apt install fonttools`.
- Mac: `pip3 install fonttools`
- Mac: `pip3 install fonttools` (from Python 3)
## Installation
+8 -1
View File
@@ -31,6 +31,13 @@ if not exist .\ligature\%lig%\glyphs\* exit /b
ttx -f .\original\%otf%.otf
node index.js %otf% %flags%
ttx -f .\build\%lig%.ttx
fonttools feaLib -v -o ".\build\%lig%.otf" .\features\default.fea ".\build\%lig%.otf"
rem check if "SSm" is in name since the features are slightly different
@echo.%lig% | findstr /C:"SSm" 1>nul
if errorlevel 1 (
set fea=".\features\default.fea"
) else (
set fea=".\features\defaultSSm.fea"
)
fonttools feaLib -v -o ".\build\%lig%.otf" %fea% ".\build\%lig%.otf"
exit /b
+6 -2
View File
@@ -21,8 +21,12 @@ build_font() {
node index.js "$otf" "$flags"
ttx -f "./build/$1.ttx"
fonttools feaLib -v -o "./build/$1.otf" ./features/default.fea "./build/$1.otf"
if [[ $lig == *"SSm"* ]]; then
fea="./features/defaultSSm.fea"
else
fea="./features/default.fea"
fi
fonttools feaLib -v -o "./build/$1.otf" $fea "./build/$1.otf"
}
flags=
+202 -180
View File
@@ -1,212 +1,234 @@
languagesystem DFLT dflt;
languagesystem latn dflt;
lookup lookup_0 {
sub zero by zero.num;
sub one by one.num;
sub two by two.num;
sub three by three.num;
sub four by four.num;
sub five by five.num;
sub six by six.num;
sub seven by seven.num;
sub eight by eight.num;
sub nine by nine.num;
sub slash by fraction;
sub fraction by fraction.afrc;
} lookup_0;
lookup lookup_1 {
sub zero by zero.den;
sub one by one.den;
sub two by two.den;
sub three by three.den;
sub four by four.den;
sub five by five.den;
sub six by six.den;
sub seven by seven.den;
sub eight by eight.den;
sub nine by nine.den;
sub slash by fraction;
} lookup_1;
lookup lookup_2 {
sub L periodcentered by Ldot;
sub l periodcentered by ldot;
} lookup_2;
feature case {
sub guillemotleft by guillemotleft.cap;
sub guillemotright by guillemotright.cap;
sub guilsinglleft by guilsinglleft.cap;
sub guilsinglright by guilsinglright.cap;
sub parenleft by parenleft.cap;
sub parenright by parenright.cap;
sub bracketleft by bracketleft.cap;
sub bracketright by bracketright.cap;
sub braceleft by braceleft.cap;
sub braceright by braceright.cap;
} case;
feature dnom {
sub zero by zero.den;
sub one by one.den;
sub two by two.den;
sub three by three.den;
sub four by four.den;
sub five by five.den;
sub six by six.den;
sub seven by seven.den;
sub eight by eight.den;
sub nine by nine.den;
} dnom;
feature frac {
lookup frac0 {
sub [zero one two three four five six seven eight nine] slash' lookup lookup_0 [zero one two three four five six seven eight nine] ;
} frac0;
lookup frac1 {
ignore sub [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] fraction' ;
ignore sub fraction' [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] ;
sub [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] fraction' lookup lookup_0 [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] ;
} frac1;
lookup frac2 {
sub [zero one two three four five six seven eight nine]' lookup lookup_0 fraction.afrc ;
sub fraction.afrc [zero one two three four five six seven eight nine]' lookup lookup_1 ;
} frac2;
lookup frac3 {
sub one.num fraction.afrc two.den by onehalf;
sub one.num fraction.afrc three.den by onethird;
sub one.num fraction.afrc four.den by onequarter;
sub one.num fraction.afrc five.den by onefifth;
sub one.num fraction.afrc six.den by onesixth;
sub one.num fraction.afrc eight.den by oneeighth;
sub two.num fraction.afrc three.den by twothirds;
sub two.num fraction.afrc five.den by twofifths;
sub three.num fraction.afrc four.den by threequarters;
sub three.num fraction.afrc five.den by threefifths;
sub three.num fraction.afrc eight.den by threeeighths;
sub four.num fraction.afrc five.den by fourfifths;
sub five.num fraction.afrc six.den by fivesixths;
sub five.num fraction.afrc eight.den by fiveeighths;
sub seven.num fraction.afrc eight.den by seveneighths;
} frac3;
} frac;
##############################
# Languagesystem definitions #
##############################
languagesystem DFLT dflt; # Default default
languagesystem latn dflt; # Latin default
languagesystem latn CAT ; # Latin Catalan
##########
# Prefix #
##########
@HexDigit = [a b c d e f A B C D E F];
@Digit = [zero one two three four five six seven eight nine];
@DigitAll = [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den];
@DigitSmall = [zero.small one.small two.small three.small four.small five.small six.small seven.small eight.small nine.small];
@DigitNumerator = [zero.num one.num two.num three four.num five.num six.num seven.num eight.num nine.num];
@DigitDenominator = [zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den];
@DigitSuperior = [zero.sup one.sup two.sup three.sup four.sup five.sup six.sup seven.sup eight.sup nine.sup];
@DigitInferior = [zero.inf one.inf two.inf three.inf four.inf five.inf six.inf seven.inf eight.inf nine.inf];
#######################
# Feature definitions #
#######################
feature locl {
script latn;
language CAT ;
sub l' lookup lookup_2 periodcentered' lookup lookup_2 l ;
sub L' lookup lookup_2 periodcentered' lookup lookup_2 L ;
# GSUB feature: Localized Forms
script latn; # Latin
language CAT; # Catalan
sub l' periodcentered' by ldot;
sub L' periodcentered' by Ldot;
} locl;
feature aalt useExtension {
# GSUB feature: Access All Alternates
feature case;
feature dnom;
feature numr;
feature salt;
feature sinf;
feature ss01;
feature ss03;
feature ss04;
feature ss05;
feature ss07;
feature ss08;
feature ss09;
feature ss10;
feature subs;
feature sups;
feature smcp;
feature c2sc;
} aalt;
feature frac {
# GSUB feature: Fractions
lookup frac0 {
sub @Digit slash' @Digit by fraction;
} frac0;
lookup frac1 {
ignore sub @DigitAll @DigitAll fraction';
ignore sub fraction' @DigitAll @DigitAll;
sub @DigitAll fraction' @DigitAll by fraction.afrc;
} frac1;
lookup frac2 {
sub @Digit' fraction.afrc by @DigitNumerator;
sub fraction.afrc @Digit' by @DigitDenominator;
} frac2;
lookup frac3 {
sub one.num fraction.afrc two.den by onehalf;
sub one.num fraction.afrc three.den by onethird;
sub one.num fraction.afrc four.den by onequarter;
sub one.num fraction.afrc five.den by onefifth;
sub one.num fraction.afrc six.den by onesixth;
sub one.num fraction.afrc eight.den by oneeighth;
sub two.num fraction.afrc three.den by twothirds;
sub two.num fraction.afrc five.den by twofifths;
sub three.num fraction.afrc four.den by threequarters;
sub three.num fraction.afrc five.den by threefifths;
sub three.num fraction.afrc eight.den by threeeighths;
sub four.num fraction.afrc five.den by fourfifths;
sub five.num fraction.afrc six.den by fivesixths;
sub five.num fraction.afrc eight.den by fiveeighths;
sub seven.num fraction.afrc eight.den by seveneighths;
} frac3;
} frac;
feature numr {
sub zero by zero.num;
sub one by one.num;
sub two by two.num;
sub three by three.num;
sub four by four.num;
sub five by five.num;
sub six by six.num;
sub seven by seven.num;
sub eight by eight.num;
sub nine by nine.num;
# GSUB feature: Numerators
sub @Digit by @DigitNumerator;
} numr;
feature rupa {
sub R p by R_p;
} rupa;
feature dnom {
# GSUB feature: Denominators
sub @Digit by @DigitDenominator;
} dnom;
feature ss01 {
sub registered by registered.alt;
} ss01;
feature sups {
# GSUB feature: Superscript
sub @Digit by @DigitSuperior;
} sups;
feature salt {
lookup salt0 {
sub registered by registered.alt;
} salt0;
lookup salt1 {
sub colon by colon.alt;
} salt1;
lookup salt2 {
sub bullet by bullet.alt;
} salt2;
lookup salt3 {
sub asterisk by asterisk.alt;
} salt3;
lookup salt4 {
sub zero by zero.alt;
} salt4;
lookup salt5 {
sub underscore by underscore.alt;
} salt5;
lookup salt6 {
sub [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] slash' lookup lookup_1 [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] ;
} salt6;
} salt;
feature subs {
# GSUB feature: Subscript
sub @Digit by @DigitInferior;
} subs;
feature sinf {
sub zero by zero.inf;
sub one by one.inf;
sub two by two.inf;
sub three by three.inf;
sub four by four.inf;
sub five by five.inf;
sub six by six.inf;
sub seven by seven.inf;
sub eight by eight.inf;
sub nine by nine.inf;
# GSUB feature: Scientific Inferiors
sub @Digit by @DigitInferior;
} sinf;
feature ordn {
# Ordinals
sub @Digit [A a]' by ordfeminine;
sub @Digit [O o]' by ordmasculine;
sub N o period by numero;
} ordn;
feature smcp {
# Small Caps
sub @Digit by @DigitSmall;
} smcp;
feature c2sc {
# Capitals to Small Caps
sub @Digit by @DigitSmall;
} c2sc;
feature case {
# GSUB feature: Case-Sensitive Forms
sub guillemotleft by guillemotleft.cap;
sub guillemotright by guillemotright.cap;
sub guilsinglleft by guilsinglleft.cap;
sub guilsinglright by guilsinglright.cap;
sub parenleft by parenleft.cap;
sub parenright by parenright.cap;
sub bracketleft by bracketleft.cap;
sub bracketright by bracketright.cap;
sub braceleft by braceleft.cap;
sub braceright by braceright.cap;
} case;
include(calt.fea);
feature salt {
# GSUB feature: Stylistic Alternates
sub registered by registered.alt;
sub colon by colon.alt;
sub bullet by bullet.alt;
sub asterisk by asterisk.alt;
sub zero by zero.alt;
sub underscore by underscore.alt;
lookup salt {
# GSUB lookup 20, type 16 (Chaining Context)
sub @DigitAll slash' @DigitAll by fraction;
} salt;
} salt;
feature ss01 {
featureNames {
name "Large Registered Symbol";
};
sub registered by registered.alt;
} ss01;
feature ss03 {
sub colon by colon.alt;
featureNames {
name "Raised Colon";
};
sub colon by colon.alt;
} ss03;
feature ss04 {
sub bullet by bullet.alt;
featureNames {
name "Square Bullet";
};
sub bullet by bullet.alt;
} ss04;
feature ss05 {
sub asterisk by asterisk.alt;
featureNames {
name "Six-Pointed Asterisk";
};
sub asterisk by asterisk.alt;
} ss05;
feature ss07 {
sub zero by zero.alt;
featureNames {
name "Unslashed Zero";
};
sub zero by zero.alt;
} ss07;
feature ss08 {
sub underscore by underscore.alt;
featureNames {
name "Connected Underscore";
};
sub underscore by underscore.alt;
} ss08;
feature ss09 {
sub [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] slash' lookup lookup_1 [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den] ;
featureNames {
name "Fraction Bar";
};
sub @DigitAll slash' @DigitAll by fraction;
} ss09;
feature subs {
sub zero by zero.inf;
sub one by one.inf;
sub two by two.inf;
sub three by three.inf;
sub four by four.inf;
sub five by five.inf;
sub six by six.inf;
sub seven by seven.inf;
sub eight by eight.inf;
sub nine by nine.inf;
} subs;
feature ss10 {
featureNames {
name "Hexidecimal Multiply Sign";
};
### 0xFF
sub [zero zero.alt] x' [@Digit @HexDigit] by multiply;
### 800x600
sub [@Digit zero.alt] x' [@Digit zero.alt] by multiply;
} ss10;
feature rupa {
sub R p by R_p;
} rupa;
feature kern {
# GPOS feature: Kerning
lookup kern {
# GPOS lookup 1, type 2 (Pair adjustment)
pos fraction.afrc @DigitDenominator -550;
pos @DigitNumerator fraction.afrc -550;
} kern;
} kern;
feature subs {
sub zero by zero.sup;
sub one by one.sup;
sub two by two.sup;
sub three by three.sup;
sub four by four.sup;
sub five by five.sup;
sub six by six.sup;
sub seven by seven.sup;
sub eight by eight.sup;
sub nine by nine.sup;
} subs;
include(calt.fea);
+252
View File
@@ -0,0 +1,252 @@
##############################
# Languagesystem definitions #
##############################
languagesystem DFLT dflt; # Default default
languagesystem latn dflt; # Latin default
languagesystem latn CAT ; # Latin Catalan
##########
# Prefix #
##########
@HexDigit = [a b c d e f A B C D E F];
@Digit = [zero one two three four five six seven eight nine];
@DigitAll = [zero one two three four five six seven eight nine zero.num one.num two.num three.num four.num five.num six.num seven.num eight.num nine.num zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den];
@DigitSmall = [zero.small one.small two.small three.small four.small five.small six.small seven.small eight.small nine.small];
@DigitNumerator = [zero.num one.num two.num three four.num five.num six.num seven.num eight.num nine.num];
@DigitDenominator = [zero.den one.den two.den three.den four.den five.den six.den seven.den eight.den nine.den];
@DigitSuperior = [zero.sup one.sup two.sup three.sup four.sup five.sup six.sup seven.sup eight.sup nine.sup];
@DigitInferior = [zero.inf one.inf two.inf three.inf four.inf five.inf six.inf seven.inf eight.inf nine.inf];
#######################
# Feature definitions #
#######################
feature locl {
# GSUB feature: Localized Forms
script latn; # Latin
language CAT; # Catalan
sub l' periodcentered' by ldot;
sub L' periodcentered' by Ldot;
} locl;
feature aalt useExtension {
# GSUB feature: Access All Alternates
feature case;
feature dnom;
feature numr;
feature salt;
feature sinf;
feature ss01;
feature ss03;
feature ss04;
feature ss05;
feature ss07;
feature ss08;
feature ss09;
feature ss10;
feature ss11;
feature ss12;
feature subs;
feature sups;
feature smcp;
feature c2sc;
} aalt;
feature frac {
# GSUB feature: Fractions
lookup frac0 {
sub @Digit slash' @Digit by fraction;
} frac0;
lookup frac1 {
ignore sub @DigitAll @DigitAll fraction';
ignore sub fraction' @DigitAll @DigitAll;
sub @DigitAll fraction' @DigitAll by fraction.afrc;
} frac1;
lookup frac2 {
sub @Digit' fraction.afrc by @DigitNumerator;
sub fraction.afrc @Digit' by @DigitDenominator;
} frac2;
lookup frac3 {
sub one.num fraction.afrc two.den by onehalf;
sub one.num fraction.afrc three.den by onethird;
sub one.num fraction.afrc four.den by onequarter;
sub one.num fraction.afrc five.den by onefifth;
sub one.num fraction.afrc six.den by onesixth;
sub one.num fraction.afrc eight.den by oneeighth;
sub two.num fraction.afrc three.den by twothirds;
sub two.num fraction.afrc five.den by twofifths;
sub three.num fraction.afrc four.den by threequarters;
sub three.num fraction.afrc five.den by threefifths;
sub three.num fraction.afrc eight.den by threeeighths;
sub four.num fraction.afrc five.den by fourfifths;
sub five.num fraction.afrc six.den by fivesixths;
sub five.num fraction.afrc eight.den by fiveeighths;
sub seven.num fraction.afrc eight.den by seveneighths;
} frac3;
} frac;
feature numr {
# GSUB feature: Numerators
sub @Digit by @DigitNumerator;
} numr;
feature dnom {
# GSUB feature: Denominators
sub @Digit by @DigitDenominator;
} dnom;
feature sups {
# GSUB feature: Superscript
sub @Digit by @DigitSuperior;
} sups;
feature subs {
# GSUB feature: Subscript
sub @Digit by @DigitInferior;
} subs;
feature sinf {
# GSUB feature: Scientific Inferiors
sub @Digit by @DigitInferior;
} sinf;
feature ordn {
# Ordinals
sub @Digit [A a]' by ordfeminine;
sub @Digit [O o]' by ordmasculine;
sub N o period by numero;
} ordn;
feature smcp {
# Small Caps
sub @Digit by @DigitSmall;
} smcp;
feature c2sc {
# Capitals to Small Caps
sub @Digit by @DigitSmall;
} c2sc;
feature case {
# GSUB feature: Case-Sensitive Forms
sub guillemotleft by guillemotleft.cap;
sub guillemotright by guillemotright.cap;
sub guilsinglleft by guilsinglleft.cap;
sub guilsinglright by guilsinglright.cap;
sub parenleft by parenleft.cap;
sub parenright by parenright.cap;
sub bracketleft by bracketleft.cap;
sub bracketright by bracketright.cap;
sub braceleft by braceleft.cap;
sub braceright by braceright.cap;
} case;
include(calt.fea);
feature salt {
# GSUB feature: Stylistic Alternates
sub registered by registered.alt;
sub colon by colon.alt;
sub bullet by bullet.alt;
sub asterisk by asterisk.alt;
sub zero by zero.alt;
sub underscore by underscore.alt;
lookup salt {
# GSUB lookup 20, type 16 (Chaining Context)
sub @DigitAll slash' @DigitAll by fraction;
} salt;
} salt;
feature ss01 {
featureNames {
name "Large Registered Symbol";
};
sub registered by registered.alt;
} ss01;
feature ss03 {
featureNames {
name "Raised Colon";
};
sub colon by colon.alt;
} ss03;
feature ss04 {
featureNames {
name "Square Bullet";
};
sub bullet by bullet.alt;
} ss04;
feature ss05 {
featureNames {
name "Six-Pointed Asterisk";
};
sub asterisk by asterisk.alt;
} ss05;
feature ss07 {
featureNames {
name "Unslashed Zero";
};
sub zero by zero.alt;
} ss07;
feature ss08 {
featureNames {
name "Connected Underscore";
};
sub underscore by underscore.alt;
} ss08;
feature ss09 {
featureNames {
name "Fraction Bar";
};
sub @DigitAll slash' @DigitAll by fraction;
} ss09;
feature ss10 {
featureNames {
name "Hexidecimal Multiply Sign";
};
### 0xFF
sub [zero zero.alt] x' [@Digit @HexDigit] by multiply;
### 800x600
sub [@Digit zero.alt] x' [@Digit zero.alt] by multiply;
} ss10;
feature ss11 {
featureNames {
name "Equality Spaces";
};
sub equal_equal.liga by equal_equal.liga.ss11;
sub equal_equal_equal.liga by equal_equal_equal.liga.ss11;
} ss11;
feature ss12 {
featureNames {
name "Less-than/Greater-than Horizontal Bar";
};
sub less_equal.liga by less_equal.liga.ss12;
sub greater_equal.liga by greater_equal.liga.ss12;
} ss12;
feature rupa {
sub R p by R_p;
} rupa;
feature kern {
# GPOS feature: Kerning
lookup kern {
# GPOS lookup 1, type 2 (Pair adjustment)
pos fraction.afrc @DigitDenominator -625;
pos @DigitNumerator fraction.afrc -625;
} kern;
} kern;
Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 776 B

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 427 B

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 828 B

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 678 B

After

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 808 B

After

Width:  |  Height:  |  Size: 771 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 853 B

After

Width:  |  Height:  |  Size: 849 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 279 B

After

Width:  |  Height:  |  Size: 290 B

+1 -1
View File
@@ -12,4 +12,4 @@
<a href="https://htmlpreview.github.io/?https://github.com/kiliman/operator-mono-lig/blob/master/images/preview/normal/index.html" class="">Normal</a> |
<a href="https://htmlpreview.github.io/?https://github.com/kiliman/operator-mono-lig/blob/master/images/preview/italic/index.html" class="active">Italic</a>
<div class="container">
<div class="ligature"><img src="ampersand_ampersand.png"/><div>ampersand_ampersand</div></div><div class="ligature"><img src="bar_bar.png"/><div>bar_bar</div></div><div class="ligature"><img src="bar_greater.png"/><div>bar_greater</div></div><div class="ligature"><img src="colon_equal.png"/><div>colon_equal</div></div><div class="ligature"><img src="equal_equal.png"/><div>equal_equal</div></div><div class="ligature"><img src="equal_equal_equal.png"/><div>equal_equal_equal</div></div><div class="ligature"><img src="equal_equal_greater.png"/><div>equal_equal_greater</div></div><div class="ligature"><img src="equal_greater.png"/><div>equal_greater</div></div><div class="ligature"><img src="equal_less_less.png"/><div>equal_less_less</div></div><div class="ligature"><img src="exclam_equal.png"/><div>exclam_equal</div></div><div class="ligature"><img src="exclam_equal_equal.png"/><div>exclam_equal_equal</div></div><div class="ligature"><img src="greater_equal.png"/><div>greater_equal</div></div><div class="ligature"><img src="greater_equal_greater.png"/><div>greater_equal_greater</div></div><div class="ligature"><img src="greater_greater_equal.png"/><div>greater_greater_equal</div></div><div class="ligature"><img src="hyphen_greater.png"/><div>hyphen_greater</div></div><div class="ligature"><img src="hyphen_hyphen.png"/><div>hyphen_hyphen</div></div><div class="ligature"><img src="hyphen_hyphen_greater.png"/><div>hyphen_hyphen_greater</div></div><div class="ligature"><img src="less_bar.png"/><div>less_bar</div></div><div class="ligature"><img src="less_equal.png"/><div>less_equal</div></div><div class="ligature"><img src="less_equal_equal.png"/><div>less_equal_equal</div></div><div class="ligature"><img src="less_equal_greater.png"/><div>less_equal_greater</div></div><div class="ligature"><img src="less_equal_less.png"/><div>less_equal_less</div></div><div class="ligature"><img src="less_exclam_hyphen_hyphen.png"/><div>less_exclam_hyphen_hyphen</div></div><div class="ligature"><img src="less_hyphen.png"/><div>less_hyphen</div></div><div class="ligature"><img src="less_hyphen_greater.png"/><div>less_hyphen_greater</div></div><div class="ligature"><img src="less_hyphen_hyphen.png"/><div>less_hyphen_hyphen</div></div><div class="ligature"><img src="less_slash.png"/><div>less_slash</div></div><div class="ligature"><img src="plus_equal.png"/><div>plus_equal</div></div><div class="ligature"><img src="plus_plus.png"/><div>plus_plus</div></div><div class="ligature"><img src="question_question.png"/><div>question_question</div></div><div class="ligature"><img src="slash_greater.png"/><div>slash_greater</div></div><div class="ligature"><img src="underscore_underscore.png"/><div>underscore_underscore</div></div><div class="ligature"><img src="w_w_w.png"/><div>w_w_w</div></div></div></body></html>
<div class="ligature"><img src="ampersand_ampersand.png"/><div>ampersand_ampersand</div></div><div class="ligature"><img src="asterisk_equal.png"/><div>asterisk_equal</div></div><div class="ligature"><img src="bar_bar.png"/><div>bar_bar</div></div><div class="ligature"><img src="bar_greater.png"/><div>bar_greater</div></div><div class="ligature"><img src="colon_colon.png"/><div>colon_colon</div></div><div class="ligature"><img src="colon_equal.png"/><div>colon_equal</div></div><div class="ligature"><img src="equal_equal.png"/><div>equal_equal</div></div><div class="ligature"><img src="equal_equal_equal.png"/><div>equal_equal_equal</div></div><div class="ligature"><img src="equal_equal_greater.png"/><div>equal_equal_greater</div></div><div class="ligature"><img src="equal_greater.png"/><div>equal_greater</div></div><div class="ligature"><img src="equal_less_less.png"/><div>equal_less_less</div></div><div class="ligature"><img src="exclam_equal.png"/><div>exclam_equal</div></div><div class="ligature"><img src="exclam_equal_equal.png"/><div>exclam_equal_equal</div></div><div class="ligature"><img src="exclam_exclam.png"/><div>exclam_exclam</div></div><div class="ligature"><img src="greater_equal.png"/><div>greater_equal</div></div><div class="ligature"><img src="greater_equal_greater.png"/><div>greater_equal_greater</div></div><div class="ligature"><img src="greater_greater.png"/><div>greater_greater</div></div><div class="ligature"><img src="greater_greater_equal.png"/><div>greater_greater_equal</div></div><div class="ligature"><img src="hyphen_equal.png"/><div>hyphen_equal</div></div><div class="ligature"><img src="hyphen_greater.png"/><div>hyphen_greater</div></div><div class="ligature"><img src="hyphen_hyphen.png"/><div>hyphen_hyphen</div></div><div class="ligature"><img src="hyphen_hyphen_greater.png"/><div>hyphen_hyphen_greater</div></div><div class="ligature"><img src="less_bar.png"/><div>less_bar</div></div><div class="ligature"><img src="less_equal.png"/><div>less_equal</div></div><div class="ligature"><img src="less_equal_equal.png"/><div>less_equal_equal</div></div><div class="ligature"><img src="less_equal_greater.png"/><div>less_equal_greater</div></div><div class="ligature"><img src="less_equal_less.png"/><div>less_equal_less</div></div><div class="ligature"><img src="less_exclam_hyphen_hyphen.png"/><div>less_exclam_hyphen_hyphen</div></div><div class="ligature"><img src="less_hyphen.png"/><div>less_hyphen</div></div><div class="ligature"><img src="less_hyphen_greater.png"/><div>less_hyphen_greater</div></div><div class="ligature"><img src="less_hyphen_hyphen.png"/><div>less_hyphen_hyphen</div></div><div class="ligature"><img src="less_less.png"/><div>less_less</div></div><div class="ligature"><img src="less_less_equal.png"/><div>less_less_equal</div></div><div class="ligature"><img src="less_slash.png"/><div>less_slash</div></div><div class="ligature"><img src="less_slash_greater.png"/><div>less_slash_greater</div></div><div class="ligature"><img src="plus_equal.png"/><div>plus_equal</div></div><div class="ligature"><img src="plus_plus.png"/><div>plus_plus</div></div><div class="ligature"><img src="question_question.png"/><div>question_question</div></div><div class="ligature"><img src="quotedbl_quotedbl_quotedbl.png"/><div>quotedbl_quotedbl_quotedbl</div></div><div class="ligature"><img src="quotesingle_quotesingle_quotesingle.png"/><div>quotesingle_quotesingle_quotesingle</div></div><div class="ligature"><img src="semicolon_semicolon.png"/><div>semicolon_semicolon</div></div><div class="ligature"><img src="slash_equal.png"/><div>slash_equal</div></div><div class="ligature"><img src="slash_greater.png"/><div>slash_greater</div></div><div class="ligature"><img src="underscore_underscore.png"/><div>underscore_underscore</div></div><div class="ligature"><img src="w_w_w.png"/><div>w_w_w</div></div></div></body></html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 809 B

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 779 B

After

Width:  |  Height:  |  Size: 775 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 730 B

After

Width:  |  Height:  |  Size: 737 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 861 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 998 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

After

Width:  |  Height:  |  Size: 484 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 782 B

After

Width:  |  Height:  |  Size: 760 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 628 B

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 B

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 838 B

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 650 B

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 720 B

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 695 B

After

Width:  |  Height:  |  Size: 712 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 855 B

After

Width:  |  Height:  |  Size: 865 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 277 B

+1 -1
View File
@@ -12,4 +12,4 @@
<a href="https://htmlpreview.github.io/?https://github.com/kiliman/operator-mono-lig/blob/master/images/preview/normal/index.html" class="active">Normal</a> |
<a href="https://htmlpreview.github.io/?https://github.com/kiliman/operator-mono-lig/blob/master/images/preview/italic/index.html" class="">Italic</a>
<div class="container">
<div class="ligature"><img src="ampersand_ampersand.png"/><div>ampersand_ampersand</div></div><div class="ligature"><img src="bar_bar.png"/><div>bar_bar</div></div><div class="ligature"><img src="bar_greater.png"/><div>bar_greater</div></div><div class="ligature"><img src="colon_equal.png"/><div>colon_equal</div></div><div class="ligature"><img src="equal_equal.png"/><div>equal_equal</div></div><div class="ligature"><img src="equal_equal_equal.png"/><div>equal_equal_equal</div></div><div class="ligature"><img src="equal_equal_greater.png"/><div>equal_equal_greater</div></div><div class="ligature"><img src="equal_greater.png"/><div>equal_greater</div></div><div class="ligature"><img src="equal_less_less.png"/><div>equal_less_less</div></div><div class="ligature"><img src="exclam_equal.png"/><div>exclam_equal</div></div><div class="ligature"><img src="exclam_equal_equal.png"/><div>exclam_equal_equal</div></div><div class="ligature"><img src="greater_equal.png"/><div>greater_equal</div></div><div class="ligature"><img src="greater_equal_greater.png"/><div>greater_equal_greater</div></div><div class="ligature"><img src="greater_greater_equal.png"/><div>greater_greater_equal</div></div><div class="ligature"><img src="hyphen_greater.png"/><div>hyphen_greater</div></div><div class="ligature"><img src="hyphen_hyphen.png"/><div>hyphen_hyphen</div></div><div class="ligature"><img src="hyphen_hyphen_greater.png"/><div>hyphen_hyphen_greater</div></div><div class="ligature"><img src="less_bar.png"/><div>less_bar</div></div><div class="ligature"><img src="less_equal.png"/><div>less_equal</div></div><div class="ligature"><img src="less_equal_equal.png"/><div>less_equal_equal</div></div><div class="ligature"><img src="less_equal_greater.png"/><div>less_equal_greater</div></div><div class="ligature"><img src="less_equal_less.png"/><div>less_equal_less</div></div><div class="ligature"><img src="less_exclam_hyphen_hyphen.png"/><div>less_exclam_hyphen_hyphen</div></div><div class="ligature"><img src="less_hyphen.png"/><div>less_hyphen</div></div><div class="ligature"><img src="less_hyphen_greater.png"/><div>less_hyphen_greater</div></div><div class="ligature"><img src="less_hyphen_hyphen.png"/><div>less_hyphen_hyphen</div></div><div class="ligature"><img src="less_slash.png"/><div>less_slash</div></div><div class="ligature"><img src="plus_equal.png"/><div>plus_equal</div></div><div class="ligature"><img src="plus_plus.png"/><div>plus_plus</div></div><div class="ligature"><img src="question_question.png"/><div>question_question</div></div><div class="ligature"><img src="slash_greater.png"/><div>slash_greater</div></div><div class="ligature"><img src="underscore_underscore.png"/><div>underscore_underscore</div></div><div class="ligature"><img src="w_w_w.png"/><div>w_w_w</div></div></div></body></html>
<div class="ligature"><img src="ampersand_ampersand.png"/><div>ampersand_ampersand</div></div><div class="ligature"><img src="asterisk_equal.png"/><div>asterisk_equal</div></div><div class="ligature"><img src="bar_bar.png"/><div>bar_bar</div></div><div class="ligature"><img src="bar_greater.png"/><div>bar_greater</div></div><div class="ligature"><img src="colon_colon.png"/><div>colon_colon</div></div><div class="ligature"><img src="colon_equal.png"/><div>colon_equal</div></div><div class="ligature"><img src="equal_equal.png"/><div>equal_equal</div></div><div class="ligature"><img src="equal_equal_equal.png"/><div>equal_equal_equal</div></div><div class="ligature"><img src="equal_equal_greater.png"/><div>equal_equal_greater</div></div><div class="ligature"><img src="equal_greater.png"/><div>equal_greater</div></div><div class="ligature"><img src="equal_less_less.png"/><div>equal_less_less</div></div><div class="ligature"><img src="exclam_equal.png"/><div>exclam_equal</div></div><div class="ligature"><img src="exclam_equal_equal.png"/><div>exclam_equal_equal</div></div><div class="ligature"><img src="exclam_exclam.png"/><div>exclam_exclam</div></div><div class="ligature"><img src="greater_equal.png"/><div>greater_equal</div></div><div class="ligature"><img src="greater_equal_greater.png"/><div>greater_equal_greater</div></div><div class="ligature"><img src="greater_greater.png"/><div>greater_greater</div></div><div class="ligature"><img src="greater_greater_equal.png"/><div>greater_greater_equal</div></div><div class="ligature"><img src="hyphen_equal.png"/><div>hyphen_equal</div></div><div class="ligature"><img src="hyphen_greater.png"/><div>hyphen_greater</div></div><div class="ligature"><img src="hyphen_hyphen.png"/><div>hyphen_hyphen</div></div><div class="ligature"><img src="hyphen_hyphen_greater.png"/><div>hyphen_hyphen_greater</div></div><div class="ligature"><img src="less_bar.png"/><div>less_bar</div></div><div class="ligature"><img src="less_equal.png"/><div>less_equal</div></div><div class="ligature"><img src="less_equal_equal.png"/><div>less_equal_equal</div></div><div class="ligature"><img src="less_equal_greater.png"/><div>less_equal_greater</div></div><div class="ligature"><img src="less_equal_less.png"/><div>less_equal_less</div></div><div class="ligature"><img src="less_exclam_hyphen_hyphen.png"/><div>less_exclam_hyphen_hyphen</div></div><div class="ligature"><img src="less_hyphen.png"/><div>less_hyphen</div></div><div class="ligature"><img src="less_hyphen_greater.png"/><div>less_hyphen_greater</div></div><div class="ligature"><img src="less_hyphen_hyphen.png"/><div>less_hyphen_hyphen</div></div><div class="ligature"><img src="less_less.png"/><div>less_less</div></div><div class="ligature"><img src="less_less_equal.png"/><div>less_less_equal</div></div><div class="ligature"><img src="less_slash.png"/><div>less_slash</div></div><div class="ligature"><img src="less_slash_greater.png"/><div>less_slash_greater</div></div><div class="ligature"><img src="plus_equal.png"/><div>plus_equal</div></div><div class="ligature"><img src="plus_plus.png"/><div>plus_plus</div></div><div class="ligature"><img src="question_question.png"/><div>question_question</div></div><div class="ligature"><img src="quotedbl_quotedbl_quotedbl.png"/><div>quotedbl_quotedbl_quotedbl</div></div><div class="ligature"><img src="quotesingle_quotesingle_quotesingle.png"/><div>quotesingle_quotesingle_quotesingle</div></div><div class="ligature"><img src="semicolon_semicolon.png"/><div>semicolon_semicolon</div></div><div class="ligature"><img src="slash_equal.png"/><div>slash_equal</div></div><div class="ligature"><img src="slash_greater.png"/><div>slash_greater</div></div><div class="ligature"><img src="underscore_underscore.png"/><div>underscore_underscore</div></div><div class="ligature"><img src="w_w_w.png"/><div>w_w_w</div></div></div></body></html>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 673 B

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 724 B

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 869 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 386 B

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 748 B

After

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

+4 -6
View File
@@ -57,16 +57,14 @@ const buildFont = (profile, options) => {
.map((name) => mapLigatures(name, profile.ligatures))
.filter((entry) => filterGlyphsExists(entry));
const ligaturesWithLIG = ligatures;
//[...ligatures, { name: 'LIG', glyph: 'LIG' }];
processPatch('names', patchNames, dom, ligatures, profile);
processPatch('charstrings', patchCharStrings, dom, ligaturesWithLIG);
processPatch('glyphs', patchGlyphs, dom, ligaturesWithLIG);
processPatch('charstrings', patchCharStrings, dom, ligatures);
processPatch('glyphs', patchGlyphs, dom, ligatures);
processPatch('hmtx', patchHmtx, dom);
const feature = calt.gencalt(ligatures);
fs.writeFileSync('./features/calt.fea', feature);
const feature = calt.gencalt(ligatures);
fs.writeFileSync('./features/calt.fea', feature);
console.log(`Writing ligature font file ${dstFileName}`);
fs.writeFileSync(dstFileName, format(serialize(dom)));
@@ -1,7 +1,7 @@
<Glyph name="ampersand.spacer" lsb="0" width="625">
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,37 +1,37 @@
<Glyph name="ampersand_ampersand.liga" lsb="-449" width="625">
<Glyph name="ampersand_ampersand.liga" lsb="-525" width="625">
<CharString>
-16 127 451 142 hstem
-449 149 267 131 23 160 166 131 vstem
491 224 rmoveto
32 59 33 78 22 75 -131 16 rcurveline
-16 127 451 142 hstemhm
-525 148 -58 160 320 160 hintmask 11011000
-42 194 rmoveto
-4 5 -16 20 -4 5 32 59 34 78 22 75 -132 16 rcurveline
-8 -39 -13 -48 -14 -44 rrcurveto
-88 104 -43 47 33 vvcurveto
44 30 18 133 -5 vhcurveto
-10 142 rlineto
-238 4 -75 -102 -102 vvcurveto
-43 20 -41 36 -51 vhcurveto
-79 -50 -50 -54 -13 -71 -24 30 rcurveline
32 59 33 78 22 75 -131 16 rcurveline
-8 -39 -13 -48 -14 -44 rrcurveto
-88 104 -43 47 33 vvcurveto
44 30 18 133 -5 vhcurveto
-10 142 rlineto
-88 104 -42 48 33 vvcurveto
1 43 30 18 132 -5 -10 142 rcurveline
-238 4 -75 -102 -102 vvcurveto
-43 20 -41 36 -51 vhcurveto
hintmask 11101000
-94 -59 -52 -65 -93 vvcurveto
-96 59 -72 121 69 68 31 68 52 vhcurveto
-68 62 108 -31 121 hhcurveto
69 68 31 68 52 hvcurveto
23 -30 24 -33 25 -36 130 96 rcurveline
-41 55 -37 47 -33 42 rrcurveto
-724 -113 rmoveto
-41 55 -37 47 -33 42 32 59 33 78 22 75 -131 16 rcurveline
-8 -39 -13 -48 -14 -44 rrcurveto
-88 104 -43 47 33 vvcurveto
44 30 18 133 -5 vhcurveto
-10 142 rlineto
-238 4 -75 -102 -102 vvcurveto
-43 20 -41 36 -51 vhcurveto
-43 -27 -43 -33 -28 -44 -14 -22 -10 -23 -5 -26 rrcurveto
-181 -24 rmoveto
-40 -27 -27 -19 -33 hhcurveto
-45 -22 33 42 39 18 36 37 32 hvcurveto
28 -35 33 -40 38 -48 rrcurveto
-40 -27 -27 -19 -33 hhcurveto
480 hmoveto
-45 -22 33 42 39 18 36 37 32 hvcurveto
28 -35 33 -40 38 -48 rrcurveto
-40 -27 -27 -19 -33 hhcurveto
481 hmoveto
-22 -33 -30 -30 -43 4 rrcurveto
-40 3 -20 32 40 vvcurveto
39 18 36 37 32 vhcurveto
28 -35 34 -40 38 -48 rrcurveto
endchar
</CharString>
<Subrs/>
@@ -0,0 +1,7 @@
<Glyph name="asterisk.spacer" lsb="0" width="625">
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -0,0 +1,15 @@
<Glyph name="asterisk_equal.liga" lsb="-559" width="625">
<CharString>
152 132 110 132 hstem
-559 550 vstem
477 526 rmoveto
-466 -132 466 hlineto
-110 vmoveto
-466 -132 466 hlineto
-670 -82 rmoveto
91 56 -59 152 152 65 -25 103 -163 -11 -13 165 -108 8 -41 -160 -157 41 -43 -99 139 -91 -85 -136 80 -71 127 103 rlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,7 +1,7 @@
<Glyph name="bar.spacer" lsb="0" width="625">
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,9 +1,10 @@
<Glyph name="bar_bar.liga" lsb="-308" width="625">
<Glyph name="bar_bar.liga" lsb="-267" width="625">
<CharString>
-308 149 318 149 vstem
-308 794 rmoveto
774 -20 hstem
-267 149 236 149 vstem
118 794 rmoveto
-998 149 1010 vlineto
318 -12 rmoveto
-534 -12 rmoveto
-998 149 1010 vlineto
endchar
</CharString>
@@ -1,14 +1,14 @@
<Glyph name="bar_greater.liga" lsb="-304" width="625">
<Glyph name="bar_greater.liga" lsb="-341" width="625">
<CharString>
-304 652 vstem
-304 794 rmoveto
-998 149 vlineto
503 472 rlineto
129 vlineto
-503 409 rlineto
-820 vmoveto
637 vlineto
362 -284 rlineto
-181 -21 216 -21 815 -20 hstem
-341 149 vstem
342 391 rmoveto
-534 405 -149 12 rlineto
-1010 149 vlineto
534 463 rlineto
-534 -268 rmoveto
626 vlineto
393 -285 rlineto
-14 vlineto
endchar
</CharString>
@@ -1,7 +1,7 @@
<Glyph name="colon.spacer" lsb="0" width="625">
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -0,0 +1,27 @@
<Glyph name="colon_colon.liga" lsb="-302" width="625">
<CharString>
0 183 163 183 hstemhm
-295 208 -202 207 172 208 -202 207 hintmask 11010100
300 346 rmoveto
3 183 rlineto
-207 hlineto
-3 -183 rlineto
198 -346 rmoveto
hintmask 11011000
7 183 rlineto
-208 hlineto
-7 -183 rlineto
-168 346 rmoveto
3 183 rlineto
-207 hlineto
-3 -183 rlineto
198 -346 rmoveto
hintmask 11100100
7 183 rlineto
-208 hlineto
-7 -183 rlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,19 +1,20 @@
<Glyph name="colon_equal.liga" lsb="-450" width="625">
<Glyph name="colon_equal.liga" lsb="-442" width="625">
<CharString>
126 183 60 183 hstem
-450 907 vstem
-243 369 rmoveto
3 183 rlineto
-207 hlineto
-3 -183 rlineto
876 157 rmoveto
-566 -132 566 hlineto
-669 -268 rmoveto
3 183 rlineto
-207 hlineto
-3 -183 rlineto
876 158 rmoveto
-566 -132 566 hlineto
126 183 -157 132 85 183 -158 132 hstemhm
-441 206 hintmask 01011000
-128 152 rmoveto
566 132 -566 hlineto
110 vmoveto
566 132 -566 hlineto
hintmask 10101000
-107 -400 rmoveto
2 183 rlineto
-208 hlineto
-1 -183 rlineto
207 243 rmoveto
2 183 rlineto
-208 hlineto
-1 -183 rlineto
endchar
</CharString>
<Subrs/>
@@ -1,7 +1,7 @@
<Glyph name="equal.spacer" lsb="0" width="625">
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,17 +0,0 @@
<Glyph name="equal_equal.2.liga" lsb="-546" width="625">
<CharString>
152 132 110 132 hstem
-546 1091 vstem
-30 526 rmoveto
-516 -132 516 hlineto
575 132 rmoveto
-516 -132 516 hlineto
-575 -110 rmoveto
-516 -132 516 hlineto
575 132 rmoveto
-516 -132 516 hlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -0,0 +1,17 @@
<Glyph name="equal_equal.liga.ss11" lsb="-546" width="625">
<CharString>
152 132 110 132 hstem
-546 516 59 516 vstem
-546 152 rmoveto
516 132 -516 hlineto
575 -132 rmoveto
516 132 -516 hlineto
-575 110 rmoveto
516 132 -516 hlineto
575 -132 rmoveto
516 132 -516 hlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,10 +1,9 @@
<Glyph name="equal_equal.liga" lsb="-546" width="625">
<CharString>
152 132 110 132 hstem
-546 1091 vstem
545 526 rmoveto
545 284 rmoveto
-1091 -132 1091 hlineto
-110 vmoveto
374 vmoveto
-1091 -132 1091 hlineto
endchar
</CharString>
@@ -1,21 +0,0 @@
<Glyph name="equal_equal_equal.2.liga" lsb="-1171" width="625">
<CharString>
152 132 110 132 hstem
-1171 1716 vstem
-655 526 rmoveto
-516 -132 516 hlineto
600 132 rmoveto
-516 -132 516 hlineto
600 132 rmoveto
-516 -132 516 hlineto
-1200 -110 rmoveto
-516 -132 516 hlineto
600 132 rmoveto
-516 -132 516 hlineto
600 132 rmoveto
-516 -132 516 hlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -0,0 +1,20 @@
<Glyph name="equal_equal_equal.liga.ss11" lsb="-1171" width="625">
<CharString>
152 132 110 132 hstem
-1171 152 rmoveto
516 132 -516 hlineto
600 -132 rmoveto
516 132 -516 hlineto
600 -132 rmoveto
516 132 -516 hlineto
-1200 110 rmoveto
516 132 -516 hlineto
600 -132 rmoveto
516 132 -516 hlineto
600 -132 rmoveto
516 132 -516 hlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,13 +1,13 @@
<Glyph name="equal_equal_equal.liga" lsb="-1091" width="625">
<Glyph name="equal_equal_equal.liga" lsb="-1171" width="625">
<CharString>
273 132 110 132 hstem
-1091 1636 vstem
545 647 rmoveto
-1636 -132 1636 hlineto
-110 vmoveto
-1636 -132 1636 hlineto
-110 vmoveto
-1636 -132 1636 hlineto
31 132 110 132 110 132 hstem
cntrmask 11100000
-1171 515 rmoveto
1716 132 -1716 hlineto
-374 vmoveto
1716 132 -1716 hlineto
-374 vmoveto
1716 132 -1716 hlineto
endchar
</CharString>
<Subrs/>
@@ -1,19 +1,17 @@
<Glyph name="equal_equal_greater.liga" lsb="-1171" width="625">
<CharString>
152 132 110 132 hstemhm
-1171 1712 -141 141 hintmask 11100000
89 579 rmoveto
69 -53 rlineto
-9 -21 182 132 110 132 167 -20 hstem
400 141 vstem
171 -30 rmoveto
370 298 rlineto
129 vlineto
-364 296 -88 -114 69 -53 rlineto
-1329 -132 1500 hlineto
hintmask 11010000
71 -55 rlineto
-14 vlineto
-53 -41 rlineto
hintmask 11100000
-1518 -132 1349 hlineto
-90 -70 83 -112 370 298 rlineto
129 vlineto
-364 296 rlineto
-90 -70 rlineto
endchar
</CharString>
<Subrs/>
@@ -1,19 +1,17 @@
<Glyph name="equal_greater.liga" lsb="-546" width="625">
<CharString>
152 132 110 132 hstemhm
-546 1087 -141 141 hintmask 11100000
89 579 rmoveto
69 -53 rlineto
-9 -21 182 132 110 132 167 -20 hstem
400 141 vstem
171 -30 rmoveto
370 298 rlineto
129 vlineto
-364 296 -88 -114 69 -53 rlineto
-704 -132 875 hlineto
hintmask 11010000
71 -55 rlineto
-14 vlineto
-53 -41 rlineto
hintmask 11100000
-893 -132 724 hlineto
-90 -70 83 -112 370 298 rlineto
129 vlineto
-364 296 rlineto
-90 -70 rlineto
endchar
</CharString>
<Subrs/>
@@ -1,31 +1,19 @@
<Glyph name="equal_less_less.liga" lsb="-1171" width="625">
<CharString>
152 132 110 132 hstemhm
-1171 1712 -872 141 278 141 hintmask 11010000
122 582 rmoveto
-83 112 -209 -168 rlineto
hintmask 11100000
-1001 -132 hlineto
hintmask 11010000
840 -110 hlineto
hintmask 11100000
-840 -132 hlineto
hintmask 11010000
981 hlineto
-8 -21 181 132 110 132 148 -20 40 -20 hstem
-327 141 274 141 vstem
43 694 rmoveto
-209 -168 rlineto
-1005 -132 844 -110 -844 -132 985 hlineto
223 -181 88 113 -311 241 rlineto
14 vlineto
hintmask 11100000
731 243 rmoveto
-83 112 rlineto
hintmask 11011000
312 243 rlineto
332 112 rmoveto
-370 -298 rlineto
-130 vlineto
364 -295 rlineto
hintmask 11100000
88 113 rlineto
hintmask 11011000
-311 241 rlineto
364 -295 88 113 -311 241 rlineto
14 vlineto
312 243 rlineto
endchar
</CharString>
<Subrs/>
@@ -1,7 +1,7 @@
<Glyph name="exclam.spacer" lsb="0" width="625">
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,26 +1,16 @@
<Glyph name="exclam_equal.liga" lsb="-546" width="625">
<CharString>
-235 1073 -686 132 110 132 hstemhm
-546 1091 -864 636 hintmask 01110000
-214 -21 387 132 110 132 292 -20 hstem
545 526 rmoveto
-351 hlineto
hintmask 01101000
123 248 rlineto
hintmask 10001000
-135 64 rlineto
hintmask 01101000
-155 -312 rlineto
-573 -132 508 hlineto
-348 hlineto
123 248 -135 64 -155 -312 rlineto
-576 -132 510 hlineto
-55 -110 rlineto
-453 -132 387 hlineto
-160 -323 rlineto
hintmask 10001000
136 -64 rlineto
hintmask 01101000
192 387 rlineto
536 132 -471 hlineto
55 110 rlineto
416 hlineto
-455 -132 390 hlineto
-161 -323 136 -64 192 387 rlineto
534 132 -468 hlineto
54 110 rlineto
414 hlineto
endchar
</CharString>
<Subrs/>
@@ -1,21 +1,20 @@
<Glyph name="exclam_equal_equal.liga" lsb="-1091" width="625">
<Glyph name="exclam_equal_equal.liga" lsb="-1171" width="625">
<CharString>
273 132 110 132 hstem
-1091 1636 vstem
545 647 rmoveto
-563 hlineto
63 127 -135 64 -95 -191 rlineto
-906 -132 841 hlineto
-214 -21 266 132 110 132 110 132 171 -20 hstem
-125 838 rmoveto
-95 -191 rlineto
-951 -132 886 hlineto
-55 -110 rlineto
-786 -132 720 hlineto
-831 -132 765 hlineto
-54 -110 rlineto
-666 -132 600 hlineto
-711 -132 645 hlineto
-100 -202 136 -64 132 266 rlineto
868 132 -803 hlineto
903 132 -838 hlineto
55 110 rlineto
748 132 -683 hlineto
783 132 -718 hlineto
55 110 rlineto
628 hlineto
663 132 -598 hlineto
63 127 rlineto
endchar
</CharString>
<Subrs/>
@@ -0,0 +1,25 @@
<Glyph name="exclam_exclam.liga" lsb="-349" width="625">
<CharString>
0 169 hstem
-347 193 296 193 vstem
298 284 rmoveto
55 469 rlineto
-202 hlineto
41 -469 rlineto
141 -284 rmoveto
4 169 rlineto
-193 hlineto
-4 -169 rlineto
-331 284 rmoveto
55 469 rlineto
-202 hlineto
41 -469 rlineto
141 -284 rmoveto
4 169 rlineto
-193 hlineto
-4 -169 rlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,7 +1,7 @@
<Glyph name="greater.spacer" lsb="0" width="625">
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,16 +0,0 @@
<Glyph name="greater_equal.2.liga" lsb="-409" width="625">
<CharString>
-397 805 vstem
-402 -64 rmoveto
803 332 rlineto
129 vlineto
-763 311 -47 -129 589 -240 rlineto
-14 vlineto
-582 -243 rlineto
803 -208 rmoveto
-803 -127 803 hlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -0,0 +1,16 @@
<Glyph name="greater_equal.liga.ss12" lsb="-414" width="625">
<CharString>
-183 119 743 -20 hstem
223 184 vstem
407 393 rmoveto
-760 306 -61 -118 637 -240 rlineto
-17 vlineto
-637 -193 50 -122 774 267 rlineto
9 -340 rmoveto
-833 -1 rlineto
-118 836 vlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,14 +1,13 @@
<Glyph name="greater_equal.liga" lsb="-409" width="625">
<Glyph name="greater_equal.liga" lsb="-414" width="625">
<CharString>
-397 805 vstem
-355 -45 rmoveto
756 313 rlineto
129 vlineto
-763 311 -47 -129 589 -240 rlineto
-14 vlineto
-582 -243 rlineto
803 75 rmoveto
-803 -335 47 -127 756 313 rlineto
-179 -21 879 -20 hstem
223 184 vstem
407 393 rmoveto
-760 306 -61 -118 637 -240 rlineto
-17 vlineto
-637 -193 50 -122 774 267 rlineto
2 -68 rmoveto
-826 -286 50 -122 779 276 rlineto
endchar
</CharString>
<Subrs/>
@@ -1,28 +1,23 @@
<Glyph name="greater_equal_greater.liga" lsb="-1162" width="625">
<CharString>
152 132 110 132 hstemhm
-1162 1703 -1391 141 1109 141 hintmask 11010000
89 579 rmoveto
69 -53 rlineto
-9 -21 182 132 110 132 147 -20 40 -20 hstem
-850 141 1109 141 vstem
171 -30 rmoveto
370 298 rlineto
129 vlineto
-364 296 -88 -114 69 -53 rlineto
-1026 hlineto
-205 167 rlineto
hintmask 11100000
-88 -114 rlineto
hintmask 11010000
311 -240 rlineto
-205 167 -88 -114 311 -240 rlineto
-14 vlineto
hintmask 11100000
-312 -243 83 -112 226 182 rlineto
1031 hlineto
-90 -70 83 -112 370 298 rlineto
129 vlineto
-364 296 rlineto
170 -409 rmoveto
hintmask 11010000
-1056 110 1038 hlineto
hintmask 11011000
-90 -70 rlineto
-797 312 rmoveto
1038 hlineto
71 -55 rlineto
-14 vlineto
-53 -41 rlineto
-1056 hlineto
endchar
</CharString>
<Subrs/>
@@ -0,0 +1,21 @@
<Glyph name="greater_greater.liga" lsb="-432" width="625">
<CharString>
-9 -21 703 -20 hstem
-120 141 274 141 vstem
66 -30 rmoveto
370 298 rlineto
129 vlineto
-364 296 -88 -114 311 -240 rlineto
-14 vlineto
-312 -243 rlineto
-332 -112 rmoveto
370 298 rlineto
129 vlineto
-364 296 -88 -114 311 -240 rlineto
-14 vlineto
-312 -243 rlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,32 +1,19 @@
<Glyph name="greater_greater_equal.liga" lsb="-1162" width="625">
<CharString>
152 132 110 132 hstemhm
-1162 1707 -1395 141 279 141 hintmask 11011000
-1073 693 rmoveto
hintmask 11100000
-88 -114 rlineto
hintmask 11011000
311 -240 rlineto
-14 vlineto
hintmask 11100000
-312 -243 83 -112 rlineto
hintmask 11011000
370 298 rlineto
129 vlineto
hintmask 11100000
1254 129 rmoveto
-993 hlineto
-205 167 -88 -114 rlineto
hintmask 11011000
311 -240 rlineto
-9 -21 182 132 110 132 147 -20 hstem
-850 141 274 141 vstem
545 394 rmoveto
132 -998 vlineto
-205 167 -88 -114 311 -240 rlineto
-14 vlineto
-312 -243 83 -112 226 182 rlineto
hintmask 11100000
978 132 hlineto
hintmask 11011000
-834 110 hlineto
hintmask 11100000
834 hlineto
983 132 -839 110 hlineto
-785 -424 rmoveto
370 298 rlineto
129 vlineto
-364 296 -88 -114 311 -240 rlineto
-14 vlineto
-312 -243 rlineto
endchar
</CharString>
<Subrs/>
@@ -1,7 +1,7 @@
<Glyph name="hyphen.spacer" lsb="0" width="625">
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
<CharString>
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -0,0 +1,16 @@
<Glyph name="hyphen_equal.liga" lsb="-478" width="625">
<CharString>
152 132 -14 132 -8 132 hstemhm
hintmask 10100000
477 526 rmoveto
-466 -132 466 hlineto
-110 vmoveto
-466 -132 466 hlineto
hintmask 01000000
-489 250 rmoveto
-466 -132 466 hlineto
endchar
</CharString>
<Subrs/>
<GlobalSubrs/>
</Glyph>
@@ -1,13 +1,13 @@
<Glyph name="hyphen_greater.liga" lsb="-489" width="625">
<CharString>
269 134 hstem
-489 1030 vstem
89 579 rmoveto
228 -176 rlineto
-806 -134 817 hlineto
-240 -187 83 -112 370 298 rlineto
-9 -21 299 134 290 -20 hstem
400 141 vstem
171 -30 rmoveto
370 298 rlineto
129 vlineto
-364 296 rlineto
-364 296 -88 -114 228 -176 rlineto
-806 -134 817 hlineto
-240 -187 rlineto
endchar
</CharString>
<Subrs/>
@@ -1,10 +1,9 @@
<Glyph name="hyphen_hyphen.liga" lsb="-415" width="625">
<Glyph name="hyphen_hyphen.liga" lsb="-429" width="625">
<CharString>
269 134 hstem
-415 361 108 361 vstem
-54 403 rmoveto
437 403 rmoveto
-361 -134 347 hlineto
483 134 rmoveto
-491 134 rmoveto
-361 -134 347 hlineto
endchar
</CharString>

Some files were not shown because too many files have changed in this diff Show More