diff --git a/Makefile b/Makefile index 91972fe..da3485f 100644 --- a/Makefile +++ b/Makefile @@ -23,7 +23,7 @@ venv-test: venv-test/touchfile customize: venv . venv/bin/activate; python3 scripts/customize.py -build.stamp: venv sources/config.yaml $(SOURCES) +build.stamp: venv sources/config.yaml $(SOURCES) sources/features.fea rm -rf fonts (for config in sources/config*.yaml; do . venv/bin/activate; gftools builder $$config; done) && touch build.stamp diff --git a/fonts/ttf/tiny5-Medium.ttf b/fonts/ttf/tiny5-Medium.ttf index 3332279..bd416ec 100644 Binary files a/fonts/ttf/tiny5-Medium.ttf and b/fonts/ttf/tiny5-Medium.ttf differ diff --git a/sources/config.yaml b/sources/config.yaml index c97429a..c0b27e7 100644 --- a/sources/config.yaml +++ b/sources/config.yaml @@ -12,7 +12,7 @@ recipe: args: --filter '...' --filter FlattenComponentsFilter --filter DecomposeTransformedComponentsFilter - operation: exec exe: fonttools - args: feaLib features.fea $in -o $out -t GSUB + args: feaLib features.fea $in -o $out -t GSUB GDEF - operation: autohint - operation: fix args: --include-source-fixes --rename-family "Tiny5" diff --git a/sources/features.fea b/sources/features.fea index 8cae308..41b2925 100644 --- a/sources/features.fea +++ b/sources/features.fea @@ -1,15 +1,25 @@ languagesystem DFLT dflt; languagesystem latn dflt; +@all_marks = [gravecomb acutecomb uni0302 tildecomb uni0304 uni0306 uni0307 uni0308 uni030A uni030B uni030C uni030D uni030F uni0310 uni0311 uni0313 uni0325 uni0326 uni0327 uni0328 uni0329 uni032D uni032F uni0330 uni0331 uni0334 uni0358 uni1DC4 uni1DC5 uni1DC6 uni1DC7 uni1DCA dotbelowcomb uni0324 uni032E ]; +@topaccents = [gravecomb acutecomb uni0302 tildecomb uni0304 uni0306 uni0307 uni0308 uni030A uni030B uni030C uni030D uni030F uni0310 uni0311 uni0313 uni1DC4 uni1DC5 uni1DC6 uni1DC7]; + +table GDEF { + GlyphClassDef [], [], @all_marks, []; +} GDEF; + feature ccmp { lookup decomposition { sub iogonek by i ogonek; sub uni1ECB by i dotbelowcomb; sub uni1E2D by i uni0330; + sub afii10103 by i; } decomposition; lookup softdot { - sub j' [acutecomb gravecomb tildecomb uni0308 uni0304 uni0311] by uni0237; - sub i' [uni030A uni030B uni030D uni0310 uni0313 uni1DC6 uni1DC7] by dotlessi; + lookupflag UseMarkFilteringSet @topaccents; + sub j' @topaccents by uni0237; + sub i' @topaccents by dotlessi; + sub uni0268' @topaccents by uni1D7B; } softdot; } ccmp; diff --git a/sources/tiny5-Medium.sfd b/sources/tiny5-Medium.sfd index e9a7746..5751383 100644 --- a/sources/tiny5-Medium.sfd +++ b/sources/tiny5-Medium.sfd @@ -2340,8 +2340,8 @@ GlifName: i Width: 256 GlyphClass: 1 Flags: W -AnchorPoint: "foot" 0 0 basechar 0 AnchorPoint: "top" 0 512 basechar 0 +AnchorPoint: "foot" 0 0 basechar 0 AnchorPoint: "bottom" 0 0 basechar 0 LayerCount: 2 Fore @@ -8092,6 +8092,7 @@ GlifName: uni019C_ Width: 768 GlyphClass: 1 Flags: W +AnchorPoint: "top" 256 640 basechar 0 LayerCount: 2 Fore SplineSet @@ -8179,6 +8180,8 @@ GlifName: uni019F_ Width: 640 GlyphClass: 1 Flags: W +AnchorPoint: "bottom" 256 0 basechar 0 +AnchorPoint: "top" 256 640 basechar 0 LayerCount: 2 Fore SplineSet @@ -8395,6 +8398,7 @@ GlifName: uni01B_1 Width: 768 GlyphClass: 1 Flags: W +AnchorPoint: "top" 256 640 basechar 0 LayerCount: 2 Fore SplineSet @@ -8812,6 +8816,7 @@ GlifName: uni01C_D_ Width: 640 GlyphClass: 1 Flags: W +AnchorPoint: "bottom" 256 0 basechar 0 LayerCount: 2 Fore SplineSet @@ -8840,6 +8845,7 @@ GlifName: uni01C_E_ Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "bottom" 128 0 basechar 0 LayerCount: 2 Fore Refer: 515 711 N 1 0 0 1 0 256 2 @@ -8876,6 +8882,7 @@ GlifName: uni01D_1 Width: 640 GlyphClass: 1 Flags: W +AnchorPoint: "bottom" 256 0 basechar 0 LayerCount: 2 Fore SplineSet @@ -8904,6 +8911,7 @@ GlifName: uni01D_2 Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "bottom" 128 0 basechar 0 LayerCount: 2 Fore Refer: 515 711 N 1 0 0 1 0 256 2 @@ -8916,6 +8924,7 @@ GlifName: uni01D_3 Width: 640 GlyphClass: 1 Flags: W +AnchorPoint: "bottom" 256 0 basechar 0 LayerCount: 2 Fore SplineSet @@ -8944,6 +8953,7 @@ GlifName: uni01D_4 Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "bottom" 128 0 basechar 0 LayerCount: 2 Fore Refer: 515 711 N 1 0 0 1 0 256 2 @@ -9075,6 +9085,8 @@ Width: 512 GlyphClass: 1 Flags: W AnchorPoint: "top" 128 512 basechar 0 +AnchorPoint: "foot" 256 0 basechar 0 +AnchorPoint: "bottom" 128 0 basechar 0 LayerCount: 2 Fore SplineSet @@ -10608,6 +10620,7 @@ GlifName: uni0245 Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "top" 128 640 basechar 0 LayerCount: 2 Fore SplineSet @@ -11326,6 +11339,8 @@ GlifName: uni0268 Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "foot" 128 0 basechar 0 +AnchorPoint: "bottom" 128 0 basechar 0 LayerCount: 2 Fore SplineSet @@ -11374,6 +11389,7 @@ GlifName: uni026A_ Width: 256 GlyphClass: 1 Flags: W +AnchorPoint: "top" 0 512 basechar 0 LayerCount: 2 Fore SplineSet @@ -11437,6 +11453,7 @@ GlifName: uni026F_ Width: 768 GlyphClass: 1 Flags: W +AnchorPoint: "top" 256 512 basechar 0 LayerCount: 2 Fore SplineSet @@ -11494,6 +11511,7 @@ GlifName: uni0275 Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "top" 128 512 basechar 0 LayerCount: 2 Fore SplineSet @@ -11658,6 +11676,7 @@ GlifName: uni028A_ Width: 768 GlyphClass: 1 Flags: W +AnchorPoint: "top" 256 512 basechar 0 LayerCount: 2 Fore SplineSet @@ -11733,6 +11752,7 @@ GlifName: uni028C_ Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "top" 128 512 basechar 0 LayerCount: 2 Fore SplineSet @@ -13739,6 +13759,7 @@ GlifName: uni1E_1A_ Width: 640 GlyphClass: 1 Flags: W +AnchorPoint: "top" 256 640 basechar 0 LayerCount: 2 Fore Refer: 550 816 N 1 0 0 1 128 -256 2 @@ -13751,6 +13772,7 @@ GlifName: uni1E_1B_ Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "top" 128 512 basechar 0 LayerCount: 2 Fore Refer: 550 816 N 1 0 0 1 128 -256 2 @@ -14005,6 +14027,7 @@ GlifName: uni1E_2C_ Width: 256 GlyphClass: 1 Flags: W +AnchorPoint: "top" 0 640 basechar 0 LayerCount: 2 Fore Refer: 550 816 N 1 0 0 1 0 -256 2 @@ -14937,6 +14960,7 @@ GlifName: uni1E_74 Width: 640 GlyphClass: 1 Flags: W +AnchorPoint: "top" 256 640 basechar 0 LayerCount: 2 Fore Refer: 550 816 N 1 0 0 1 128 -256 2 @@ -14949,6 +14973,7 @@ GlifName: uni1E_75 Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "top" 128 512 basechar 0 LayerCount: 2 Fore Refer: 550 816 N 1 0 0 1 128 -256 2 @@ -15504,6 +15529,8 @@ Width: 640 GlyphClass: 1 Flags: W AnchorPoint: "top" 128 896 basechar 0 +AnchorPoint: "foot" 256 0 basechar 0 +AnchorPoint: "bottom" 256 0 basechar 0 LayerCount: 2 Fore Refer: 524 732 N 1 0 0 1 128 256 2 @@ -15517,6 +15544,8 @@ Width: 512 GlyphClass: 1 Flags: W AnchorPoint: "top" 128 768 basechar 0 +AnchorPoint: "foot" 256 0 basechar 0 +AnchorPoint: "bottom" 128 0 basechar 0 LayerCount: 2 Fore Refer: 524 732 N 1 0 0 1 128 128 2 @@ -19877,6 +19906,7 @@ GlifName: uni2C_6D_ Width: 640 GlyphClass: 1 Flags: W +AnchorPoint: "top" 256 640 basechar 0 LayerCount: 2 Fore SplineSet @@ -20205,6 +20235,7 @@ GlifName: uniA_78D_ Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "top" 128 640 basechar 0 LayerCount: 2 Fore SplineSet @@ -20354,6 +20385,7 @@ GlifName: uniA_7A_E_ Width: 512 GlyphClass: 1 Flags: W +AnchorPoint: "top" 128 640 basechar 0 LayerCount: 2 Fore SplineSet @@ -20528,6 +20560,7 @@ GlifName: uniA_7B_6 Width: 768 GlyphClass: 1 Flags: W +AnchorPoint: "top" 256 640 basechar 0 LayerCount: 2 Fore SplineSet @@ -20575,6 +20608,7 @@ GlifName: uniA_7B_7 Width: 768 GlyphClass: 1 Flags: W +AnchorPoint: "top" 256 512 basechar 0 LayerCount: 2 Fore SplineSet @@ -20803,6 +20837,9 @@ Encoding: 7547 7547 902 Width: 512 VWidth: 1152 Flags: W +AnchorPoint: "top" 128 512 basechar 0 +AnchorPoint: "foot" 128 0 basechar 0 +AnchorPoint: "bottom" 128 0 basechar 0 LayerCount: 2 Fore SplineSet