From 67977b15131994cd9e4c49663c4c2d525012b556 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Thu, 16 May 2024 18:58:07 -0400 Subject: [PATCH] Further cleanup of #2331 , add additional composites missing from `L2/24-021` but implicit, add separate example for diacritical dot from tittle in customizer preview. (#2333) * Cleanup of #2331 (cont.) * Add additional composites missing from `L2/24-021` * Add separate example for diacritic dot from tittle --- .../src/letter/latin-ext/upper-aa-ao.ptl | 2 +- .../font-glyphs/src/letter/latin/lower-m.ptl | 8 +- .../src/meta/unicode-knowledge.ptl | 19 +++- params/variants.toml | 104 +++++++++--------- .../src/templates/package-sample.mjs | 2 +- .../src/templates/stylistic-set.mjs | 2 +- 6 files changed, 77 insertions(+), 60 deletions(-) diff --git a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl index e38008410..fcdb54b3b 100644 --- a/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl @@ -117,7 +117,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin include : with-transform [ApparentTranslate shift 0] union [Base subDf CAP df.mvs] [Slabs subDf CAP] - select-variant "AU/Right" (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'AU/Right/full' 'AU/Right/reduced']) + select-variant "AU/Right" (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'AU/U/full' 'AU/U/reduced']) do "AU" select-variant 'AA/AU/Left' (follow -- 'A') diff --git a/packages/font-glyphs/src/letter/latin/lower-m.ptl b/packages/font-glyphs/src/letter/latin/lower-m.ptl index c7953fe74..1b9b67123 100644 --- a/packages/font-glyphs/src/letter/latin/lower-m.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-m.ptl @@ -415,14 +415,14 @@ glyph-block Letter-Latin-Lower-M : begin select-variant 'turnmSideways' 0x1D1F (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'turnm/full' 'turnm/reduced']) - select-variant 'cyrl/sha.italic' (shapeFrom -- 'turnm') (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'cyrl/sha/full.italic' 'cyrl/sha/reduced.italic']) + select-variant 'cyrl/sha.italic' (shapeFrom -- 'turnm') (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'cyrl/sha.italic/full' 'cyrl/sha.italic/reduced']) alias 'cyrl/sha.BGR' null 'cyrl/sha.italic' - select-variant 'cyrl/sha/reduced.italic' (shapeFrom -- 'turnm') + select-variant 'cyrl/sha/reduced.italic' (shapeFrom -- 'turnm') (follow -- 'cyrl/sha.italic/reduced') alias 'cyrl/sha/reduced.BGR' null 'cyrl/sha/reduced.italic' - select-variant 'cyrl/shcha.italic' (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'cyrl/shcha/full.italic' 'cyrl/shcha/reduced.italic']) + select-variant 'cyrl/shcha.italic' (follow -- [if [MEnoughSpaceForFullSerifs : dfM] 'cyrl/shcha.italic/full' 'cyrl/shcha.italic/reduced']) alias 'cyrl/shcha.BGR' null 'cyrl/shcha.italic' - select-variant 'cyrl/shcha/reduced.italic' (shapeFrom -- 'cyrl/shcha.italic') + select-variant 'cyrl/shcha/reduced.italic' (shapeFrom -- 'cyrl/shcha.italic') (follow -- 'cyrl/shcha.italic/reduced') alias 'cyrl/shcha/reduced.BGR' null 'cyrl/shcha/reduced.italic' derive-composites 'cyrl/te.SRB' null 'cyrl/sha.italic' 'macronAbove' diff --git a/packages/font-glyphs/src/meta/unicode-knowledge.ptl b/packages/font-glyphs/src/meta/unicode-knowledge.ptl index cd0c762ec..4f6dd472f 100644 --- a/packages/font-glyphs/src/meta/unicode-knowledge.ptl +++ b/packages/font-glyphs/src/meta/unicode-knowledge.ptl @@ -314,7 +314,10 @@ export : define ccmpCombinations : list list {0x1079E 0x0322} 0x1079F # 𐞞 list {0x107A6 0x0322} 0x107A7 # 𐞦 list {0x107AC 0x0322} 0x107AD # 𐞬 - # Additional composites which cannot be inferred from L2/24-021 + + ########## Additional composites which cannot be inferred from L2/24-021 + + # Retroflex hooks list {0x0053 0x0322} 0xA7C5 # S list {0x0073 0x0322} 0x0282 # s list {0x0279 0x0322} 0x027B # ɹ @@ -322,3 +325,17 @@ export : define ccmpCombinations : list list {0x02AE 0x0322} 0x02AF # ʮ list {0x02B4 0x0322} 0x02B5 # ʴ list {0x02E2 0x0322} 0x1DB3 # ˢ + list {0xA71D 0x0322} 0x107B9 # ꜝ + + # Long stroke overlays + list {0x004F 0x0336} 0xA74A # O + list {0x006F 0x0336} 0xA74B # o + + # Short stroke overlays + list {0x0044 0x0335} 0xA7C7 # D + list {0x0053 0x0335} 0xA7C9 # S + list {0x0064 0x0335} 0xA7C8 # d + list {0x0073 0x0335} 0xA7CA # s + + # Ring overlays + list {0x006C 0x20D8} 0xAB39 # l diff --git a/params/variants.toml b/params/variants.toml index ec50b3e5e..bb8dd030b 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1083,32 +1083,32 @@ rank = 1 descriptionAffix = "toothed shape" selectorAffix.U = "toothed" selectorAffix."U/sansSerif" = "toothed" -selectorAffix."AU/Right/full" = "toothed" -selectorAffix."AU/Right/reduced" = "toothed" +selectorAffix."AU/U/full" = "toothed" +selectorAffix."AU/U/reduced" = "toothed" [prime.capital-u.variants-buildup.stages.body.tailed] rank = 2 descriptionAffix = "tailed shape" selectorAffix.U = "tailed" selectorAffix."U/sansSerif" = "tailed" -selectorAffix."AU/Right/full" = "tailed" -selectorAffix."AU/Right/reduced" = "tailed" +selectorAffix."AU/U/full" = "tailed" +selectorAffix."AU/U/reduced" = "tailed" [prime.capital-u.variants-buildup.stages.body.toothless-corner] rank = 3 descriptionAffix = "toothless (corner bottom-right) shape" selectorAffix.U = "toothlessCorner" selectorAffix."U/sansSerif" = "toothlessCorner" -selectorAffix."AU/Right/full" = "toothlessCorner" -selectorAffix."AU/Right/reduced" = "toothlessCorner" +selectorAffix."AU/U/full" = "toothlessCorner" +selectorAffix."AU/U/reduced" = "toothlessCorner" [prime.capital-u.variants-buildup.stages.body.toothless-rounded] rank = 4 descriptionAffix = "toothless (rounded) shape" selectorAffix.U = "toothlessRounded" selectorAffix."U/sansSerif" = "toothlessRounded" -selectorAffix."AU/Right/full" = "toothlessRounded" -selectorAffix."AU/Right/reduced" = "toothlessRounded" +selectorAffix."AU/U/full" = "toothlessRounded" +selectorAffix."AU/U/reduced" = "toothlessRounded" [prime.capital-u.variants-buildup.stages.serifs.serifless] rank = 1 @@ -1116,8 +1116,8 @@ descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix.U = "serifless" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/Right/full" = "serifless" -selectorAffix."AU/Right/reduced" = "serifless" +selectorAffix."AU/U/full" = "serifless" +selectorAffix."AU/U/reduced" = "serifless" [prime.capital-u.variants-buildup.stages.serifs.bottom-right-serifed] rank = 2 @@ -1125,8 +1125,8 @@ disableIf = [{ body = "NOT toothed" }] descriptionAffix = "serif at bottom-right" selectorAffix.U = "bottomRightSerifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/Right/full" = "bottomRightSerifed" -selectorAffix."AU/Right/reduced" = "bottomRightSerifed" +selectorAffix."AU/U/full" = "bottomRightSerifed" +selectorAffix."AU/U/reduced" = "bottomRightSerifed" [prime.capital-u.variants-buildup.stages.serifs.motion-serifed] rank = 3 @@ -1134,8 +1134,8 @@ disableIf = [{ body = "toothless-corner" }, { body = "toothless-rounded" }] descriptionAffix = "motion serifs at top-left and bottom-right" selectorAffix.U = "unilateralMotionSerifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/Right/full" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = "serifless" } -selectorAffix."AU/Right/reduced" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = "serifless" } +selectorAffix."AU/U/full" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = "serifless" } +selectorAffix."AU/U/reduced" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = "serifless" } [prime.capital-u.variants-buildup.stages.serifs.unilateral-motion-serifed] rank = 4 @@ -1143,8 +1143,8 @@ disableIf = [{ body = "toothed" }, { body = "tailed" }] descriptionAffix = "motion serifs at left side" selectorAffix.U = "unilateralMotionSerifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/Right/full" = "serifless" -selectorAffix."AU/Right/reduced" = "serifless" +selectorAffix."AU/U/full" = "serifless" +selectorAffix."AU/U/reduced" = "serifless" [prime.capital-u.variants-buildup.stages.serifs.bilateral-motion-serifed] rank = 5 @@ -1152,16 +1152,16 @@ disableIf = [{ body = "toothed" }, { body = "tailed" }] descriptionAffix = "motion serifs at both sides" selectorAffix.U = "bilateralMotionSerifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/Right/full" = "bilateralMotionSerifed" -selectorAffix."AU/Right/reduced" = "bilateralMotionSerifed" +selectorAffix."AU/U/full" = "bilateralMotionSerifed" +selectorAffix."AU/U/reduced" = "bilateralMotionSerifed" [prime.capital-u.variants-buildup.stages.serifs.serifed] rank = 6 descriptionAffix = "serifs" selectorAffix.U = "serifed" selectorAffix."U/sansSerif" = "serifless" -selectorAffix."AU/Right/full" = "serifed" -selectorAffix."AU/Right/reduced" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = { if = [{ body = "tailed" }], then = "serifless", else = "bilateralMotionSerifed" } } +selectorAffix."AU/U/full" = "serifed" +selectorAffix."AU/U/reduced" = { if = [{ body = "toothed" }], then = "bottomRightSerifed", else = { if = [{ body = "tailed" }], then = "serifless", else = "bilateralMotionSerifed" } } @@ -3750,10 +3750,10 @@ selectorAffix."turnmLeg/full" = "toothed" selectorAffix."turnmLeg/reduced" = "toothed" selectorAffix."cyrl/i.italic" = "toothed" selectorAffix."cyrl/i.italic/descBase" = "toothed" -selectorAffix."cyrl/sha/full.italic" = "toothed" -selectorAffix."cyrl/sha/reduced.italic" = "toothed" -selectorAffix."cyrl/shcha/full.italic" = "toothed" -selectorAffix."cyrl/shcha/reduced.italic" = "toothed" +selectorAffix."cyrl/sha.italic/full" = "toothed" +selectorAffix."cyrl/sha.italic/reduced" = "toothed" +selectorAffix."cyrl/shcha.italic/full" = "toothed" +selectorAffix."cyrl/shcha.italic/reduced" = "toothed" selectorAffix."cyrl/dzhe.italic" = "toothed" selectorAffix."cyrl/tse.italic" = "toothed" selectorAffix."cyrl/tseRev.italic" = "toothed" @@ -3777,10 +3777,10 @@ selectorAffix."turnmLeg/full" = "toothed" selectorAffix."turnmLeg/reduced" = "toothed" selectorAffix."cyrl/i.italic" = "tailed" selectorAffix."cyrl/i.italic/descBase" = "toothed" -selectorAffix."cyrl/sha/full.italic" = "tailed" -selectorAffix."cyrl/sha/reduced.italic" = "tailed" -selectorAffix."cyrl/shcha/full.italic" = "toothed" -selectorAffix."cyrl/shcha/reduced.italic" = "toothed" +selectorAffix."cyrl/sha.italic/full" = "tailed" +selectorAffix."cyrl/sha.italic/reduced" = "tailed" +selectorAffix."cyrl/shcha.italic/full" = "toothed" +selectorAffix."cyrl/shcha.italic/reduced" = "toothed" selectorAffix."cyrl/dzhe.italic" = "tailed" selectorAffix."cyrl/tse.italic" = "toothed" selectorAffix."cyrl/tseRev.italic" = "tailed" @@ -3804,10 +3804,10 @@ selectorAffix."turnmLeg/full" = "toothlessCorner" selectorAffix."turnmLeg/reduced" = "toothlessCorner" selectorAffix."cyrl/i.italic" = "toothed" selectorAffix."cyrl/i.italic/descBase" = "toothed" -selectorAffix."cyrl/sha/full.italic" = "toothed" -selectorAffix."cyrl/sha/reduced.italic" = "toothed" -selectorAffix."cyrl/shcha/full.italic" = "toothed" -selectorAffix."cyrl/shcha/reduced.italic" = "toothed" +selectorAffix."cyrl/sha.italic/full" = "toothed" +selectorAffix."cyrl/sha.italic/reduced" = "toothed" +selectorAffix."cyrl/shcha.italic/full" = "toothed" +selectorAffix."cyrl/shcha.italic/reduced" = "toothed" selectorAffix."cyrl/dzhe.italic" = "toothed" selectorAffix."cyrl/tse.italic" = "toothed" selectorAffix."cyrl/tseRev.italic" = "toothed" @@ -3831,10 +3831,10 @@ selectorAffix."turnmLeg/full" = "toothed" selectorAffix."turnmLeg/reduced" = "toothed" selectorAffix."cyrl/i.italic" = "toothed" selectorAffix."cyrl/i.italic/descBase" = "toothed" -selectorAffix."cyrl/sha/full.italic" = "toothed" -selectorAffix."cyrl/sha/reduced.italic" = "toothed" -selectorAffix."cyrl/shcha/full.italic" = "toothed" -selectorAffix."cyrl/shcha/reduced.italic" = "toothed" +selectorAffix."cyrl/sha.italic/full" = "toothed" +selectorAffix."cyrl/sha.italic/reduced" = "toothed" +selectorAffix."cyrl/shcha.italic/full" = "toothed" +selectorAffix."cyrl/shcha.italic/reduced" = "toothed" selectorAffix."cyrl/dzhe.italic" = "toothed" selectorAffix."cyrl/tse.italic" = "toothed" selectorAffix."cyrl/tseRev.italic" = "toothed" @@ -3859,10 +3859,10 @@ selectorAffix."turnmLeg/full" = "serifless" selectorAffix."turnmLeg/reduced" = "serifless" selectorAffix."cyrl/i.italic" = "serifless" selectorAffix."cyrl/i.italic/descBase" = "serifless" -selectorAffix."cyrl/sha/full.italic" = "serifless" -selectorAffix."cyrl/sha/reduced.italic" = "serifless" -selectorAffix."cyrl/shcha/full.italic" = "serifless" -selectorAffix."cyrl/shcha/reduced.italic" = "serifless" +selectorAffix."cyrl/sha.italic/full" = "serifless" +selectorAffix."cyrl/sha.italic/reduced" = "serifless" +selectorAffix."cyrl/shcha.italic/full" = "serifless" +selectorAffix."cyrl/shcha.italic/reduced" = "serifless" selectorAffix."cyrl/dzhe.italic" = "serifless" selectorAffix."cyrl/tse.italic" = "serifless" selectorAffix."cyrl/tseRev.italic" = "serifless" @@ -3887,10 +3887,10 @@ selectorAffix."turnmLeg/full" = "serifless" selectorAffix."turnmLeg/reduced" = "serifless" selectorAffix."cyrl/i.italic" = "bottomRightSerifed" selectorAffix."cyrl/i.italic/descBase" = "serifless" -selectorAffix."cyrl/sha/full.italic" = "bottomRightSerifed" -selectorAffix."cyrl/sha/reduced.italic" = "bottomRightSerifed" -selectorAffix."cyrl/shcha/full.italic" = "serifless" -selectorAffix."cyrl/shcha/reduced.italic" = "serifless" +selectorAffix."cyrl/sha.italic/full" = "bottomRightSerifed" +selectorAffix."cyrl/sha.italic/reduced" = "bottomRightSerifed" +selectorAffix."cyrl/shcha.italic/full" = "serifless" +selectorAffix."cyrl/shcha.italic/reduced" = "serifless" selectorAffix."cyrl/dzhe.italic" = "bottomRightSerifed" selectorAffix."cyrl/tse.italic" = "serifless" selectorAffix."cyrl/tseRev.italic" = "bottomRightSerifed" @@ -3914,10 +3914,10 @@ selectorAffix."turnmLeg/full" = "motionSerifed" selectorAffix."turnmLeg/reduced" = "motionSerifed" selectorAffix."cyrl/i.italic" = "motionSerifed" selectorAffix."cyrl/i.italic/descBase" = "motionSerifed" -selectorAffix."cyrl/sha/full.italic" = "motionSerifed" -selectorAffix."cyrl/sha/reduced.italic" = "motionSerifed" -selectorAffix."cyrl/shcha/full.italic" = "motionSerifed" -selectorAffix."cyrl/shcha/reduced.italic" = "motionSerifed" +selectorAffix."cyrl/sha.italic/full" = "motionSerifed" +selectorAffix."cyrl/sha.italic/reduced" = "motionSerifed" +selectorAffix."cyrl/shcha.italic/full" = "motionSerifed" +selectorAffix."cyrl/shcha.italic/reduced" = "motionSerifed" selectorAffix."cyrl/dzhe.italic" = "motionSerifed" selectorAffix."cyrl/tse.italic" = "motionSerifed" selectorAffix."cyrl/tseRev.italic" = "motionSerifed" @@ -3941,10 +3941,10 @@ selectorAffix."turnmLeg/full" = "serifed" selectorAffix."turnmLeg/reduced" = "motionSerifed" selectorAffix."cyrl/i.italic" = "serifed" selectorAffix."cyrl/i.italic/descBase" = "serifed" -selectorAffix."cyrl/sha/full.italic" = "serifed" -selectorAffix."cyrl/sha/reduced.italic" = "motionSerifed" -selectorAffix."cyrl/shcha/full.italic" = "serifed" -selectorAffix."cyrl/shcha/reduced.italic" = "motionSerifed" +selectorAffix."cyrl/sha.italic/full" = "serifed" +selectorAffix."cyrl/sha.italic/reduced" = "motionSerifed" +selectorAffix."cyrl/shcha.italic/full" = "serifed" +selectorAffix."cyrl/shcha.italic/reduced" = "motionSerifed" selectorAffix."cyrl/dzhe.italic" = "serifed" selectorAffix."cyrl/tse.italic" = "serifed" selectorAffix."cyrl/tseRev.italic" = "serifed" diff --git a/tools/generate-samples/src/templates/package-sample.mjs b/tools/generate-samples/src/templates/package-sample.mjs index 0f350b11e..0593d8d6c 100644 --- a/tools/generate-samples/src/templates/package-sample.mjs +++ b/tools/generate-samples/src/templates/package-sample.mjs @@ -5,7 +5,7 @@ export const ssStrings = [ ["ABC.DEF.GHI.JKL.MNO.PQRS.TUV.WXYZ", "abc.def.ghi.jkl.mno.pqrs.tuv.wxyz"], ["!iIlL17|¦ ¢coO08BbDQ $5SZ2zs 96µm", "float il1[]={1-2/3.4,5+6=7/8%90};"], ["1234567890 ,._-+= >< «¯-¬_» ~–÷+×", "{*}[]()<>`+-=$/#_%^@\\&|~?'\" !,.;:"], - ["E3CGQ g9q¶ uvw ſßðþ ΓΔΛαδιλμξπτχ∂", [..."ЖЗКУЯжзклмнруфчьыя ", "<=", " ", "!=", " ", "==", " ", "=>", " ", "->"]] + ["E3CGQ g9q¶ äöü ſßðþ ΓΔΛαδιλμξπτχ∂", [..."ЖЗКУЯжзклмнруфчьыя ", "<=", " ", "!=", " ", "==", " ", "=>", " ", "->"]] ]; function* makeSample(lbm, hotChars) { diff --git a/tools/generate-samples/src/templates/stylistic-set.mjs b/tools/generate-samples/src/templates/stylistic-set.mjs index 9e7526b2b..e3d5692af 100644 --- a/tools/generate-samples/src/templates/stylistic-set.mjs +++ b/tools/generate-samples/src/templates/stylistic-set.mjs @@ -5,7 +5,7 @@ const ssStrings = [ ["ABC.DEF.GHI.JKL.MNO.PQRS.TUV.WXYZ", "abc.def.ghi.jkl.mno.pqrs.tuv.wxyz"], ["!iIlL17|¦ ¢coO08BbDQ $5SZ2zs 96µm", "float il1[]={1-2/3.4,5+6=7/8%90};"], ["1234567890 ,._-+= >< «¯-¬_» ~–÷+×", "{*}[]()<>`+-=$/#_%^@\\&|~?'\" !,.;:"], - ["E3CGQ g9q¶ uvw ſßðþ ΓΔΛαδιλμξπτχ∂", [..."ЖЗКУЯжзклмнруфчьыя ", "<=", " ", "!=", " ", "==", " ", "=>", " ", "->"]] + ["E3CGQ g9q¶ äöü ſßðþ ΓΔΛαδιλμξπτχ∂", [..."ЖЗКУЯжзклмнруфчьыя ", "<=", " ", "!=", " ", "==", " ", "=>", " ", "->"]] ]; function* makeSample(theme, lbm, features, hotChars) {