From c305a5fd08a9f80789c6a116da426875c5ba514f Mon Sep 17 00:00:00 2001 From: John McWilliams Date: Thu, 17 Apr 2025 08:33:03 -0400 Subject: [PATCH] Refine glyph shape of `GHookTop`. --- changes/33.2.2.md | 3 +++ .../font-glyphs/src/letter/latin/upper-g.ptl | 13 +++++----- params/variants.toml | 25 ++++++++++++++++--- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/changes/33.2.2.md b/changes/33.2.2.md index faee76f1f..160f9ff7c 100644 --- a/changes/33.2.2.md +++ b/changes/33.2.2.md @@ -1,3 +1,6 @@ * Refine shape of the following characters: + - LATIN CAPITAL LETTER G WITH HOOK (`U+0193`). + - LATIN LETTER SMALL CAPITAL G WITH HOOK (`U+029B`). - THERE DOES NOT EXIST (`U+2204`). + - MODIFIER LETTER SMALL CAPITAL G WITH HOOK (`U+10794`). - MUSICAL SYMBOL DOUBLE SHARP (`U+1D12A`). diff --git a/packages/font-glyphs/src/letter/latin/upper-g.ptl b/packages/font-glyphs/src/letter/latin/upper-g.ptl index 9c0e59d51..1ba441c79 100644 --- a/packages/font-glyphs/src/letter/latin/upper-g.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-g.ptl @@ -24,15 +24,14 @@ glyph-block Letter-Latin-Upper-G : begin define SLAB-NONE 0 define SLAB-LETTER 1 define SLAB-INWARD 2 - define SLAB-HOOK-TOP 10 - define [GShape toothShape slabShape crossBarShape top ada adb hook yBarOverride] : glyph-proc - local yBar : fallback yBarOverride (top * 0.52 + QuarterStroke) + define [GShape toothShape slabShape crossBarShape top ada adb _hook _yBar] : glyph-proc + local hook : fallback _hook Hook + local yBar : fallback _yBar (top * 0.52 + QuarterStroke) local fine ShoulderFine local knots : match slabShape - ([Just SLAB-LETTER] || [Just SLAB-HOOK-TOP]) : begin - SerifedArcStart.RtlLhs RightSB top Stroke hook (slabShape === SLAB-HOOK-TOP) + [Just SLAB-LETTER] : SerifedArcStart.RtlLhs RightSB top Stroke hook [Just SLAB-INWARD] : InwardSlabArcStart.RtlLhs RightSB top Stroke hook __ : list [widths.lhs] [g4 RightSB (top - hook)] [hookstart top] @@ -93,7 +92,7 @@ glyph-block Letter-Latin-Upper-G : begin include : GShape shape slabType crossBarShape CAP ArchDepthA ArchDepthB Hook create-glyph "GHookTop.\(suffix)" : glyph-proc include : MarkSet.capital - include : GShape shape SLAB-HOOK-TOP crossBarShape CAP ArchDepthA ArchDepthB Hook + include : GShape shape slabType crossBarShape CAP ArchDepthA ArchDepthB Hook include : TopHook.toRight.arcStart RightSB CAP Hook include : ExtendAboveBaseAnchors (CAP + Ascender - XH) include : LeaningAnchor.Above.VBar.r RightSB @@ -102,7 +101,7 @@ glyph-block Letter-Latin-Upper-G : begin include : GShape shape slabType crossBarShape XH ArchDepthA ArchDepthB Hook create-glyph "smcpGHookTop.\(suffix)" : glyph-proc include : MarkSet.e - include : GShape shape SLAB-HOOK-TOP crossBarShape XH ArchDepthA ArchDepthB Hook + include : GShape shape slabType crossBarShape XH ArchDepthA ArchDepthB Hook include : TopHook.toRight.arcStart RightSB XH Hook include : ExtendAboveBaseAnchors Ascender include : LeaningAnchor.Above.VBar.r RightSB diff --git a/params/variants.toml b/params/variants.toml index 9d73f0d2d..b5bea4157 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -934,7 +934,7 @@ rank = 3 descriptionAffix = "inward top serif" selectorAffix.G = "inwardSerifed" selectorAffix."G/sansSerif" = "serifless" -selectorAffix.GHookTop = "serifed" +selectorAffix.GHookTop = "inwardSerifed" [prime.capital-g.variants-buildup.stages.hook.hookless] rank = 1 @@ -2864,8 +2864,8 @@ selectorAffix.f = "crossbarAtXHeight" selectorAffix."f/sansSerif" = "crossbarAtXHeight" selectorAffix."f/compLigLeft1" = "crossbarAtXHeight" selectorAffix."f/compLigLeft2" = "crossbarAtXHeight" -selectorAffix."f/compLigLeft3" = "" -selectorAffix."f/compLigLeft4" = "" +selectorAffix."f/compLigLeft3" = "crossbarAtXHeight" +selectorAffix."f/compLigLeft4" = "crossbarAtXHeight" selectorAffix."f/phoneticLeft" = "crossbarAtXHeight" selectorAffix."f/tailless" = "crossbarAtXHeight" selectorAffix.fLenis = "crossbarAtXHeight" @@ -9575,6 +9575,7 @@ j = "serifed" k = "straight-serifless" l = "serifed" r = "serifed" +t = "bent-hook" u = "toothed-serifless" v = "straight-serifless" w = "straight-flat-top-serifless" @@ -10280,6 +10281,7 @@ i = "serifed" j = "serifed" k = "curly-serifless" l = "zshaped" +t = "bent-hook" u = "toothed-serifless" v = "curly-serifless" w = "curly-serifless" @@ -10533,6 +10535,7 @@ capital-v = "straight-serifless" capital-w = "straight-vertical-sides-serifless" a = "double-storey-toothless-corner" b = "toothed-serifless" +d = "toothed-serifless" e = "flat-crossbar" f = "flat-hook-serifless" g = "single-storey-flat-hook-serifless" @@ -10542,6 +10545,7 @@ k = "symmetric-connected-serifless" l = "hooky" q = "straight-serifless" t = "flat-hook" +u = "toothed-serifless" v = "straight-serifless" w = "rounded-vertical-sides-serifless" y = "cursive-flat-hook-serifless" @@ -10575,12 +10579,14 @@ micro-sign = "toothless-rounded-serifless" capital-a = "straight-serifless" a = "single-storey-top-cut-tailed" b = "bottom-cut-serifless" +d = "tailed-serifless" e = "rounded" g = "single-storey-flat-hook-top-cut" i = "serifed-flat-tailed" j = "serifed" l = "serifed-flat-tailed" q = "top-cut-straight-serifless" +u = "tailed-serifless" cyrl-a = "single-storey-top-cut-tailed" cyrl-u = "cursive-flat-hook-serifless" @@ -10592,12 +10598,14 @@ capital-m = "hanging-serifed" capital-v = "straight-serifed" capital-w = "straight-vertical-sides-serifed" b = "toothed-serifed" +d = "toothed-serifed" f = "flat-hook-serifed" g = "single-storey-flat-hook-serifed" i = "serifed" k = "symmetric-connected-serifed" l = "serifed" q = "straight-serifed" +u = "toothed-serifed" v = "straight-serifed" w = "rounded-vertical-sides-serifed" x = "straight-serifed" @@ -10616,11 +10624,13 @@ micro-sign = "toothless-rounded-serifed" [composite.ss10.slab-override.italic] capital-a = "straight-base-serifed" b = "bottom-cut-serifed" +d = "tailed-serifed" g = "single-storey-flat-hook-top-cut" i = "serifed-flat-tailed" k = "symmetric-connected-top-left-and-bottom-right-serifed" l = "serifed-flat-tailed" q = "top-cut-straight-serifed" +u = "tailed-motion-serifed" v = "straight-motion-serifed" w = "rounded-vertical-sides-motion-serifed" x = "straight-bilateral-motion-serifed" @@ -11371,6 +11381,7 @@ capital-z = "straight-top-serifed" a = "double-storey-tailed" b = "toothed-serifless" c = "serifless" +d = "toothed-serifless" e = "flat-crossbar" f = "serifed" g = "double-storey" @@ -11384,6 +11395,7 @@ n = "straight-serifless" r = "hookless-serifed" s = "serifless" t = "flat-hook-short-neck" +u = "toothed-serifless" v = "straight-serifless" w = "straight-serifless" x = "straight-serifless" @@ -11439,6 +11451,7 @@ micro-sign = "tailed-serifless" a = "single-storey-tailed" b = "toothless-corner-serifless" c = "unilateral-inward-serifed" +d = "tailed-serifless" e = "rounded" f = "tailed" g = "single-storey-serifless" @@ -11450,6 +11463,7 @@ m = "tailed-serifless" n = "tailed-serifless" r = "corner-hooked-top-serifed" s = "unilateral-inward-serifed" +u = "tailed-serifless" v = "cursive-serifed" w = "cursive-serifless" x = "chancery" @@ -11483,11 +11497,13 @@ capital-z = "straight-serifed" a = "double-storey-hook-inward-serifed-tailed" b = "toothed-serifed" c = "unilateral-inward-serifed" +d = "toothed-serifed" h = "straight-serifed" k = "straight-serifed" m = "serifed" n = "straight-serifed" s = "unilateral-inward-serifed" +u = "toothed-serifed" v = "straight-serifed" w = "straight-serifed" x = "straight-serifed" @@ -11516,11 +11532,13 @@ micro-sign = "tailed-serifed" capital-u = "toothed-motion-serifed" a = "single-storey-tailed" b = "toothless-corner-serifed" +d = "tailed-serifed" h = "tailed-motion-serifed" k = "cursive-top-left-and-bottom-right-serifed" m = "tailed-top-left-serifed" n = "tailed-motion-serifed" s = "bilateral-inward-serifed" +u = "tailed-motion-serifed" v = "cursive-serifed" w = "cursive-serifed" x = "chancery" @@ -11561,6 +11579,7 @@ j = "serifed" k = "symmetric-connected-serifless" l = "serifed" q = "earless-corner-straight-serifless" +t = "bent-hook" u = "toothed-serifless" v = "straight-serifless" w = "straight-serifless"