From 697f6ee0feac4f6436f5e07954f388171c88c227 Mon Sep 17 00:00:00 2001 From: Simon Cozens Date: Fri, 19 Apr 2024 12:32:04 +0100 Subject: [PATCH 1/4] More soft dotting --- sources/config.yaml | 2 +- sources/features.fea | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) 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; From cfb832bcc71ca63b1238069d6c2c06de521072aa Mon Sep 17 00:00:00 2001 From: Simon Cozens Date: Fri, 19 Apr 2024 12:32:13 +0100 Subject: [PATCH 2/4] Rebuild font when features changes --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From 9151620888e405204ed2629b6c2150fcdeb8230f Mon Sep 17 00:00:00 2001 From: Simon Cozens Date: Fri, 19 Apr 2024 12:32:20 +0100 Subject: [PATCH 3/4] More anchor attachment --- sources/tiny5-Medium.sfd | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) 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 From f0b19d80747d23f3e62763be85048700d7d8d8c5 Mon Sep 17 00:00:00 2001 From: Simon Cozens Date: Fri, 19 Apr 2024 12:32:29 +0100 Subject: [PATCH 4/4] Rebuilt font --- fonts/ttf/tiny5-Medium.ttf | Bin 104384 -> 132128 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/fonts/ttf/tiny5-Medium.ttf b/fonts/ttf/tiny5-Medium.ttf index 33322798093b1ac0731fd97d8d975be7fe495867..bd416ece22203cd2cddfb083d9446afa088d63e5 100644 GIT binary patch delta 41286 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 delta 18181 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

_?=>*fFHP zLN{VNMztf=R4-DW>H~^RQ9I+lSnZ8;x;h;>i`6AaH>kHD-KcI-Ix+Qa6|=^kw$e> zZ-8$2xqu@NpKKBR1;HP?xbqhl9H`{l_u@Jvul@G@@@aQ0hw}B@L-yVB{*e8kEZvLd zbA{&wE1tRoRQd=sNK+L1W_)hN=Z023S0OKoPmS^YXM9thnU5dc%X0d@3cD`>5&D&t zH_$>HlM8WNF2v7rA%2kyaY7RRH%a`HNv6X=LM6& z?*)@FE6t7BXm0SEz+~8p0+TT(&6Bxkp3F^5#yrGQ%u8&L~nX)zg*?c!%nsnD7$MT#U0u5s;p7ojOjV8}B zo)@o2_4UtYDNJZ1D+e`!OYyN(sc;eUTRoA(eqpK+Kn8Pm~|4$_v8M!yiTeo z@lEZS&%0H+)?zSJLKoGEl{X-RiVoqkS3Qn~Hqf{H7#L@s#>X*z;7=on0hFGV1$rb2;8aPPba*zpc zNCFcrj-W#td~5>xgiu10JA|%@4l-?!V>)h8V=EaO5Y~rYFlS4R(HzY6+kipn3wIsr zU~Q=^@q;c-#&cl;qPWORQyRrLLo5(BoU&wk8U^wJ35qDC|EPXX2pgNEdX7x#9(plK zbxzBBN)^SpM?O=jO_b7oRBwS&{D4EImZsBpQdSKWX1Dey*9@H>Cnebw%q)-{C_~czBo{qvaDS#?^ozbwfeNjG? z>@D&};xkE>sYXs2o+cPM)Weu+1+Y;Wqq=2^p(tZ4>rla>99CzkWMdg>P)eA`4gld- cQ`IyzQ*DQ5hnl5kt8LX>HBT*3dnwBQ0UD@N!vFvP