From 17db91dfdb8732540874fd84e083d75d908e95d3 Mon Sep 17 00:00:00 2001 From: Belleve Date: Sat, 2 Nov 2024 10:50:14 -1000 Subject: [PATCH] Fix inconsistent serifs of `U+0284` and `U+10798` with the variants of `j` (#2569). (#2570) * Fix inconsistent serifs of `U+0284` and `U+10798` with the variants of `j` (#2569). * Cleanup --- changes/32.0.1.md | 1 + .../src/letter/armenian/aliases.ptl | 4 +-- .../font-glyphs/src/letter/latin/lower-j.ptl | 34 ++++++++----------- params/variants.toml | 16 ++++----- 4 files changed, 26 insertions(+), 29 deletions(-) create mode 100644 changes/32.0.1.md diff --git a/changes/32.0.1.md b/changes/32.0.1.md new file mode 100644 index 000000000..d7edffc2b --- /dev/null +++ b/changes/32.0.1.md @@ -0,0 +1 @@ +* Fix inconsistent serifs of `U+0284` and `U+10798` with the variants of `j` (#2569). diff --git a/packages/font-glyphs/src/letter/armenian/aliases.ptl b/packages/font-glyphs/src/letter/armenian/aliases.ptl index 7c4036f55..7481a560d 100644 --- a/packages/font-glyphs/src/letter/armenian/aliases.ptl +++ b/packages/font-glyphs/src/letter/armenian/aliases.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Armenian-Aliases : begin alias 'armn/Tiun' 0x54F 'S.serifless' alias 'armn/Piur' 0x553 'grek/Phi' alias 'armn/Oh' 0x555 'O' - alias 'armn/yi' 0x575 'dotlessj.flatHook' + alias 'armn/yi' 0x575 : if SLAB 'dotlessj.flatHookSerifed' 'dotlessj.flatHookSerifless' alias 'armn/co' 0x581 'g.singleStorey' alias 'armn/oh' 0x585 'o' - alias 'armn/yiBar' 0x588 'dotlessjBar.flatHook' + alias 'armn/yiBar' 0x588 : if SLAB 'dotlessjBar.flatHookSerifed' 'dotlessjBar.flatHookSerifless' diff --git a/packages/font-glyphs/src/letter/latin/lower-j.ptl b/packages/font-glyphs/src/letter/latin/lower-j.ptl index e324252c4..57ca1b4bc 100644 --- a/packages/font-glyphs/src/letter/latin/lower-j.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-j.ptl @@ -40,8 +40,6 @@ glyph-block Letter-Latin-Lower-J : begin export : define [BentHook df] : df.middle + JBalance export : define [FlatHookSerifless df] : df.middle + 0.25 * JBalance * df.div * [mix 1 df.div 2] export : define [FlatHookSerifed df] : df.middle + JBalance * df.div - export : define [StraightAutoSerifed df] : if SLAB [StraightSerifed df] [StraightSerifless df] - export : define [FlatHookAutoSerifed df] : if SLAB [FlatHookSerifed df] [FlatHookSerifless df] define Body : namespace export : define [BentHook df top xMiddle] : glyph-proc @@ -76,9 +74,9 @@ glyph-block Letter-Latin-Lower-J : begin set-base-anchor "trailing" (xMiddle - [HSwToV HalfStroke]) Descender define Serifs : namespace - export : define [None df top xMiddle] : no-shape - export : define [Long df top xMiddle] : HSerif.lt xMiddle top (LongJut * df.div) - export : define [Auto df top xMiddle] : if SLAB [Long df top xMiddle] [no-shape] + export : define [None df top xMiddle] : no-shape + export : define [Long df top xMiddle] : HSerif.lt xMiddle top (LongJut * df.div) + export : define [Short df top xMiddle] : HSerif.lt xMiddle top Jut define Marks : namespace export : define [Serifless df top xMiddle] : glyph-proc @@ -100,22 +98,20 @@ glyph-block Letter-Latin-Lower-J : begin export : define StraightSerifed para.diversityI export : define FlatHookSerifless para.diversityII export : define FlatHookSerifed para.diversityI - export : define StraightAutoSerifed : if SLAB para.diversityI para.diversityII - export : define FlatHookAutoSerifed : if SLAB para.diversityI para.diversityII define JConfig : object - 'bentHook' { "BentHook" Serifs.Auto XMiddle.BentHook Marks.AutoSerifed Div.BentHook } - 'bentHookSerifless' { "BentHook" Serifs.None XMiddle.BentHook Marks.Serifless Div.BentHook } - 'bentHookSerifed' { "BentHook" Serifs.Long XMiddle.BentHook Marks.Serifed Div.BentHook } - 'straight' { "Straight" Serifs.Auto XMiddle.StraightAutoSerifed Marks.AutoSerifed Div.StraightAutoSerifed } - 'straightSerifless' { "Straight" Serifs.None XMiddle.StraightSerifless Marks.Serifless Div.StraightSerifless } - 'straightSerifed' { "Straight" Serifs.Long XMiddle.StraightSerifed Marks.Serifed Div.StraightSerifed } - 'flatHook' { "FlatHook" Serifs.Auto XMiddle.FlatHookAutoSerifed Marks.AutoSerifed Div.FlatHookAutoSerifed } - 'flatHookSerifless' { "FlatHook" Serifs.None XMiddle.FlatHookSerifless Marks.Serifless Div.FlatHookSerifless } - 'flatHookSerifed' { "FlatHook" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed } - 'diagonalTailed' { "DiagonalTailed" Serifs.Auto XMiddle.FlatHookAutoSerifed Marks.AutoSerifed Div.FlatHookAutoSerifed } - 'diagonalTailedSerifless' { "DiagonalTailed" Serifs.None XMiddle.FlatHookSerifless Marks.Serifless Div.FlatHookSerifless } - 'diagonalTailedSerifed' { "DiagonalTailed" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed } + 'bentHookSerifless' { "BentHook" Serifs.None XMiddle.BentHook Marks.Serifless Div.BentHook } + 'bentHookSerifed' { "BentHook" Serifs.Long XMiddle.BentHook Marks.Serifed Div.BentHook } + 'bentHookShortSerifed' { "BentHook" Serifs.Short XMiddle.BentHook Marks.Serifed Div.BentHook } + 'straightSerifless' { "Straight" Serifs.None XMiddle.StraightSerifless Marks.Serifless Div.StraightSerifless } + 'straightSerifed' { "Straight" Serifs.Long XMiddle.StraightSerifed Marks.Serifed Div.StraightSerifed } + 'straightShortSerifed' { "Straight" Serifs.Short XMiddle.StraightSerifed Marks.Serifed Div.StraightSerifed } + 'flatHookSerifless' { "FlatHook" Serifs.None XMiddle.FlatHookSerifless Marks.Serifless Div.FlatHookSerifless } + 'flatHookSerifed' { "FlatHook" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed } + 'flatHookShortSerifed' { "FlatHook" Serifs.Short XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed } + 'diagonalTailedSerifless' { "DiagonalTailed" Serifs.None XMiddle.FlatHookSerifless Marks.Serifless Div.FlatHookSerifless } + 'diagonalTailedSerifed' { "DiagonalTailed" Serifs.Long XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed } + 'diagonalTailedShortSerifed' { "DiagonalTailed" Serifs.Short XMiddle.FlatHookSerifed Marks.Serifed Div.FlatHookSerifed } foreach { suffix { shapeId Serif xMiddleT Marks div } } [Object.entries JConfig] : do local df : DivFrame div diff --git a/params/variants.toml b/params/variants.toml index 976aba159..58abc3435 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -3084,7 +3084,7 @@ rank = 1 description = "`j` without serif" selector.dotlessj = "bentHookSerifless" selector."dotlessj/sansSerif" = "bentHookSerifless" -selector.dotlessjHookTop = "bentHook" +selector.dotlessjHookTop = "bentHookSerifless" selector.dotlessjCurlyTail = "serifless" [prime.j.variants.serifed] @@ -3092,7 +3092,7 @@ rank = 2 description = "`j` with top serif" selector.dotlessj = "bentHookSerifed" selector."dotlessj/sansSerif" = "bentHookSerifless" -selector.dotlessjHookTop = "bentHook" +selector.dotlessjHookTop = "bentHookShortSerifed" selector.dotlessjCurlyTail = "serifed" [prime.j.variants.straight-line] @@ -3100,7 +3100,7 @@ rank = 3 description = "`j` like a straight line" selector.dotlessj = "straightSerifless" selector."dotlessj/sansSerif" = "straightSerifless" -selector.dotlessjHookTop = "straight" +selector.dotlessjHookTop = "straightSerifless" selector.dotlessjCurlyTail = "serifless" [prime.j.variants.hooky] @@ -3108,7 +3108,7 @@ rank = 4 description = "`j` like a straight line with top serif" selector.dotlessj = "straightSerifed" selector."dotlessj/sansSerif" = "straightSerifless" -selector.dotlessjHookTop = "straight" +selector.dotlessjHookTop = "straightShortSerifed" selector.dotlessjCurlyTail = "serifed" [prime.j.variants.flat-hook-serifless] @@ -3116,7 +3116,7 @@ rank = 5 description = "`j` with flat terminal hook" selector.dotlessj = "flatHookSerifless" selector."dotlessj/sansSerif" = "flatHookSerifless" -selector.dotlessjHookTop = "flatHook" +selector.dotlessjHookTop = "flatHookSerifless" selector.dotlessjCurlyTail = "serifless" [prime.j.variants.flat-hook-serifed] @@ -3124,7 +3124,7 @@ rank = 6 description = "`j` with flat terminal hook and top serif" selector.dotlessj = "flatHookSerifed" selector."dotlessj/sansSerif" = "flatHookSerifless" -selector.dotlessjHookTop = "flatHook" +selector.dotlessjHookTop = "flatHookShortSerifed" selector.dotlessjCurlyTail = "serifed" [prime.j.variants.diagonal-tailed-serifless] @@ -3132,7 +3132,7 @@ rank = 7 description = "`j` with diagonal tail" selector.dotlessj = "diagonalTailedSerifless" selector."dotlessj/sansSerif" = "diagonalTailedSerifless" -selector.dotlessjHookTop = "diagonalTailed" +selector.dotlessjHookTop = "diagonalTailedSerifless" selector.dotlessjCurlyTail = "serifless" [prime.j.variants.diagonal-tailed-serifed] @@ -3140,7 +3140,7 @@ rank = 8 description = "`j` with top serif and diagonal tail" selector.dotlessj = "diagonalTailedSerifed" selector."dotlessj/sansSerif" = "diagonalTailedSerifless" -selector.dotlessjHookTop = "diagonalTailed" +selector.dotlessjHookTop = "diagonalTailedShortSerifed" selector.dotlessjCurlyTail = "serifed"