Fix variants for nine phonetic characters (#1982)

* Fix variants for seven phonetic characters

* turned v

* d palatal hook

* math ss y
This commit is contained in:
John McWilliams 2023-09-05 19:37:35 -04:00 committed by GitHub
parent 2546f759d9
commit 411b15ae65
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 38 additions and 13 deletions

View file

@ -1,2 +1,8 @@
* Remove serifs in `U+0320` (#1979). * Remove serifs in `U+0320` (#1979).
* Harmonize dot sizes in ellipsis shapes (#1980). * Harmonize dot sizes in ellipsis shapes (#1980).
* Remove duplicate serif variants for `U+0266` and `U+2C74`.
* Allow cursive variants of turned `v` (`U+028C`) to match turned `w` (`U+028D`).
* Allow turned tail variants for Mathematical Sans-Serif `y` (`U+1D5D2`).
* Only allow toothed variants of `d` with palatal hook (`U+1D81`) to match `a` and `u` with hook attachments (`U+1D8F`, `U+1D99`).
* Fix variant selection for `U+1D4A`, `U+1DEA`, and `U+2094`.
* Remove bottom serifs in LATIN {CAPITAL|SMALL} LETTER INSULAR R (`U+A782`, `U+A783`).

View file

@ -140,7 +140,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1D47 'b' list 0x1D47 'b'
list 0x1D48 'd' list 0x1D48 'd'
list 0x1D49 'e' list 0x1D49 'e'
list 0x1D4A 'turne' list 0x1D4A 'schwa'
list 0x1D4B 'latn/epsilon' list 0x1D4B 'latn/epsilon'
list 0x1D4C 'turnepsilon' list 0x1D4C 'turnepsilon'
list 0x1D4D 'g' list 0x1D4D 'g'
@ -400,7 +400,7 @@ glyph-block Autobuild-Transformed : begin
list 0x2091 'e' list 0x2091 'e'
list 0x2092 'o' list 0x2092 'o'
list 0x2093 'x' list 0x2093 'x'
list 0x2094 'turne' list 0x2094 'schwa'
list 0x2095 'h' list 0x2095 'h'
list 0x2096 'k' list 0x2096 'k'
list 0x2097 'l' list 0x2097 'l'
@ -521,7 +521,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1DE4 's' list 0x1DE4 's'
list 0x1DE6 'z' list 0x1DE6 'z'
list 0x1DE7 'scripta' list 0x1DE7 'scripta'
list 0x1DEA 'turne' list 0x1DEA 'schwa'
list 0x1DED 'oWithLightCentralizationStroke' list 0x1DED 'oWithLightCentralizationStroke'
list 0x1DF0 'uWithLightCentralizationStroke' list 0x1DF0 'uWithLightCentralizationStroke'
list 0x1DF1 'w' list 0x1DF1 'w'

View file

@ -158,7 +158,8 @@ glyph-block Letter-Latin-Lower-D : begin
select-variant 'cyrl/djeKomi' 0x503 select-variant 'cyrl/djeKomi' 0x503
derive-composites 'dPalatalHook' 0x1D81 'd/hookBottomBase' : PalatalHook.r link-reduced-variant 'd/descBase' 'd'
derive-composites 'dPalatalHook' 0x1D81 'd/descBase' : PalatalHook.r
xLink -- RightSB xLink -- RightSB
x -- (RightSB + SideJut) x -- (RightSB + SideJut)
y -- 0 y -- 0

View file

@ -189,7 +189,6 @@ glyph-block Letter-Latin-Lower-N : begin
include : RetroflexHook.rExt RightSB (-Descender) include : RetroflexHook.rExt RightSB (-Descender)
include : VBar.l SB Descender 0 include : VBar.l SB Descender 0
if sLT : include : sLT CAP if sLT : include : sLT CAP
if sLB : include : sLB Descender
create-glyph "rInsular.\(suffix)" : glyph-proc create-glyph "rInsular.\(suffix)" : glyph-proc
include : MarkSet.p include : MarkSet.p
@ -197,7 +196,6 @@ glyph-block Letter-Latin-Lower-N : begin
include : RetroflexHook.rExt RightSB (-Descender) include : RetroflexHook.rExt RightSB (-Descender)
include : VBar.l SB Descender 0 include : VBar.l SB Descender 0
if sLT : include : sLT XH if sLT : include : sLT XH
if sLB : include : sLB Descender
select-variant 'n' 'n' select-variant 'n' 'n'
link-reduced-variant 'n/sansSerif' 'n' MathSansSerif link-reduced-variant 'n/sansSerif' 'n' MathSansSerif
@ -213,8 +211,11 @@ glyph-block Letter-Latin-Lower-N : begin
select-variant 'nCurlyTail' 0x235 (follow -- 'eng') select-variant 'nCurlyTail' 0x235 (follow -- 'eng')
select-variant 'nCrossedTail' 0xAB3B (follow -- 'eng') select-variant 'nCrossedTail' 0xAB3B (follow -- 'eng')
select-variant 'engCrossedTail' 0xAB3C (follow -- 'eng') select-variant 'engCrossedTail' 0xAB3C (follow -- 'eng')
select-variant 'RInsular' 0xA782 (follow -- 'eng')
select-variant 'rInsular' 0xA783 (follow -- 'eng') select-variant 'eng/lTailBase' (shapeFrom -- 'eng')
select-variant 'RInsular' 0xA782 (follow -- 'eng/lTailBase')
select-variant 'rInsular' 0xA783 (follow -- 'eng/lTailBase')
select-variant 'grek/eta' 0x3B7 select-variant 'grek/eta' 0x3B7
link-reduced-variant 'grek/eta/sansSerif' 'grek/eta' MathSansSerif link-reduced-variant 'grek/eta/sansSerif' 'grek/eta' MathSansSerif
select-variant 'NExt' 0x220 (follow -- 'n') select-variant 'NExt' 0x220 (follow -- 'n')

View file

@ -313,7 +313,7 @@ glyph-block Letter-Latin-V : begin
select-variant 'cyrl/ukUnblended' 0x1C88 (follow -- 'v/nonCursive') select-variant 'cyrl/ukUnblended' 0x1C88 (follow -- 'v/nonCursive')
select-variant 'cyrl/yn' 0xA65F (follow -- 'v/nonCursive') select-variant 'cyrl/yn' 0xA65F (follow -- 'v/nonCursive')
select-variant 'vLoop' 0x2C74 (follow -- 'v/nonCursive') select-variant 'vLoop' 0x2C74
select-variant 'cyrl/Izhitsa' 0x474 (follow -- 'VHookRight') (shapeFrom -- 'VHookRight') select-variant 'cyrl/Izhitsa' 0x474 (follow -- 'VHookRight') (shapeFrom -- 'VHookRight')
select-variant 'cyrl/Uk' 0xA64A (follow -- 'VHookRight') select-variant 'cyrl/Uk' 0xA64A (follow -- 'VHookRight')
@ -321,7 +321,7 @@ glyph-block Letter-Latin-V : begin
alias 'cyrl/izhitsa' 0x475 'vHookRight' alias 'cyrl/izhitsa' 0x475 'vHookRight'
turned 'turnV' 0x245 'V' Middle (CAP / 2) turned 'turnV' 0x245 'V' Middle (CAP / 2)
turned 'turnv' 0x28C 'v/nonCursive' Middle (XH / 2) turned 'turnv' 0x28C 'v' Middle (XH / 2)
glyph-block-export BBVShape BBVInnerMaskShape BBVOuterMaskShape glyph-block-export BBVShape BBVInnerMaskShape BBVOuterMaskShape
define [BBVShape l r kd ks top] : glyph-proc define [BBVShape l r kd ks top] : glyph-proc

View file

@ -1701,6 +1701,7 @@ descriptionAffix = "toothed shape"
selectorAffix.d = "toothed" selectorAffix.d = "toothed"
selectorAffix."d/sansSerif" = "toothed" selectorAffix."d/sansSerif" = "toothed"
selectorAffix."d/phoneticLeft" = "toothed" selectorAffix."d/phoneticLeft" = "toothed"
selectorAffix."d/descBase" = "toothed"
selectorAffix."d/hookBottomBase" = "toothed" selectorAffix."d/hookBottomBase" = "toothed"
selectorAffix.dCurlyTail = "toothed" selectorAffix.dCurlyTail = "toothed"
selectorAffix.dHookTop = "toothed" selectorAffix.dHookTop = "toothed"
@ -1713,6 +1714,7 @@ descriptionAffix = "toothless (cornered) shape"
selectorAffix.d = "toothlessCorner" selectorAffix.d = "toothlessCorner"
selectorAffix."d/sansSerif" = "toothlessCorner" selectorAffix."d/sansSerif" = "toothlessCorner"
selectorAffix."d/phoneticLeft" = "toothed" selectorAffix."d/phoneticLeft" = "toothed"
selectorAffix."d/descBase" = "toothed"
selectorAffix."d/hookBottomBase" = "toothlessCornerHBB" selectorAffix."d/hookBottomBase" = "toothlessCornerHBB"
selectorAffix.dCurlyTail = "toothed" selectorAffix.dCurlyTail = "toothed"
selectorAffix.dHookTop = "toothlessCorner" selectorAffix.dHookTop = "toothlessCorner"
@ -1725,6 +1727,7 @@ descriptionAffix = "toothless (rounded) shape"
selectorAffix.d = "toothlessRounded" selectorAffix.d = "toothlessRounded"
selectorAffix."d/sansSerif" = "toothlessRounded" selectorAffix."d/sansSerif" = "toothlessRounded"
selectorAffix."d/phoneticLeft" = "toothed" selectorAffix."d/phoneticLeft" = "toothed"
selectorAffix."d/descBase" = "toothed"
selectorAffix."d/hookBottomBase" = "toothlessRoundedHBB" selectorAffix."d/hookBottomBase" = "toothlessRoundedHBB"
selectorAffix.dCurlyTail = "toothed" selectorAffix.dCurlyTail = "toothed"
selectorAffix.dHookTop = "toothlessRounded" selectorAffix.dHookTop = "toothlessRounded"
@ -1737,6 +1740,7 @@ descriptionAffix = "tailed shape"
selectorAffix.d = "tailed" selectorAffix.d = "tailed"
selectorAffix."d/sansSerif" = "tailed" selectorAffix."d/sansSerif" = "tailed"
selectorAffix."d/phoneticLeft" = "toothed" selectorAffix."d/phoneticLeft" = "toothed"
selectorAffix."d/descBase" = "toothed"
selectorAffix."d/hookBottomBase" = "toothed" selectorAffix."d/hookBottomBase" = "toothed"
selectorAffix.dCurlyTail = "toothed" selectorAffix.dCurlyTail = "toothed"
selectorAffix.dHookTop = "tailed" selectorAffix.dHookTop = "tailed"
@ -1750,6 +1754,7 @@ descriptionJoiner = "without"
selectorAffix.d = "serifless" selectorAffix.d = "serifless"
selectorAffix."d/sansSerif" = "serifless" selectorAffix."d/sansSerif" = "serifless"
selectorAffix."d/phoneticLeft" = "serifless" selectorAffix."d/phoneticLeft" = "serifless"
selectorAffix."d/descBase" = "serifless"
selectorAffix."d/hookBottomBase" = "serifless" selectorAffix."d/hookBottomBase" = "serifless"
selectorAffix.dCurlyTail = "serifless" selectorAffix.dCurlyTail = "serifless"
selectorAffix.dHookTop = "serifless" selectorAffix.dHookTop = "serifless"
@ -1763,6 +1768,7 @@ descriptionAffix = "serif at top"
selectorAffix.d = "topSerifed" selectorAffix.d = "topSerifed"
selectorAffix."d/sansSerif" = "serifless" selectorAffix."d/sansSerif" = "serifless"
selectorAffix."d/phoneticLeft" = "topSerifed" selectorAffix."d/phoneticLeft" = "topSerifed"
selectorAffix."d/descBase" = "topSerifed"
selectorAffix."d/hookBottomBase" = "topSerifed" selectorAffix."d/hookBottomBase" = "topSerifed"
selectorAffix.dCurlyTail = "topSerifed" selectorAffix.dCurlyTail = "topSerifed"
selectorAffix.dHookTop = "serifless" selectorAffix.dHookTop = "serifless"
@ -1777,6 +1783,7 @@ descriptionAffix = "serif at top"
selectorAffix.d = "serifed" selectorAffix.d = "serifed"
selectorAffix."d/sansSerif" = "serifless" selectorAffix."d/sansSerif" = "serifless"
selectorAffix."d/phoneticLeft" = "topSerifed" selectorAffix."d/phoneticLeft" = "topSerifed"
selectorAffix."d/descBase" = "topSerifed"
selectorAffix."d/hookBottomBase" = "topSerifed" selectorAffix."d/hookBottomBase" = "topSerifed"
selectorAffix.dCurlyTail = "topSerifed" selectorAffix.dCurlyTail = "topSerifed"
selectorAffix.dHookTop = "bottomSerifed" selectorAffix.dHookTop = "bottomSerifed"
@ -1791,6 +1798,7 @@ descriptionAffix = "serif at top"
selectorAffix.d = "topSerifed" selectorAffix.d = "topSerifed"
selectorAffix."d/sansSerif" = "serifless" selectorAffix."d/sansSerif" = "serifless"
selectorAffix."d/phoneticLeft" = "topSerifed" selectorAffix."d/phoneticLeft" = "topSerifed"
selectorAffix."d/descBase" = "topSerifed"
selectorAffix."d/hookBottomBase" = "topSerifed" selectorAffix."d/hookBottomBase" = "topSerifed"
selectorAffix.dCurlyTail = "topSerifed" selectorAffix.dCurlyTail = "topSerifed"
selectorAffix.dHookTop = "serifless" selectorAffix.dHookTop = "serifless"
@ -2152,7 +2160,7 @@ selectorAffix.h = "motionSerifed"
selectorAffix."h/tailless" = "motionSerifed" selectorAffix."h/tailless" = "motionSerifed"
selectorAffix."h/descBase" = "topLeftSerifed" selectorAffix."h/descBase" = "topLeftSerifed"
selectorAffix."h/sansSerif" = "serifless" selectorAffix."h/sansSerif" = "serifless"
selectorAffix.hHookTop = "motionSerifed" selectorAffix.hHookTop = { if = [{ tail = "straight" }], then = "motionSerifed", else = "serifless" }
selectorAffix.hengHookTop = "serifless" selectorAffix.hengHookTop = "serifless"
selectorAffix.heng = "topLeftSerifed" selectorAffix.heng = "topLeftSerifed"
selectorAffix."cyrl/shha" = "motionSerifed" selectorAffix."cyrl/shha" = "motionSerifed"
@ -2849,6 +2857,7 @@ selectorAffix."n/descBase" = ""
selectorAffix."n/lTailBase" = "" selectorAffix."n/lTailBase" = ""
selectorAffix.eng = "" selectorAffix.eng = ""
selectorAffix."eng/phoneticRight" = "" selectorAffix."eng/phoneticRight" = ""
selectorAffix."eng/lTailBase" = ""
selectorAffix."grek/eta" = "" selectorAffix."grek/eta" = ""
selectorAffix."grek/eta/sansSerif" = "" selectorAffix."grek/eta/sansSerif" = ""
selectorAffix."cyrl/pe.italic" = "" selectorAffix."cyrl/pe.italic" = ""
@ -2863,6 +2872,7 @@ selectorAffix."n/descBase" = "earlessCorner"
selectorAffix."n/lTailBase" = "earlessCorner" selectorAffix."n/lTailBase" = "earlessCorner"
selectorAffix.eng = "earlessCorner" selectorAffix.eng = "earlessCorner"
selectorAffix."eng/phoneticRight" = "earlessCornerHTB" selectorAffix."eng/phoneticRight" = "earlessCornerHTB"
selectorAffix."eng/lTailBase" = "earlessCorner"
selectorAffix."grek/eta" = "earlessCorner" selectorAffix."grek/eta" = "earlessCorner"
selectorAffix."grek/eta/sansSerif" = "earlessCorner" selectorAffix."grek/eta/sansSerif" = "earlessCorner"
selectorAffix."cyrl/pe.italic" = "" selectorAffix."cyrl/pe.italic" = ""
@ -2877,6 +2887,7 @@ selectorAffix."n/descBase" = "earlessRounded"
selectorAffix."n/lTailBase" = "earlessRounded" selectorAffix."n/lTailBase" = "earlessRounded"
selectorAffix.eng = "earlessRounded" selectorAffix.eng = "earlessRounded"
selectorAffix."eng/phoneticRight" = "earlessRoundedHTB" selectorAffix."eng/phoneticRight" = "earlessRoundedHTB"
selectorAffix."eng/lTailBase" = "earlessRounded"
selectorAffix."grek/eta" = "earlessRounded" selectorAffix."grek/eta" = "earlessRounded"
selectorAffix."grek/eta/sansSerif" = "earlessRounded" selectorAffix."grek/eta/sansSerif" = "earlessRounded"
selectorAffix."cyrl/pe.italic" = "" selectorAffix."cyrl/pe.italic" = ""
@ -2894,6 +2905,7 @@ selectorAffix."n/descBase" = "straight"
selectorAffix."n/lTailBase" = "straight" selectorAffix."n/lTailBase" = "straight"
selectorAffix.eng = "straight" selectorAffix.eng = "straight"
selectorAffix."eng/phoneticRight" = "straight" selectorAffix."eng/phoneticRight" = "straight"
selectorAffix."eng/lTailBase" = "straight"
selectorAffix."grek/eta" = "straight" selectorAffix."grek/eta" = "straight"
selectorAffix."grek/eta/sansSerif" = "straight" selectorAffix."grek/eta/sansSerif" = "straight"
selectorAffix."cyrl/pe.italic" = "straight" selectorAffix."cyrl/pe.italic" = "straight"
@ -2908,6 +2920,7 @@ selectorAffix."n/descBase" = "straight"
selectorAffix."n/lTailBase" = "tailed" selectorAffix."n/lTailBase" = "tailed"
selectorAffix.eng = "straight" selectorAffix.eng = "straight"
selectorAffix."eng/phoneticRight" = "straight" selectorAffix."eng/phoneticRight" = "straight"
selectorAffix."eng/lTailBase" = "straight"
selectorAffix."grek/eta" = "straight" selectorAffix."grek/eta" = "straight"
selectorAffix."grek/eta/sansSerif" = "straight" selectorAffix."grek/eta/sansSerif" = "straight"
selectorAffix."cyrl/pe.italic" = "tailed" selectorAffix."cyrl/pe.italic" = "tailed"
@ -2923,6 +2936,7 @@ selectorAffix."n/descBase" = "serifless"
selectorAffix."n/lTailBase" = "serifless" selectorAffix."n/lTailBase" = "serifless"
selectorAffix.eng = "serifless" selectorAffix.eng = "serifless"
selectorAffix."eng/phoneticRight" = "serifless" selectorAffix."eng/phoneticRight" = "serifless"
selectorAffix."eng/lTailBase" = "serifless"
selectorAffix."grek/eta" = "serifless" selectorAffix."grek/eta" = "serifless"
selectorAffix."grek/eta/sansSerif" = "serifless" selectorAffix."grek/eta/sansSerif" = "serifless"
selectorAffix."cyrl/pe.italic" = "serifless" selectorAffix."cyrl/pe.italic" = "serifless"
@ -2938,6 +2952,7 @@ selectorAffix."n/descBase" = "topLeftSerifed"
selectorAffix."n/lTailBase" = "topLeftSerifed" selectorAffix."n/lTailBase" = "topLeftSerifed"
selectorAffix.eng = "topLeftSerifed" selectorAffix.eng = "topLeftSerifed"
selectorAffix."eng/phoneticRight" = "topLeftSerifed" selectorAffix."eng/phoneticRight" = "topLeftSerifed"
selectorAffix."eng/lTailBase" = "topLeftSerifed"
selectorAffix."grek/eta" = "topLeftSerifed" selectorAffix."grek/eta" = "topLeftSerifed"
selectorAffix."grek/eta/sansSerif" = "serifless" selectorAffix."grek/eta/sansSerif" = "serifless"
selectorAffix."cyrl/pe.italic" = "topLeftSerifed" selectorAffix."cyrl/pe.italic" = "topLeftSerifed"
@ -2953,6 +2968,7 @@ selectorAffix."n/descBase" = { if = [{ body = "normal" }], then = "topLeftSerife
selectorAffix."n/lTailBase" = { if = [{ terminal = "straight" }], then = "motionSerifed", else = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" } } selectorAffix."n/lTailBase" = { if = [{ terminal = "straight" }], then = "motionSerifed", else = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" } }
selectorAffix.eng = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" } selectorAffix.eng = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" }
selectorAffix."eng/phoneticRight" = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" } selectorAffix."eng/phoneticRight" = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" }
selectorAffix."eng/lTailBase" = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" }
selectorAffix."grek/eta" = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" } selectorAffix."grek/eta" = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" }
selectorAffix."grek/eta/sansSerif" = "serifless" selectorAffix."grek/eta/sansSerif" = "serifless"
selectorAffix."cyrl/pe.italic" = "motionSerifed" selectorAffix."cyrl/pe.italic" = "motionSerifed"
@ -2967,6 +2983,7 @@ selectorAffix."n/descBase" = "serifed"
selectorAffix."n/lTailBase" = { if = [{ terminal = "straight" }], then = "serifed", else = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" } } selectorAffix."n/lTailBase" = { if = [{ terminal = "straight" }], then = "serifed", else = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" } }
selectorAffix.eng = "serifed" selectorAffix.eng = "serifed"
selectorAffix."eng/phoneticRight" = "serifed" selectorAffix."eng/phoneticRight" = "serifed"
selectorAffix."eng/lTailBase" = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" }
selectorAffix."grek/eta" = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" } selectorAffix."grek/eta" = { if = [{ body = "normal" }], then = "topLeftSerifed", else = "serifless" }
selectorAffix."grek/eta/sansSerif" = "serifless" selectorAffix."grek/eta/sansSerif" = "serifless"
selectorAffix."cyrl/pe.italic" = "serifed" selectorAffix."cyrl/pe.italic" = "serifed"
@ -3644,7 +3661,7 @@ selectorAffix.v = "cursive"
selectorAffix."v/sansSerif" = "cursive" selectorAffix."v/sansSerif" = "cursive"
selectorAffix."v/nonCursive" = "straight" selectorAffix."v/nonCursive" = "straight"
selectorAffix.vHookTop = "" selectorAffix.vHookTop = ""
selectorAffix.vLoop = "" selectorAffix.vLoop = "straight"
[prime.v.variants-buildup.stages.serifs.serifless] [prime.v.variants-buildup.stages.serifs.serifless]
rank = 1 rank = 1
@ -3884,7 +3901,7 @@ disableIf = [{ body = "cursive" }]
descriptionAffix = "a tail turns leftward" descriptionAffix = "a tail turns leftward"
selectorAffix.y = "turn" selectorAffix.y = "turn"
selectorAffix.yLoop = "" selectorAffix.yLoop = ""
selectorAffix."y/sansSerif" = "" selectorAffix."y/sansSerif" = "turn"
selectorAffix."y/nonCursive" = "turn" selectorAffix."y/nonCursive" = "turn"
selectorAffix.yHookTop = "turn" selectorAffix.yHookTop = "turn"