Fix hook alignment of LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK (U+1DF09) (#1754).

This commit is contained in:
be5invis 2023-05-28 15:54:26 -07:00
parent ba50c5af21
commit 0c51817cc0
4 changed files with 63 additions and 11 deletions

View file

@ -783,6 +783,16 @@ desc = "Customizer Preview Only Quasi-proportional Sans"
spacing = "quasi-proportional" spacing = "quasi-proportional"
export-glyph-names = false export-glyph-names = false
[buildPlans.iosevka-QP.weights.regular]
shape = 400
menu = 400
css = 400
[buildPlans.iosevka-QP.weights.bold]
shape = 700
menu = 700
css = 700
[buildPlans.iosevka-QP-slab] [buildPlans.iosevka-QP-slab]
family = "Iosevka QP Slab" family = "Iosevka QP Slab"
desc = "Customizer Preview Only Quasi-proportional Slab" desc = "Customizer Preview Only Quasi-proportional Slab"
@ -790,12 +800,32 @@ serifs = 'slab'
spacing = "quasi-proportional" spacing = "quasi-proportional"
export-glyph-names = false export-glyph-names = false
[buildPlans.iosevka-QP-slab.weights.regular]
shape = 400
menu = 400
css = 400
[buildPlans.iosevka-QP-slab.weights.bold]
shape = 700
menu = 700
css = 700
[buildPlans.iosevka-QPE] [buildPlans.iosevka-QPE]
family = "Iosevka QPE" family = "Iosevka QPE"
desc = "Customizer Preview Only Quasi-proportional-extension-only Sans" desc = "Customizer Preview Only Quasi-proportional-extension-only Sans"
spacing = "quasi-proportional-extension-only" spacing = "quasi-proportional-extension-only"
export-glyph-names = false export-glyph-names = false
[buildPlans.iosevka-QPE.weights.regular]
shape = 400
menu = 400
css = 400
[buildPlans.iosevka-QPE.weights.bold]
shape = 700
menu = 700
css = 700
[buildPlans.iosevka-QPE-slab] [buildPlans.iosevka-QPE-slab]
family = "Iosevka QPE Slab" family = "Iosevka QPE Slab"
desc = "Customizer Preview Only Quasi-proportional-extension-only Slab" desc = "Customizer Preview Only Quasi-proportional-extension-only Slab"
@ -803,6 +833,15 @@ serifs = 'slab'
spacing = "quasi-proportional-extension-only" spacing = "quasi-proportional-extension-only"
export-glyph-names = false export-glyph-names = false
[buildPlans.iosevka-QPE-slab.weights.regular]
shape = 400
menu = 400
css = 400
[buildPlans.iosevka-QPE-slab.weights.bold]
shape = 700
menu = 700
css = 700
################################################################################################### ###################################################################################################
# Collect plans # Collect plans

1
changes/24.1.1.md Normal file
View file

@ -0,0 +1 @@
* Fix hook alignment of LATIN SMALL LETTER T WITH HOOK AND RETROFLEX HOOK (`U+1DF09`) (#1754).

View file

@ -56,6 +56,7 @@ glyph-block Letter-Latin-Lower-T : begin
local xLeft : xSmallTBarLeftT df local xLeft : xSmallTBarLeftT df
set-base-anchor 'above' (xLeft + 0.5 * Stroke * HVContrast) top set-base-anchor 'above' (xLeft + 0.5 * Stroke * HVContrast) top
set-base-anchor 'hooktopAttach' (xLeft + 0.5 * Stroke * HVContrast) top
set-base-anchor 'below' [mix xLeft gEnd.x : StrokeWidthBlend 0.375 0.5] bot set-base-anchor 'below' [mix xLeft gEnd.x : StrokeWidthBlend 0.375 0.5] bot
set-base-anchor 'overlay' (g.knots.0.x + 0.625 * Stroke * HVContrast) (XH * 0.58) set-base-anchor 'overlay' (g.knots.0.x + 0.625 * Stroke * HVContrast) (XH * 0.58)
@ -85,6 +86,7 @@ glyph-block Letter-Latin-Lower-T : begin
set-base-anchor 'bottomright' gEnd.x gEnd.y set-base-anchor 'bottomright' gEnd.x gEnd.y
set-base-anchor 'above' ([xSmallTBarLeftT df] + 0.5 * Stroke * HVContrast) top set-base-anchor 'above' ([xSmallTBarLeftT df] + 0.5 * Stroke * HVContrast) top
set-base-anchor 'hooktopAttach' ([xSmallTBarLeftT df] + 0.5 * Stroke * HVContrast) top
set-base-anchor 'overlay' (g.knots.0.x + 0.125 * Stroke * HVContrast) (XH * 0.58) set-base-anchor 'overlay' (g.knots.0.x + 0.125 * Stroke * HVContrast) (XH * 0.58)
export : define [Retroflex df top bot] : Flat.Retroflex df top bot export : define [Retroflex df top bot] : Flat.Retroflex df top bot
@ -137,6 +139,7 @@ glyph-block Letter-Latin-Lower-T : begin
curl xBarLeft top [heading Upward] curl xBarLeft top [heading Upward]
set-base-anchor 'above' (xBarLeft + 0.5 * Stroke * HVContrast) top set-base-anchor 'above' (xBarLeft + 0.5 * Stroke * HVContrast) top
set-base-anchor 'hooktopAttach' (xBarLeft + 0.5 * Stroke * HVContrast) top
set-base-anchor 'topright' xCrossRight Ascender set-base-anchor 'topright' xCrossRight Ascender
set-base-anchor 'overlay' (xBarLeft + 0.625 * Stroke * HVContrast) (XH * 0.58) set-base-anchor 'overlay' (xBarLeft + 0.625 * Stroke * HVContrast) (XH * 0.58)
set-base-anchor 'below' (HalfStroke * HVContrast + [Math.min (xBarLeft + (1 / 3) * hd.x) (xCrossRight - 1)]) bot set-base-anchor 'below' (HalfStroke * HVContrast + [Math.min (xBarLeft + (1 / 3) * hd.x) (xCrossRight - 1)]) bot
@ -150,6 +153,7 @@ glyph-block Letter-Latin-Lower-T : begin
include : VBar.m df.middle 0 top include : VBar.m df.middle 0 top
include : HCrossBar.top (df.middle - LongJut * [Math.sqrt df.div]) (df.middle + LongJut * [Math.sqrt df.div]) yCrossBar include : HCrossBar.top (df.middle - LongJut * [Math.sqrt df.div]) (df.middle + LongJut * [Math.sqrt df.div]) yCrossBar
set-base-anchor 'overlay' df.middle (XH * 0.58) set-base-anchor 'overlay' df.middle (XH * 0.58)
set-base-anchor 'hooktopAttach' df.middle top
export : define [Retroflex df top bot] : Flat.CrossRTBody df top bot export : define [Retroflex df top bot] : Flat.CrossRTBody df top bot
@ -174,9 +178,10 @@ glyph-block Letter-Latin-Lower-T : begin
include : difference include : difference
HCrossBar.top xBarLeft (df.middle + df.div * LongJut) yCrossBar HCrossBar.top xBarLeft (df.middle + df.div * LongJut) yCrossBar
MaskLeft (xBarLeft - O) MaskLeft (xBarLeft - O)
set-base-anchor 'above' (xBarLeft + 0.5 * Stroke * HVContrast) top set-base-anchor 'above' (xBarLeft + 0.5 * HVContrast * Stroke) top
set-base-anchor 'overlay' (xBarLeft + 0.625 * Stroke * HVContrast) (XH * 0.58) set-base-anchor 'hooktopAttach' (xBarLeft + 0.5 * HVContrast * Stroke) top
set-base-anchor 'below' (xBarLeft + HalfStroke * HVContrast) bot set-base-anchor 'overlay' (xBarLeft + 0.625 * HVContrast * Stroke) (XH * 0.58)
set-base-anchor 'below' (xBarLeft + HVContrast * HalfStroke) bot
export : define [LTBody df top bot] : glyph-proc export : define [LTBody df top bot] : glyph-proc
include : Body df top bot include : Body df top bot
@ -189,6 +194,7 @@ glyph-block Letter-Latin-Lower-T : begin
export : define [Retroflex df top bot] : glyph-proc export : define [Retroflex df top bot] : glyph-proc
define xBarLeft : xSmallTBarLeftT df define xBarLeft : xSmallTBarLeftT df
set-base-anchor 'hooktopAttach' (xBarLeft + 0.5 * HVContrast * Stroke) top
include : dispiro include : dispiro
widths.rhs widths.rhs
straight.left.start (xBarLeft + HookX + HalfStroke * HVContrast) bot straight.left.start (xBarLeft + HookX + HalfStroke * HVContrast) bot
@ -246,8 +252,9 @@ glyph-block Letter-Latin-Lower-T : begin
create-glyph "tHookTop.\(suffix)" : glyph-proc create-glyph "tHookTop.\(suffix)" : glyph-proc
include [refer-glyph "t.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "t.\(suffix)"] AS_BASE ALSO_METRICS
local attach : currentGlyph.gizmo.unapply currentGlyph.baseAnchors.hooktopAttach
currentGlyph.clearGeometry currentGlyph.clearGeometry
local attach : currentGlyph.gizmo.unapply currentGlyph.baseAnchors.above
include : union include : union
difference [Style.Body df top 0] [MaskAbove XH] difference [Style.Body df top 0] [MaskAbove XH]
VerticalHook.m attach.x XH HookX (-Hook) VerticalHook.m attach.x XH HookX (-Hook)
@ -269,13 +276,10 @@ glyph-block Letter-Latin-Lower-T : begin
include : Style.Retroflex df top Descender include : Style.Retroflex df top Descender
create-glyph "tHookTopRTail.\(suffix)" : glyph-proc create-glyph "tHookTopRTail.\(suffix)" : glyph-proc
include [refer-glyph "t.\(suffix)"] AS_BASE ALSO_METRICS
include : df.markSet.if include : df.markSet.if
currentGlyph.clearGeometry include : Style.Retroflex df XH Descender
local attach : currentGlyph.gizmo.unapply currentGlyph.baseAnchors.above local attach : currentGlyph.gizmo.unapply currentGlyph.baseAnchors.hooktopAttach
include : union include : VerticalHook.m attach.x XH HookX (-Hook)
difference [Style.Retroflex df top Descender] [MaskAbove XH]
VerticalHook.m attach.x XH HookX (-Hook)
turned "turnt.\(suffix)" nothing "t.\(suffix)" df.middle (XH / 2) [df.markSet.p] turned "turnt.\(suffix)" nothing "t.\(suffix)" df.middle (XH / 2) [df.markSet.p]
@ -315,7 +319,7 @@ glyph-block Letter-Latin-Lower-T : begin
select-variant 'tRTail' 0x288 select-variant 'tRTail' 0x288
select-variant 'tCurlyTail' 0x236 select-variant 'tCurlyTail' 0x236
select-variant "tHookTopRTail" 0x1DF09 (follow -- 't') select-variant "tHookTopRTail" 0x1DF09
CreateAccentedComposition 'tTildeOver' 0x1D75 't' 'tildeOver' CreateAccentedComposition 'tTildeOver' 0x1D75 't' 'tildeOver'

View file

@ -3193,6 +3193,7 @@ selectorAffix."t/phoneticLeft1" = "flatHook"
selectorAffix."t/phoneticLeft2" = "flatHook" selectorAffix."t/phoneticLeft2" = "flatHook"
selectorAffix."t/phoneticLeft3" = "standard" selectorAffix."t/phoneticLeft3" = "standard"
selectorAffix.tHookTop = "standard" selectorAffix.tHookTop = "standard"
selectorAffix.tHookTopRTail = "flatHook"
selectorAffix.tRTail = "flatHook" selectorAffix.tRTail = "flatHook"
selectorAffix.tLTail = "standard" selectorAffix.tLTail = "standard"
selectorAffix.tCurlyTail = "standard" selectorAffix.tCurlyTail = "standard"
@ -3206,6 +3207,7 @@ selectorAffix."t/phoneticLeft1" = "flatHook"
selectorAffix."t/phoneticLeft2" = "flatHook" selectorAffix."t/phoneticLeft2" = "flatHook"
selectorAffix."t/phoneticLeft3" = "flatHook" selectorAffix."t/phoneticLeft3" = "flatHook"
selectorAffix.tHookTop = "flatHook" selectorAffix.tHookTop = "flatHook"
selectorAffix.tHookTopRTail = "flatHook"
selectorAffix.tRTail = "flatHook" selectorAffix.tRTail = "flatHook"
selectorAffix.tLTail = "flatHook" selectorAffix.tLTail = "flatHook"
selectorAffix.tCurlyTail = "flatHook" selectorAffix.tCurlyTail = "flatHook"
@ -3219,6 +3221,7 @@ selectorAffix."t/phoneticLeft1" = "flatHook"
selectorAffix."t/phoneticLeft2" = "flatHook" selectorAffix."t/phoneticLeft2" = "flatHook"
selectorAffix."t/phoneticLeft3" = "diagonalTailed" selectorAffix."t/phoneticLeft3" = "diagonalTailed"
selectorAffix.tHookTop = "diagonalTailed" selectorAffix.tHookTop = "diagonalTailed"
selectorAffix.tHookTopRTail = "flatHook"
selectorAffix.tRTail = "flatHook" selectorAffix.tRTail = "flatHook"
selectorAffix.tLTail = "diagonalTailed" selectorAffix.tLTail = "diagonalTailed"
selectorAffix.tCurlyTail = "standard" selectorAffix.tCurlyTail = "standard"
@ -3232,6 +3235,7 @@ selectorAffix."t/phoneticLeft1" = "cross"
selectorAffix."t/phoneticLeft2" = "cross" selectorAffix."t/phoneticLeft2" = "cross"
selectorAffix."t/phoneticLeft3" = "cross" selectorAffix."t/phoneticLeft3" = "cross"
selectorAffix.tHookTop = "cross" selectorAffix.tHookTop = "cross"
selectorAffix.tHookTopRTail = "cross"
selectorAffix.tRTail = "cross" selectorAffix.tRTail = "cross"
selectorAffix.tLTail = "cross" selectorAffix.tLTail = "cross"
selectorAffix.tCurlyTail = "cross" selectorAffix.tCurlyTail = "cross"
@ -3245,6 +3249,7 @@ selectorAffix."t/phoneticLeft1" = "hooklessAsymmetric"
selectorAffix."t/phoneticLeft2" = "hooklessAsymmetric" selectorAffix."t/phoneticLeft2" = "hooklessAsymmetric"
selectorAffix."t/phoneticLeft3" = "hooklessAsymmetric" selectorAffix."t/phoneticLeft3" = "hooklessAsymmetric"
selectorAffix.tHookTop = "hooklessAsymmetric" selectorAffix.tHookTop = "hooklessAsymmetric"
selectorAffix.tHookTopRTail = "hooklessAsymmetric"
selectorAffix.tRTail = "hooklessAsymmetric" selectorAffix.tRTail = "hooklessAsymmetric"
selectorAffix.tLTail = "hooklessAsymmetric" selectorAffix.tLTail = "hooklessAsymmetric"
selectorAffix.tCurlyTail = "hooklessAsymmetric" selectorAffix.tCurlyTail = "hooklessAsymmetric"
@ -3258,6 +3263,7 @@ selectorAffix."t/phoneticLeft1" = ""
selectorAffix."t/phoneticLeft2" = "" selectorAffix."t/phoneticLeft2" = ""
selectorAffix."t/phoneticLeft3" = "" selectorAffix."t/phoneticLeft3" = ""
selectorAffix.tHookTop = "" selectorAffix.tHookTop = ""
selectorAffix.tHookTopRTail = ""
selectorAffix.tRTail = "" selectorAffix.tRTail = ""
selectorAffix.tLTail = "" selectorAffix.tLTail = ""
selectorAffix.tCurlyTail = "" selectorAffix.tCurlyTail = ""
@ -3271,6 +3277,7 @@ selectorAffix."t/phoneticLeft1" = "shortNeck"
selectorAffix."t/phoneticLeft2" = "shortNeck" selectorAffix."t/phoneticLeft2" = "shortNeck"
selectorAffix."t/phoneticLeft3" = "" selectorAffix."t/phoneticLeft3" = ""
selectorAffix.tHookTop = "" selectorAffix.tHookTop = ""
selectorAffix.tHookTopRTail = ""
selectorAffix.tRTail = "shortNeck" selectorAffix.tRTail = "shortNeck"
selectorAffix.tLTail = "shortNeck" selectorAffix.tLTail = "shortNeck"
selectorAffix.tCurlyTail = "shortNeck" selectorAffix.tCurlyTail = "shortNeck"
@ -3284,6 +3291,7 @@ selectorAffix."t/phoneticLeft1" = "shortNeck2"
selectorAffix."t/phoneticLeft2" = "shortNeck2" selectorAffix."t/phoneticLeft2" = "shortNeck2"
selectorAffix."t/phoneticLeft3" = "" selectorAffix."t/phoneticLeft3" = ""
selectorAffix.tHookTop = "" selectorAffix.tHookTop = ""
selectorAffix.tHookTopRTail = ""
selectorAffix.tRTail = "shortNeck2" selectorAffix.tRTail = "shortNeck2"
selectorAffix.tLTail = "shortNeck2" selectorAffix.tLTail = "shortNeck2"
selectorAffix.tCurlyTail = "shortNeck2" selectorAffix.tCurlyTail = "shortNeck2"