Refine turned m serifs under monospace. (#2126)

This commit is contained in:
John McWilliams 2023-12-20 20:43:33 -05:00 committed by GitHub
parent 0de6d353fd
commit 43f247fbac
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 93 additions and 49 deletions

View file

@ -1,4 +1,6 @@
* Refine shape of Tshe and Cyrillic Capital Letter Te with Middle Hook (`U+A68A`) (#2123).
* Remove bottom serif of Cyrillic Small Letter Ghe with Middle Hook (`U+0495`) under italics.
* Make serif variants of Cyrillic Small Letter Tall Te (`U+1C84`) respond to italics.
* Make terminal serif behavior of palatalized Komi consonants (`U+0502`...`U+0505`, `U+0508`..`U+050F`) more consistent with each other.
* Make terminal serif behavior of palatalized Komi consonants (`U+0502`...`U+0505`, `U+0508`...`U+050F`) more consistent with each other.
* Refine serifs of Turned M (`U+019C`, `U+026F`, `U+0270`, `U+1D1F`, `U+1D5A`, `U+1DAD`), Cyrillic Sha (`U+0448`, `U+2DF2`, `U+1E046`, `U+1E064`), and Cyrillic Shcha (`U+0449`, `U+2DF3`) under monospace.
- As a consequence, serifed and motion-serifed variants will look identical under monospace.

View file

@ -161,7 +161,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1D57 't'
list 0x1D58 'u'
list 0x1D59 'uSideways'
list 0x1D5A 'turnm'
list 0x1D5A 'turnm/reduced'
list 0x1D5B 'v'
list 0x1D5C 'latinAyin'
list 0x1D5D 'grek/beta'
@ -188,7 +188,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1DAA 'lPalatalHook'
list 0x1DAB 'smcpL'
list 0x1DAC 'meng'
list 0x1DAD 'turnmLeg'
list 0x1DAD 'turnmLeg/reduced'
list 0x1DAE 'nLTail'
list 0x1DAF 'nHookBottom'
list 0x1DB0 'smcpN'
@ -266,7 +266,7 @@ glyph-block Autobuild-Transformed : begin
list 0x10792 'smcpG'
list 0x10793 'gScriptHookTop'
list 0x10794 'smcpGHookTop'
list 0x10795 'hBar'
list 0x10795 'hStroke'
list 0x10796 'smcpH'
list 0x10797 'hengHookTop'
list 0x10798 'dotlessjBarHookTop'
@ -319,7 +319,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1E043 'cyrl/ha'
list 0x1E044 'cyrl/tse'
list 0x1E045 'cyrl/che'
list 0x1E046 'cyrl/sha'
list 0x1E046 'cyrl/sha/reduced'
list 0x1E047 'cyrl/yery'
list 0x1E048 'cyrl/e'
list 0x1E049 'cyrl/yu'
@ -450,7 +450,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1E061 'cyrl/ha'
list 0x1E062 'cyrl/tse'
list 0x1E063 'cyrl/che'
list 0x1E064 'cyrl/sha'
list 0x1E064 'cyrl/sha/reduced'
list 0x1E065 'cyrl/yer'
list 0x1E066 'cyrl/yery'
list 0x1E067 'cyrl/ge'
@ -511,6 +511,7 @@ glyph-block Autobuild-Transformed : begin
list 0x36C 'r'
list 0x36E 'v'
list 0x36F 'x'
list 0x1ACE 'tInsular'
list 0x1DD3 'flattenedOpena'
list 0x1DD4 'ae'
list 0x1DD5 'ao'
@ -528,7 +529,6 @@ glyph-block Autobuild-Transformed : begin
list 0x1DED 'oWithLightCentralizationStroke'
list 0x1DF0 'uWithLightCentralizationStroke'
list 0x1DF1 'w'
list 0x1ACE 'tInsular'
list 0x20F0 'asterisk/slashBot'
list 0x2DE1 'cyrl/ve'
list 0x2DE2 'cyrl/ghe'
@ -546,8 +546,8 @@ glyph-block Autobuild-Transformed : begin
list 0x2DEF 'cyrl/ha'
list 0x2DF0 'cyrl/tse'
list 0x2DF1 'cyrl/che'
list 0x2DF2 'cyrl/sha'
list 0x2DF3 'cyrl/shcha'
list 0x2DF2 'cyrl/sha/reduced'
list 0x2DF3 'cyrl/shcha/reduced'
list 0x2DF4 'cyrl/fita'
list 0x2DF5 'cyrl/este'
list 0x2DF6 'cyrl/a'
@ -561,6 +561,9 @@ glyph-block Autobuild-Transformed : begin
list 0x2DFF 'cyrl/bigYusIotified'
list 0xA674 'cyrl/ye'
list 0xA675 'cyrl/i'
list 0xA678 'cyrl/yer'
list 0xA679 'cyrl/yery'
list 0xA67A 'cyrl/yeri'
list 0xA67B 'cyrl/omega'
list 0xA69F 'cyrl/eIotified'
@ -580,9 +583,6 @@ glyph-block Autobuild-Transformed : begin
list 0x2DE0 'cyrl/be'
list 0x2DFA 'cyrl/yat'
list 0xA676 'cyrl/yi'
list 0xA678 'cyrl/yer'
list 0xA679 'cyrl/yery'
list 0xA67A 'cyrl/yeri'
list 0x1E08F 'cyrl/Ukrainiani'
createMedievalCombs Descender XH : list

View file

@ -14,7 +14,9 @@ glyph-block Letter-Cyrillic-Orthography : begin
orthographic-italic 'cyrl/te' 0x442
orthographic-italic 'cyrl/tse' 0x446
orthographic-italic 'cyrl/sha' 0x448
orthographic-italic 'cyrl/sha/reduced' null
orthographic-italic 'cyrl/shcha' 0x449
orthographic-italic 'cyrl/shcha/reduced' null
orthographic-italic 'cyrl/dzhe' 0x45F
orthographic-italic 'cyrl/yat' 0x463
orthographic-italic 'cyrl/iShortTail' 0x48B

View file

@ -40,6 +40,8 @@ glyph-block Letter-Cyrillic-Sha : begin
include : df.markSet.e
include : CyrShaShape XH df false
alias 'cyrl/sha/reduced.upright' null 'cyrl/sha.upright'
create-glyph 'cyrl/teThreeLeg.upright' : glyph-proc
local df : include : DivFrame para.diversityM 3
include : df.markSet.e
@ -61,3 +63,5 @@ glyph-block Letter-Cyrillic-Sha : begin
local df : include : DivFrame para.diversityM 3
include : df.markSet.e
include : CyrShchaShape XH df
alias 'cyrl/shcha/reduced.upright' null 'cyrl/shcha.upright'

View file

@ -84,7 +84,7 @@ glyph-block Letter-Latin-Lower-H : begin
if fTailed : include : RightwardTailedBar RightSB 0 (XH - SmallArchDepthB)
include : Serifs fTailed false
create-glyph "hBar.\(suffix)" : glyph-proc
create-glyph "hStroke.\(suffix)" : glyph-proc
include [refer-glyph "h.\(suffix)"] AS_BASE ALSO_METRICS
include : HBar.mOverlay fHasTopSerif
@ -110,7 +110,7 @@ glyph-block Letter-Latin-Lower-H : begin
eject-contour 'serifRB'
include : EngHook RightSB 0 Descender
create-glyph "hengBar.\(suffix)" : glyph-proc
create-glyph "hengStroke.\(suffix)" : glyph-proc
include [refer-glyph "heng.\(suffix)"] AS_BASE ALSO_METRICS
include : HBar.mOverlay fHasTopSerif
@ -118,12 +118,12 @@ glyph-block Letter-Latin-Lower-H : begin
link-reduced-variant 'h/descBase' 'h'
link-reduced-variant 'h/sansSerif' 'h' MathSansSerif
select-variant 'hBar' 0x127 (follow -- 'h')
select-variant 'hStroke' 0x127 (follow -- 'h')
select-variant 'hHookTop' 0x266
select-variant 'hengHookTop' 0x267
select-variant 'heng' 0xA727
select-variant 'cyrl/dje' 0x452 (follow -- 'heng') (shapeFrom -- 'hengBar')
select-variant 'cyrl/dje' 0x452 (follow -- 'heng') (shapeFrom -- 'hengStroke')
select-variant 'cyrl/shha' 0x4BB (shapeFrom -- 'h')
@ -147,7 +147,7 @@ glyph-block Letter-Latin-Lower-H : begin
set-base-anchor 'belowBraceL' ((-Middle) + shift - 0.5 * markExtend) belowMarkMid
set-base-anchor 'belowBraceR' ((-Middle) + shift + 0.5 * markExtend) belowMarkMid
alias 'cyrl/tshe' 0x45B 'hBar'
alias 'cyrl/tshe' 0x45B 'hStroke'
define TurnHConfig : object
toothedSerifless { no-shape }
@ -166,7 +166,7 @@ glyph-block Letter-Latin-Lower-H : begin
include : MarkSet.p
include : LeaningAnchor.Below.VBar.r RightSB
create-glyph "hookturnh.\(suffix)" : glyph-proc
create-glyph "turnhHookLeft.\(suffix)" : glyph-proc
include : nShoulder
left -- (SB + [HSwToV Stroke])
right -- RightSB
@ -179,7 +179,7 @@ glyph-block Letter-Latin-Lower-H : begin
include : LeaningAnchor.Below.VBar.r RightSB
if (Serifs !== SmallTurnHMotionSerifs) : begin
create-glyph "hookturnhrtail.\(suffix)" : glyph-proc
create-glyph "turnhHookLeftRTail.\(suffix)" : glyph-proc
include : nShoulder
left -- (SB + [HSwToV Stroke])
right -- RightSB
@ -192,8 +192,8 @@ glyph-block Letter-Latin-Lower-H : begin
include : MarkSet.p
select-variant 'turnh' 0x265
select-variant 'hookturnh' 0x2AE
select-variant 'hookturnhrtail' 0x2AF
select-variant 'turnhHookLeft' 0x2AE
select-variant 'turnhHookLeftRTail' 0x2AF
glyph-block-import Letter-Blackboard : BBS BBD BBBarLeft
create-glyph 'mathbb/h' 0x1D559 : glyph-proc

View file

@ -71,7 +71,7 @@ glyph-block Letter-Latin-Lower-M : begin
define [SmallMBottomMotionLeftSerif df top lbot fFull] : begin
local sf : SerifFrame.fromDf df top lbot
return : if fFull sf.lb.inner sf.lb.outer
return : if fFull sf.lb.inner [no-shape]
define [SmallMBottomMiddleSerif df top mbot fFull mid] : begin
local sf : SerifFrame.fromDf df top mbot
@ -378,15 +378,19 @@ glyph-block Letter-Latin-Lower-M : begin
include : CyrDescender.rSideJut df.rightSB 0 (refSw -- df.mvs)
select-variant 'turnm' 0x26F
link-reduced-variant 'turnm/reduced' 'turnm'
select-variant 'capitalTurnm' 0x19C (follow -- 'turnm')
select-variant 'turnmLeg' 0x270
select-variant 'turnmSideways' 0x1D1F (follow -- 'turnm')
link-reduced-variant 'turnmLeg/reduced' 'turnmLeg'
select-variant 'turnmSideways' 0x1D1F (follow -- 'turnm/reduced')
select-variant 'cyrl/sha.italic' (shapeFrom -- 'turnm')
alias 'cyrl/sha.BGR' null 'cyrl/sha.italic'
select-variant 'cyrl/sha/reduced.italic' (shapeFrom -- 'turnm')
select-variant 'cyrl/shcha.italic'
alias 'cyrl/shcha.BGR' null 'cyrl/shcha.italic'
select-variant 'cyrl/shcha/reduced.italic' (shapeFrom -- 'cyrl/shcha.italic')
derive-composites 'cyrl/te.SRB' null 'cyrl/sha.italic' 'macronAbove'

View file

@ -260,7 +260,7 @@ glyph-block Letter-Latin-U : begin
select-variant 'micro' 0xB5 (shapeFrom -- 'grek/mu')
select-variant 'cyrl/i.italic' (shapeFrom -- 'u')
select-variant 'cyrl/i.italic.reduced' (shapeFrom -- 'u')
select-variant 'cyrl/i.italic/descBase' (shapeFrom -- 'u')
alias 'cyrl/i.BGR' null 'cyrl/i.italic'
select-variant 'uSideways' 0x1D1D (follow -- 'u')
select-variant 'uDieresisSidewaysBase' null (follow -- 'u')
@ -273,7 +273,7 @@ glyph-block Letter-Latin-U : begin
include [refer-glyph src] AS_BASE ALSO_METRICS
include [refer-glyph 'graveAbove']
derive-composites 'cyrl/iShortTail.italic' null 'cyrl/i.italic.reduced'
derive-composites 'cyrl/iShortTail.italic' null 'cyrl/i.italic/descBase'
refer-glyph 'breveAbove'
CyrTailDescender.rSideJut RightSB 0

View file

@ -3708,14 +3708,18 @@ selectorAffix."u/sansSerif" = "toothed"
selectorAffix."u/uRTailBase" = "urtBase"
selectorAffix.uHookLeft = "toothed"
selectorAffix.turnh = "toothed"
selectorAffix.hookturnh = "toothed"
selectorAffix.hookturnhrtail = "toothed"
selectorAffix.turnhHookLeft = "toothed"
selectorAffix.turnhHookLeftRTail = "toothed"
selectorAffix.turnm = "toothed"
selectorAffix."turnm/reduced" = "toothed"
selectorAffix.turnmLeg = "toothed"
selectorAffix."turnmLeg/reduced" = "toothed"
selectorAffix."cyrl/i.italic" = "toothed"
selectorAffix."cyrl/i.italic/descBase" = "toothed"
selectorAffix."cyrl/sha.italic" = "toothed"
selectorAffix."cyrl/sha/reduced.italic" = "toothed"
selectorAffix."cyrl/shcha.italic" = "toothed"
selectorAffix."cyrl/i.italic.reduced" = "toothed"
selectorAffix."cyrl/shcha/reduced.italic" = "toothed"
selectorAffix."cyrl/dzhe.italic" = "toothed"
selectorAffix."cyrl/tse.italic" = "toothed"
selectorAffix."ue/u" = ""
@ -3728,14 +3732,18 @@ selectorAffix."u/sansSerif" = "tailed"
selectorAffix."u/uRTailBase" = "urtBase"
selectorAffix.uHookLeft = "tailed"
selectorAffix.turnh = "toothed"
selectorAffix.hookturnh = "toothed"
selectorAffix.hookturnhrtail = "toothed"
selectorAffix.turnhHookLeft = "toothed"
selectorAffix.turnhHookLeftRTail = "toothed"
selectorAffix.turnm = "tailed"
selectorAffix."turnm/reduced" = "tailed"
selectorAffix.turnmLeg = "toothed"
selectorAffix."turnmLeg/reduced" = "toothed"
selectorAffix."cyrl/i.italic" = "tailed"
selectorAffix."cyrl/i.italic/descBase" = "toothed"
selectorAffix."cyrl/sha.italic" = "tailed"
selectorAffix."cyrl/sha/reduced.italic" = "tailed"
selectorAffix."cyrl/shcha.italic" = "toothed"
selectorAffix."cyrl/i.italic.reduced" = "toothed"
selectorAffix."cyrl/shcha/reduced.italic" = "toothed"
selectorAffix."cyrl/dzhe.italic" = "tailed"
selectorAffix."cyrl/tse.italic" = "toothed"
selectorAffix."ue/u" = ""
@ -3748,14 +3756,18 @@ selectorAffix."u/sansSerif" = "toothlessCorner"
selectorAffix."u/uRTailBase" = "urtBase"
selectorAffix.uHookLeft = "toothlessCorner"
selectorAffix.turnh = "toothed"
selectorAffix.hookturnh = "toothed"
selectorAffix.hookturnhrtail = "toothed"
selectorAffix.turnhHookLeft = "toothed"
selectorAffix.turnhHookLeftRTail = "toothed"
selectorAffix.turnm = "toothlessCorner"
selectorAffix."turnm/reduced" = "toothlessCorner"
selectorAffix.turnmLeg = "toothed"
selectorAffix."turnmLeg/reduced" = "toothed"
selectorAffix."cyrl/i.italic" = "toothed"
selectorAffix."cyrl/i.italic/descBase" = "toothed"
selectorAffix."cyrl/sha.italic" = "toothed"
selectorAffix."cyrl/sha/reduced.italic" = "toothed"
selectorAffix."cyrl/shcha.italic" = "toothed"
selectorAffix."cyrl/i.italic.reduced" = "toothed"
selectorAffix."cyrl/shcha/reduced.italic" = "toothed"
selectorAffix."cyrl/dzhe.italic" = "toothed"
selectorAffix."cyrl/tse.italic" = "toothed"
selectorAffix."ue/u" = ""
@ -3768,14 +3780,18 @@ selectorAffix."u/sansSerif" = "toothlessRounded"
selectorAffix."u/uRTailBase" = "urtBase"
selectorAffix.uHookLeft = "toothlessRounded"
selectorAffix.turnh = "toothed"
selectorAffix.hookturnh = "toothed"
selectorAffix.hookturnhrtail = "toothed"
selectorAffix.turnhHookLeft = "toothed"
selectorAffix.turnhHookLeftRTail = "toothed"
selectorAffix.turnm = "toothlessRounded"
selectorAffix."turnm/reduced" = "toothlessRounded"
selectorAffix.turnmLeg = "toothed"
selectorAffix."turnmLeg/reduced" = "toothed"
selectorAffix."cyrl/i.italic" = "toothed"
selectorAffix."cyrl/i.italic/descBase" = "toothed"
selectorAffix."cyrl/sha.italic" = "toothed"
selectorAffix."cyrl/sha/reduced.italic" = "toothed"
selectorAffix."cyrl/shcha.italic" = "toothed"
selectorAffix."cyrl/i.italic.reduced" = "toothed"
selectorAffix."cyrl/shcha/reduced.italic" = "toothed"
selectorAffix."cyrl/dzhe.italic" = "toothed"
selectorAffix."cyrl/tse.italic" = "toothed"
selectorAffix."ue/u" = ""
@ -3789,14 +3805,18 @@ selectorAffix."u/sansSerif" = "serifless"
selectorAffix."u/uRTailBase" = "serifless"
selectorAffix.uHookLeft = "serifless"
selectorAffix.turnh = "serifless"
selectorAffix.hookturnh = "serifless"
selectorAffix.hookturnhrtail = "serifless"
selectorAffix.turnhHookLeft = "serifless"
selectorAffix.turnhHookLeftRTail = "serifless"
selectorAffix.turnm = "serifless"
selectorAffix."turnm/reduced" = "serifless"
selectorAffix.turnmLeg = "serifless"
selectorAffix."turnmLeg/reduced" = "serifless"
selectorAffix."cyrl/i.italic" = "serifless"
selectorAffix."cyrl/i.italic/descBase" = "serifless"
selectorAffix."cyrl/sha.italic" = "serifless"
selectorAffix."cyrl/sha/reduced.italic" = "serifless"
selectorAffix."cyrl/shcha.italic" = "serifless"
selectorAffix."cyrl/i.italic.reduced" = "serifless"
selectorAffix."cyrl/shcha/reduced.italic" = "serifless"
selectorAffix."cyrl/dzhe.italic" = "serifless"
selectorAffix."cyrl/tse.italic" = "serifless"
selectorAffix."ue/u" = "serifless"
@ -3809,14 +3829,18 @@ selectorAffix."u/sansSerif" = "serifless"
selectorAffix."u/uRTailBase" = "motionSerifed"
selectorAffix.uHookLeft = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"}
selectorAffix.turnh = "motionSerifed"
selectorAffix.hookturnh = "motionSerifed"
selectorAffix.hookturnhrtail = "serifless"
selectorAffix.turnhHookLeft = "motionSerifed"
selectorAffix.turnhHookLeftRTail = "serifless"
selectorAffix.turnm = {if = [{body = "toothed"}], then = "motionSerifed", else = "topLeftSerifed"}
selectorAffix."turnm/reduced" = {if = [{body = "toothed"}], then = "motionSerifed", else = "topLeftSerifed"}
selectorAffix.turnmLeg = "motionSerifed"
selectorAffix."turnmLeg/reduced" = "motionSerifed"
selectorAffix."cyrl/i.italic" = "motionSerifed"
selectorAffix."cyrl/i.italic/descBase" = "motionSerifed"
selectorAffix."cyrl/sha.italic" = "motionSerifed"
selectorAffix."cyrl/sha/reduced.italic" = "motionSerifed"
selectorAffix."cyrl/shcha.italic" = "motionSerifed"
selectorAffix."cyrl/i.italic.reduced" = "motionSerifed"
selectorAffix."cyrl/shcha/reduced.italic" = "motionSerifed"
selectorAffix."cyrl/dzhe.italic" = "motionSerifed"
selectorAffix."cyrl/tse.italic" = "motionSerifed"
selectorAffix."ue/u" = "serifed"
@ -3830,14 +3854,18 @@ selectorAffix."u/sansSerif" = "serifless"
selectorAffix."u/uRTailBase" = "serifless"
selectorAffix.uHookLeft = "bottomRightSerifed"
selectorAffix.turnh = "serifless"
selectorAffix.hookturnh = "serifless"
selectorAffix.hookturnhrtail = "serifless"
selectorAffix.turnhHookLeft = "serifless"
selectorAffix.turnhHookLeftRTail = "serifless"
selectorAffix.turnm = "bottomRightSerifed"
selectorAffix."turnm/reduced" = "bottomRightSerifed"
selectorAffix.turnmLeg = "serifless"
selectorAffix."turnmLeg/reduced" = "serifless"
selectorAffix."cyrl/i.italic" = "bottomRightSerifed"
selectorAffix."cyrl/i.italic/descBase" = "serifless"
selectorAffix."cyrl/sha.italic" = "bottomRightSerifed"
selectorAffix."cyrl/sha/reduced.italic" = "bottomRightSerifed"
selectorAffix."cyrl/shcha.italic" = "serifless"
selectorAffix."cyrl/i.italic.reduced" = "serifless"
selectorAffix."cyrl/shcha/reduced.italic" = "serifless"
selectorAffix."cyrl/dzhe.italic" = "bottomRightSerifed"
selectorAffix."cyrl/tse.italic" = "serifless"
selectorAffix."ue/u" = "serifless"
@ -3850,14 +3878,18 @@ selectorAffix."u/sansSerif" = "serifless"
selectorAffix."u/uRTailBase" = "serifed"
selectorAffix.uHookLeft = "serifed"
selectorAffix.turnh = "serifed"
selectorAffix.hookturnh = "serifed"
selectorAffix.hookturnhrtail = "serifed"
selectorAffix.turnhHookLeft = "serifed"
selectorAffix.turnhHookLeftRTail = "serifed"
selectorAffix.turnm = "serifed"
selectorAffix."turnm/reduced" = {if = [{body = "toothed"}], then = "motionSerifed", else = "topLeftSerifed"}
selectorAffix.turnmLeg = "serifed"
selectorAffix."turnmLeg/reduced" = "motionSerifed"
selectorAffix."cyrl/i.italic" = "serifed"
selectorAffix."cyrl/i.italic/descBase" = "serifed"
selectorAffix."cyrl/sha.italic" = "serifed"
selectorAffix."cyrl/sha/reduced.italic" = "motionSerifed"
selectorAffix."cyrl/shcha.italic" = "serifed"
selectorAffix."cyrl/i.italic.reduced" = "serifed"
selectorAffix."cyrl/shcha/reduced.italic" = "motionSerifed"
selectorAffix."cyrl/dzhe.italic" = "serifed"
selectorAffix."cyrl/tse.italic" = "serifed"
selectorAffix."ue/u" = "serifed"