Skip to content

Commit

Permalink
Fix inconsistent hook shape on Latin Small Letter T with Retroflex Ho…
Browse files Browse the repository at this point in the history
…ok (`U+0288`) (#1091).
  • Loading branch information
be5invis committed May 30, 2021
1 parent 3e615f4 commit 6cb0c1d
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 7 deletions.
1 change: 1 addition & 0 deletions changes/7.0.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@
* Fix missing serif of Italic Latin Phi (#1087).
* Remove `U+1FB93` ("Left Half Block and Right Half Inverse Medium Shade") since it is a reserved code point for now (#1088).
* Add Black Rightwards Arrowhead (`U+27A4`) (#1090).
* Fix inconsistent hook shape on Latin Small Letter T with Retroflex Hook (`U+0288`) (#1091).
* Fix regression of diacritic placement of over-the-tie marks (#1092).
21 changes: 14 additions & 7 deletions font-src/glyphs/letter/latin/lower-t.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,9 @@ glyph-block Letter-Latin-Lower-T : begin
[xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div]
begin yCrossBar

define [SmallTFlatBody df top bot] : TFlatShapeImpl df top bot [mix 1 df.div 2] 0
define [TFlatShapeImpl df top bot m ext] : glyph-proc
define [SmallTFlatBody df top bot] : TFlatShapeImpl false df top bot [mix 1 df.div 2] 0
define [RetroflexHookBody df top bot] : TFlatShapeImpl true df top bot [mix 1 df.div 2] 0
define [TFlatShapeImpl fRetroflex df top bot m ext] : glyph-proc
local xCrossLeft : mix 0 SB m
local xCrossRight : mix df.width df.rightSB m
local xBarLeft : [mix xCrossLeft xCrossRight 0.42] - Stroke * 0.375 * HVContrast
Expand All @@ -74,10 +75,13 @@ glyph-block Letter-Latin-Lower-T : begin
HCrossBar.top xCrossLeft (xCrossRight + ext) yCrossBar
dispiro
widths.rhs
flat xCrossRight 0
curl [Math.min (xBarLeft + hd.x) (xCrossRight - 1)] 0
if fRetroflex
straight.left.start (xBarLeft + HookX + HalfStroke * HVContrast) bot
list
flat xCrossRight bot
curl [Math.min (xBarLeft + hd.x) (xCrossRight - 1)] bot
archv.superness DesignParameters.tightHookSuperness
flat xBarLeft hd.y
flat xBarLeft [if fRetroflex (bot + Hook + HalfStroke) hd.y]
curl xBarLeft top [heading Upward]
set-base-anchor 'above' (xBarLeft + 0.5 * Stroke * HVContrast) top
set-base-anchor 'topright' xCrossRight CAP
Expand All @@ -103,16 +107,19 @@ glyph-block Letter-Latin-Lower-T : begin
standard { [DivFrame 1] SmallTShape CAP }
diagonalTailed { dfNarrowT TDiagTailShape CAP }
flatHook { dfNarrowT SmallTFlatBody CAP }
retroflexHookBase { dfNarrowT RetroflexHookBody CAP }
cross { dfNarrowT SmallTCrossBody CAP }
hooklessAsymmetric { dfNarrowT SmallTHooklessAsymmetricBody CAP }
standardShortNeck { [DivFrame 1] SmallTShape yShortNeck1 }
diagonalTailedShortNeck { dfNarrowT TDiagTailShape yShortNeck1 }
flatHookShortNeck { dfNarrowT SmallTFlatBody yShortNeck1 }
retroflexHookBaseShortNeck { dfNarrowT RetroflexHookBody yShortNeck1 }
crossShortNeck { dfNarrowT SmallTCrossBody yShortNeck1 }
hooklessAsymmetricShortNeck { dfNarrowT SmallTHooklessAsymmetricBody yShortNeck1 }
standardShortNeck2 { [DivFrame 1] SmallTShape yShortNeck2 }
diagonalTailedShortNeck2 { dfNarrowT TDiagTailShape yShortNeck2 }
flatHookShortNeck2 { dfNarrowT SmallTFlatBody yShortNeck2 }
retroflexHookBaseShortNeck2 { dfNarrowT RetroflexHookBody yShortNeck2 }
crossShortNeck2 { dfNarrowT SmallTCrossBody yShortNeck2 }
hooklessAsymmetricShortNeck2 { dfNarrowT SmallTHooklessAsymmetricBody yShortNeck2 }

Expand Down Expand Up @@ -168,7 +175,7 @@ glyph-block Letter-Latin-Lower-T : begin
local df : DivFrame 1
set-width df.width
include : df.markSet.b
include : TFlatShapeImpl df CAP 0 1 0
include : TFlatShapeImpl false df CAP 0 1 0

select-variant 't' 't'
select-variant 't/teshLeft' (follow -- 't')
Expand All @@ -178,7 +185,7 @@ glyph-block Letter-Latin-Lower-T : begin

select-variant "tHookTop" 0x1AD
select-variant 'tLTail' 0x1AB
select-variant 'tRTail' 0x288 (follow -- 'tLTail')
select-variant 'tRTail' 0x288
select-variant 'tCurlyTal' 0x236 (follow -- 'tLTail')


Expand Down
15 changes: 15 additions & 0 deletions params/variants.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3587,104 +3587,119 @@ rank = 1
description = "Standard `t` shape"
selector.t = "standard"
selector.tHookTop = "standard"
selector.tRTail = "retroflexHookBase"
selector.tLTail = "standard"

[prime.t.variants.flat-hook]
rank = 2
description = "`t` with flat hook"
selector.t = "flatHook"
selector.tHookTop = "flatHook"
selector.tRTail = "retroflexHookBase"
selector.tLTail = "standard"

[prime.t.variants.diagonal-tailed]
rank = 3
description = "`t` with diagonal tail"
selector.t = "diagonalTailed"
selector.tHookTop = "diagonalTailed"
selector.tRTail = "retroflexHookBase"
selector.tLTail = "standard"

[prime.t.variants.cross]
rank = 4
description = "Futura-like `t` shape"
selector.t = "cross"
selector.tHookTop = "cross"
selector.tRTail = "retroflexHookBase"
selector.tLTail = "standard"

[prime.t.variants.hookless-asymmetric]
rank = 5
description = "`t` without hook and with ony half the cross bar"
selector.t = "hooklessAsymmetric"
selector.tHookTop = "hooklessAsymmetric"
selector.tRTail = "retroflexHookBase"
selector.tLTail = "standard"

[prime.t.variants.standard-short-neck]
rank = 6
description = "Standard `t` shape with a shorter neck"
selector.t = "standardShortNeck"
selector.tHookTop = "standard"
selector.tRTail = "retroflexHookBaseShortNeck"
selector.tLTail = "standardShortNeck"

[prime.t.variants.flat-hook-short-neck]
rank = 7
description = "`t` with flat hook and a slightly shorter neck"
selector.t = "flatHookShortNeck"
selector.tHookTop = "flatHook"
selector.tRTail = "retroflexHookBaseShortNeck"
selector.tLTail = "standardShortNeck"

[prime.t.variants.diagonal-tailed-short-neck]
rank = 8
description = "`t` with diagonal tail and a shorter neck"
selector.t = "diagonalTailedShortNeck"
selector.tHookTop = "diagonalTailed"
selector.tRTail = "retroflexHookBaseShortNeck"
selector.tLTail = "standardShortNeck"

[prime.t.variants.cross-short-neck]
rank = 9
description = "Futura-like `t` shape with a shorter neck"
selector.t = "crossShortNeck"
selector.tHookTop = "cross"
selector.tRTail = "retroflexHookBaseShortNeck"
selector.tLTail = "standardShortNeck"

[prime.t.variants.hookless-asymmetric-short-neck]
rank = 10
description = "`t` without hook, with ony half the cross bar and a shorter neck"
selector.t = "hooklessAsymmetricShortNeck"
selector.tHookTop = "hooklessAsymmetric"
selector.tRTail = "retroflexHookBaseShortNeck"
selector.tLTail = "standardShortNeck"

[prime.t.variants.standard-short-neck2]
rank = 11
description = "Standard `t` shape with a more shorter neck"
selector.t = "standardShortNeck2"
selector.tHookTop = "standard"
selector.tRTail = "retroflexHookBaseShortNeck2"
selector.tLTail = "standardShortNeck2"

[prime.t.variants.flat-hook-short-neck2]
rank = 12
description = "`t` with flat hook and a more shorter neck"
selector.t = "flatHookShortNeck2"
selector.tHookTop = "flatHook"
selector.tRTail = "retroflexHookBaseShortNeck2"
selector.tLTail = "standardShortNeck2"

[prime.t.variants.diagonal-tailed-short-neck2]
rank = 13
description = "`t` with diagonal tail and a more shorter neck"
selector.t = "diagonalTailedShortNeck2"
selector.tHookTop = "diagonalTailed"
selector.tRTail = "retroflexHookBaseShortNeck2"
selector.tLTail = "standardShortNeck2"

[prime.t.variants.cross-short-neck2]
rank = 14
description = "Futura-like `t` shape with a more shorter neck"
selector.t = "crossShortNeck2"
selector.tHookTop = "cross"
selector.tRTail = "retroflexHookBaseShortNeck2"
selector.tLTail = "standardShortNeck2"

[prime.t.variants.hookless-asymmetric-short-neck2]
rank = 15
description = "`t` without hook, with ony half the cross bar and a more shorter neck"
selector.t = "hooklessAsymmetricShortNeck2"
selector.tHookTop = "hooklessAsymmetric"
selector.tRTail = "retroflexHookBaseShortNeck2"
selector.tLTail = "standardShortNeck2"


Expand Down

0 comments on commit 6cb0c1d

Please sign in to comment.