Fix shape and variant assignment for LATIN SMALL LETTER DOTLESS J WITH STROKE (U+025F) (#1458).

This commit is contained in:
be5invis 2022-12-10 00:14:06 -08:00
parent 60cccc4ef1
commit a6111714f4
23 changed files with 233 additions and 134 deletions

View file

@ -10,3 +10,4 @@
- LATIN SMALL LETTER TURNED OPEN E (`U+1D08`); - LATIN SMALL LETTER TURNED OPEN E (`U+1D08`);
- LATIN LETTER SMALL CAPITAL OU (`U+1D15`); - LATIN LETTER SMALL CAPITAL OU (`U+1D15`);
- LATIN LETTER AIN (`U+1D25`); - LATIN LETTER AIN (`U+1D25`);
* Fix shape and variant assignment for LATIN SMALL LETTER DOTLESS J WITH STROKE (`U+025F`) (#1458).

View file

@ -265,7 +265,7 @@ glyph-block Autobuild-Transformed : begin
list 0x1D9E 'eth' list 0x1D9E 'eth'
list 0x1D9F 'latn/epsilonRev' list 0x1D9F 'latn/epsilonRev'
list 0x1DA0 'f' list 0x1DA0 'f'
list 0x1DA1 'turnf' list 0x1DA1 'dotlessjBar'
list 0x1DA2 'gScript' list 0x1DA2 'gScript'
list 0x1DA3 'turnh' list 0x1DA3 'turnh'
list 0x1DA4 'iBarOver' list 0x1DA4 'iBarOver'

View file

@ -8,6 +8,7 @@ glyph-block Letter-Cyrillic-Yat : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Metrics : BowlXDepth glyph-block-import Letter-Shared-Metrics : BowlXDepth
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
glyph-block-import Letter-Cyrillic-Yeri : CyrlYeriUprightShape glyph-block-import Letter-Cyrillic-Yeri : CyrlYeriUprightShape
create-glyph 'cyrl/Yat' 0x462 : glyph-proc create-glyph 'cyrl/Yat' 0x462 : glyph-proc
@ -15,14 +16,22 @@ glyph-block Letter-Cyrillic-Yat : begin
local pBar 0.5 local pBar 0.5
include : CyrlYeriUprightShape CAP (pBar -- pBar) include : CyrlYeriUprightShape CAP (pBar -- pBar)
local cTop : if SLAB (CAP - Stroke / 2) CAP local cTop : if SLAB (CAP - Stroke / 2) CAP
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.5] [mix (CAP * pBar) cTop 0.5] include : LetterBarOverlay.l.in
x -- SB
bot -- (CAP * pBar + HalfStroke)
top -- (CAP - [if SLAB Stroke 0])
py -- 0.5
create-glyph 'cyrl/yat.upright' : glyph-proc create-glyph 'cyrl/yat.upright' : glyph-proc
include : MarkSet.b include : MarkSet.b
local pBar 0.4 local pBar 0.4
include : CyrlYeriUprightShape Ascender (pBar -- pBar) include : CyrlYeriUprightShape Ascender (pBar -- pBar)
local cTop : if SLAB (Ascender - Stroke / 2) Ascender local cTop : if SLAB (Ascender - Stroke / 2) Ascender
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.5] [mix (Ascender * pBar) cTop 0.5] include : LetterBarOverlay.l.in
x -- SB
bot -- (Ascender * pBar + HalfStroke)
top -- (Ascender - [if SLAB Stroke 0])
py -- 0.5
if SLAB : begin if SLAB : begin
eject-contour 'serifYeriLT' eject-contour 'serifYeriLT'

View file

@ -9,9 +9,12 @@ glyph-block Letter-Cyrillic-Yeri : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Metrics : BowlXDepth glyph-block-import Letter-Shared-Metrics : BowlXDepth
glyph-block-import Letter-Shared-Shapes : ShoulderMidKnotLhsRev RightwardTailedBar glyph-block-import Letter-Shared-Shapes : ShoulderMidKnotLhsRev RightwardTailedBar
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
define DefaultBarPos 0.55
glyph-block-export CyrlYeriUprightShape glyph-block-export CyrlYeriUprightShape
define [CyrlYeriUprightShape] : params [top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar 0.55]] : glyph-proc define [CyrlYeriUprightShape] : params [top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar DefaultBarPos]] : glyph-proc
local bowl : top * pBar + HalfStroke local bowl : top * pBar + HalfStroke
local turnRadius : BowlXDepth bowl 0 left right stroke local turnRadius : BowlXDepth bowl 0 left right stroke
local ada : ArchDepthAOf ArchDepth (right - left + SB * 2) local ada : ArchDepthAOf ArchDepth (right - left + SB * 2)
@ -38,7 +41,7 @@ glyph-block Letter-Cyrillic-Yeri : begin
include : tagged 'serifYeriLT' : CenterTopSerif (left + stroke / 2 * HVContrast) top jut include : tagged 'serifYeriLT' : CenterTopSerif (left + stroke / 2 * HVContrast) top jut
glyph-block-export CyrlYeriRoundShape glyph-block-export CyrlYeriRoundShape
define [CyrlYeriRoundShape] : params [top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar 0.55]] : glyph-proc define [CyrlYeriRoundShape] : params [top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar DefaultBarPos]] : glyph-proc
local bowl : top * pBar + HalfStroke local bowl : top * pBar + HalfStroke
local turnRadius : BowlXDepth bowl 0 left right stroke local turnRadius : BowlXDepth bowl 0 left right stroke
local ada : ArchDepthAOf ArchDepth (right - left + SB * 2) local ada : ArchDepthAOf ArchDepth (right - left + SB * 2)
@ -63,7 +66,7 @@ glyph-block Letter-Cyrillic-Yeri : begin
include : tagged 'serifYeriLT' : LeftwardTopSerif left top (jut - stroke / 2 * HVContrast) include : tagged 'serifYeriLT' : LeftwardTopSerif left top (jut - stroke / 2 * HVContrast)
glyph-block-export CyrlYeriCursiveShape glyph-block-export CyrlYeriCursiveShape
define [CyrlYeriCursiveShape] : params [top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar 0.55]] : glyph-proc define [CyrlYeriCursiveShape] : params [top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar DefaultBarPos]] : glyph-proc
local bowl : top * pBar + HalfStroke local bowl : top * pBar + HalfStroke
local turnRadius : BowlXDepth bowl 0 left right stroke local turnRadius : BowlXDepth bowl 0 left right stroke
local ada : ArchDepthAOf ArchDepth (right - left + SB * 2) local ada : ArchDepthAOf ArchDepth (right - left + SB * 2)
@ -88,7 +91,7 @@ glyph-block Letter-Cyrillic-Yeri : begin
if SLAB : begin if SLAB : begin
include : tagged 'serifYeriLT' : LeftwardTopSerif left top (jut - stroke / 2 * HVContrast) include : tagged 'serifYeriLT' : LeftwardTopSerif left top (jut - stroke / 2 * HVContrast)
define [RevCyrYeriShape] : params [top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar 0.55]] : glyph-proc define [RevCyrYeriShape] : params [top [left SB] [right RightSB] [stroke Stroke] [jut Jut] [pBar DefaultBarPos]] : glyph-proc
local bowl : top * pBar + HalfStroke local bowl : top * pBar + HalfStroke
local turnRadius : bowl * 0.45 local turnRadius : bowl * 0.45
local turnbottom : mix 0 bowl (ArchDepthB / (ArchDepthA + ArchDepthB)) local turnbottom : mix 0 bowl (ArchDepthB / (ArchDepthA + ArchDepthB))
@ -162,11 +165,11 @@ glyph-block Letter-Cyrillic-Yeri : begin
define [YeriOverlayBar df top] : begin define [YeriOverlayBar df top] : begin
local stroke : AdviceStroke2 2 3 top local stroke : AdviceStroke2 2 3 top
return : HOverlayBar return : LetterBarOverlay.l.in
mix df.leftSB 0 0.7 x -- df.leftSB
mix df.leftSB df.rightSB 0.5 bot -- top * DefaultBarPos + stroke / 2
mix (top * 0.52 + stroke / 2) top 0.5 top -- top - [if SLAB Stroke 0]
Math.min ((top - Stroke * 3) / 3) OverlayStroke py -- 0.5
foreach { suffix { Yeri fTail } } [Object.entries YerConfig] : do foreach { suffix { Yeri fTail } } [Object.entries YerConfig] : do
create-glyph "cyrl/Yeri.\(suffix)" : glyph-proc create-glyph "cyrl/Yeri.\(suffix)" : glyph-proc

View file

@ -8,6 +8,7 @@ glyph-module
glyph-block Letter-Greek-Lower-Rho : begin glyph-block Letter-Greek-Lower-Rho : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
create-glyph 'grek/rho' 0x3C1 : glyph-proc create-glyph 'grek/rho' 0x3C1 : glyph-proc
include : MarkSet.p include : MarkSet.p
@ -29,4 +30,4 @@ glyph-block Letter-Greek-Lower-Rho : begin
create-glyph 'grek/rhoBar' 0x3FC : glyph-proc create-glyph 'grek/rhoBar' 0x3FC : glyph-proc
include [refer-glyph 'grek/rho'] AS_BASE ALSO_METRICS include [refer-glyph 'grek/rho'] AS_BASE ALSO_METRICS
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.5] [mix 0 Descender 0.45] include : LetterBarOverlay.l.in SB Descender 0 (1 - OverlayPos)

View file

@ -10,6 +10,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : nShoulder CyrDescender CyrHookDescender glyph-block-import Letter-Shared-Shapes : nShoulder CyrDescender CyrHookDescender
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
glyph-block-import Letter-Blackboard : BBS BBD BBBarLeft glyph-block-import Letter-Blackboard : BBS BBD BBBarLeft
glyph-block-import Letter-Latin-Upper-F : xMidBarShrink glyph-block-import Letter-Latin-Upper-F : xMidBarShrink
@ -133,10 +134,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin
adb -- ArchDepthB * [Math.pow HBarPos 0.3] adb -- ArchDepthB * [Math.pow HBarPos 0.3]
include : VerticalHook (RightSB - HalfStroke * HVContrast) 0 (-HookX) Hook include : VerticalHook (RightSB - HalfStroke * HVContrast) 0 (-HookX) Hook
define [GhaynOverlayBar top] : HOverlayBar define [GhaynOverlayBar top] : LetterBarOverlay.l GammaBarLeft (top * (1 - OverlayPos))
GammaBarLeft - GammaBarLeft * 0.75
GammaBarLeft + Stroke * HVContrast + SB * 0.625 + 0.125 * (RightSB - SB)
top * (1 - OverlayPos)
derive-composites 'cyrl/Ghayn' 0x492 'cyrl/Ghe' [GhaynOverlayBar CAP] derive-composites 'cyrl/Ghayn' 0x492 'cyrl/Ghe' [GhaynOverlayBar CAP]
derive-composites 'cyrl/ghayn.upright' null 'cyrl/ghe.upright' [GhaynOverlayBar XH] derive-composites 'cyrl/ghayn.upright' null 'cyrl/ghe.upright' [GhaynOverlayBar XH]

View file

@ -9,6 +9,7 @@ glyph-block Letter-Latin-Glottal-Stop : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Mark-Shared-Metrics : markHalfStroke
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
create-glyph 'glottalstop' 0x294 : glyph-proc create-glyph 'glottalstop' 0x294 : glyph-proc
include : MarkSet.b include : MarkSet.b
@ -83,8 +84,8 @@ glyph-block Letter-Latin-Glottal-Stop : begin
create-glyph 'glottalstopbar' 0x2A1 : glyph-proc create-glyph 'glottalstopbar' 0x2A1 : glyph-proc
include [refer-glyph 'glottalstop'] AS_BASE include [refer-glyph 'glottalstop'] AS_BASE
include : HOverlayBar (Middle - LongJut * 0.6) (Middle + LongJut * 0.6) (Ascender * 0.25) include : LetterBarOverlay.m.in Middle [if SLAB Stroke 0] (Ascender * 0.5)
create-glyph 'revglottalstopbar' 0x2A2 : glyph-proc create-glyph 'revglottalstopbar' 0x2A2 : glyph-proc
include [refer-glyph 'revglottalstop'] AS_BASE include [refer-glyph 'revglottalstop'] AS_BASE
include : HOverlayBar (Middle - LongJut * 0.6) (Middle + LongJut * 0.6) (Ascender * 0.25) include : LetterBarOverlay.m.in Middle [if SLAB Stroke 0] (Ascender * 0.5)

View file

@ -8,7 +8,7 @@ glyph-module
glyph-block Letter-Latin-Long-S : begin glyph-block Letter-Latin-Long-S : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth LetterBarOverlay
glyph-block-import Letter-Latin-Lower-F : StdSmallFBarLeftPos StdSmallFBarLeftPos0 glyph-block-import Letter-Latin-Lower-F : StdSmallFBarLeftPos StdSmallFBarLeftPos0
define [LongSUpperHalf sign x top bottom hookX hookY _sw] : begin define [LongSUpperHalf sign x top bottom hookX hookY _sw] : begin
@ -54,15 +54,15 @@ glyph-block Letter-Latin-Long-S : begin
if fSlab : include : tagged 'serifLB' if fSlab : include : tagged 'serifLB'
CenterBottomSerif (m + HalfStroke * HVContrast + RBalance * 0.35) 0 (Jut + RBalance * 0.65) CenterBottomSerif (m + HalfStroke * HVContrast + RBalance * 0.35) 0 (Jut + RBalance * 0.65)
define [LongSBentHookOverlayBar m] : HOverlayBar define [LongSBentHookOverlayBar m] : LetterBarOverlay.m.in
m + HalfStroke * HVContrast - LongJut * 0.75 x -- (m + HalfStroke * HVContrast)
m + HalfStroke * HVContrast + LongJut * 0.75 bot -- (0.75 * XH - Stroke)
[mix (XH - Stroke) Ascender 0.5] - HalfStroke top -- (Ascender - Stroke)
define [LongSSymmetricOverlayBar m] : HOverlayBar define [LongSSymmetricOverlayBar m] : LetterBarOverlay.m.in
m - LongJut * 0.75 x -- m
m + LongJut * 0.75 bot -- (0.75 * XH - Stroke)
[mix (XH - Stroke) Ascender 0.5] - HalfStroke top -- (Ascender - Stroke)
create-glyph 'longs.bentHook' : glyph-proc create-glyph 'longs.bentHook' : glyph-proc
include : MarkSet.b include : MarkSet.b

View file

@ -17,6 +17,7 @@ glyph-block Letter-Latin-C : begin
glyph-block-import Letter-Shared-Shapes : ArcStartInwardSerifL ArcStartInwardSerifR glyph-block-import Letter-Shared-Shapes : ArcStartInwardSerifL ArcStartInwardSerifR
glyph-block-import Letter-Shared-Shapes : ArcEndInwardSerifL ArcEndInwardSerifR glyph-block-import Letter-Shared-Shapes : ArcEndInwardSerifL ArcEndInwardSerifR
glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart_RtlLhs glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart_RtlLhs
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Blackboard : BBS BBD
define SLAB-NONE 0 define SLAB-NONE 0
@ -399,11 +400,11 @@ glyph-block Letter-Latin-C : begin
derive-glyphs 'Cbar' 0xA792 'C' : lambda [src gr] : glyph-proc derive-glyphs 'Cbar' 0xA792 'C' : lambda [src gr] : glyph-proc
include [refer-glyph src] AS_BASE ALSO_METRICS include [refer-glyph src] AS_BASE ALSO_METRICS
include : HOverlayBar (SB * 0.3) [mix (SB + Stroke) (RightSB - Stroke) 0.55] (CAP * OverlayPos) include : LetterBarOverlay.l.in SB 0 CAP 0.5
derive-glyphs 'cbar' 0xA793 'c' : lambda [src gr] : glyph-proc derive-glyphs 'cbar' 0xA793 'c' : lambda [src gr] : glyph-proc
include [refer-glyph src] AS_BASE ALSO_METRICS include [refer-glyph src] AS_BASE ALSO_METRICS
include : HOverlayBar (SB * 0.3) [mix (SB + Stroke) (RightSB - Stroke) 0.55] (XH * OverlayPos) include : LetterBarOverlay.l.in SB 0 XH 0.5
derive-glyphs 'cyrl/E' 0x42D 'revC' : lambda [src gr] : glyph-proc derive-glyphs 'cyrl/E' 0x42D 'revC' : lambda [src gr] : glyph-proc
include [refer-glyph src] AS_BASE ALSO_METRICS include [refer-glyph src] AS_BASE ALSO_METRICS

View file

@ -10,6 +10,7 @@ glyph-block Letter-Latin-K : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius DiagonalTailF CyrDescender glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius DiagonalTailF CyrDescender
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
local [KBalance slab straightBar] : if slab (Width / 16) : if straightBar (Width / 32) 0 local [KBalance slab straightBar] : if slab (Width / 16) : if straightBar (Width / 32) 0
local [KBalanceRight slab straightBar] : if slab 0 : if straightBar (Width / 32) 0 local [KBalanceRight slab straightBar] : if slab 0 : if straightBar (Width / 32) 0
@ -397,7 +398,12 @@ glyph-block Letter-Latin-K : begin
create-glyph "KBar.\(suffix)" : glyph-proc create-glyph "KBar.\(suffix)" : glyph-proc
include [refer-glyph "K.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "K.\(suffix)"] AS_BASE ALSO_METRICS
include : HOverlayBar [mix (SB + [KBalance slabTop straightBar]) 0 0.7] [mix (SB + [KBalance slabTop straightBar]) RightSB 0.5] [mix XH (CAP - [if slabTop Stroke 0]) 0.45] include : LetterBarOverlay.l.in
x -- (SB + [KBalance slabTop straightBar])
bot -- XH
top -- (CAP - [if slabTop Stroke 0])
py -- (1 - OverlayPos)
space -- { 0 [mix SB RightSB 0.75] }
create-glyph "KVBar.\(suffix)" : glyph-proc create-glyph "KVBar.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
@ -505,7 +511,11 @@ glyph-block Letter-Latin-K : begin
create-glyph "kBar.\(suffix)" : glyph-proc create-glyph "kBar.\(suffix)" : glyph-proc
include [refer-glyph "k.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "k.\(suffix)"] AS_BASE ALSO_METRICS
include : HOverlayBar [mix (SB + [KBalance slabTop straightBar]) 0 0.7] [mix (SB + [KBalance slabTop straightBar]) RightSB 0.5] [mix XH (Ascender - [if slabTop Stroke 0]) 0.45] include : LetterBarOverlay.l.in
x -- (SB + [KBalance slabTop straightBar])
bot -- XH
top -- (Ascender - [if slabTop Stroke 0])
py -- (1 - OverlayPos)
create-glyph "kHookTop.\(suffix)" : glyph-proc create-glyph "kHookTop.\(suffix)" : glyph-proc
include : MarkSet.b include : MarkSet.b

View file

@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-B : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend HooktopLeftBar glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend HooktopLeftBar LetterBarOverlay
define [ToothedBody] : union define [ToothedBody] : union
OBarLeftShape OBarLeftShape
@ -41,7 +41,7 @@ glyph-block Letter-Latin-Lower-B : begin
toothlessRoundedMotionSerifed { ToothlessRoundedBody MotionSerifs true } toothlessRoundedMotionSerifed { ToothlessRoundedBody MotionSerifs true }
foreach { suffix { Body Serifs doTS }} [Object.entries BConfig] : do foreach { suffix { Body Serifs doTS }} [Object.entries BConfig] : do
local yOverlay : mix XH (Ascender - [if doTS Stroke 0]) 0.45 local yOverlay : mix XH (Ascender - [if doTS Stroke 0]) (1 - OverlayPos)
create-glyph "b.\(suffix)" : glyph-proc create-glyph "b.\(suffix)" : glyph-proc
include : MarkSet.b include : MarkSet.b
include : Body include : Body
@ -49,7 +49,7 @@ glyph-block Letter-Latin-Lower-B : begin
set-base-anchor 'overlayOnBar' (SB + 0.5 * Stroke * HVContrast) yOverlay set-base-anchor 'overlayOnBar' (SB + 0.5 * Stroke * HVContrast) yOverlay
create-glyph "bBar.\(suffix)" : glyph-proc create-glyph "bBar.\(suffix)" : glyph-proc
include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.625] yOverlay include : LetterBarOverlay.l.in SB XH (Ascender - [if doTS Stroke 0]) (1 - OverlayPos)
create-glyph "bSlash.\(suffix)" : glyph-proc create-glyph "bSlash.\(suffix)" : glyph-proc
include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS
include : dispiro include : dispiro

View file

@ -10,6 +10,7 @@ glyph-block Letter-Latin-Lower-D : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend CurlyTail glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend CurlyTail
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
define [ToothedBody] : union define [ToothedBody] : union
OBarRightShape OBarRightShape
@ -65,7 +66,7 @@ glyph-block Letter-Latin-Lower-D : begin
create-glyph "dcroat.\(suffix)" : glyph-proc create-glyph "dcroat.\(suffix)" : glyph-proc
include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS
include : HOverlayBar [mix SB RightSB 0.5] [mix RightSB Width 0.7] [mix XH (Ascender - [if topSerif Stroke 0]) 0.45] include : LetterBarOverlay.r.in RightSB XH (Ascender - [if topSerif Stroke 0]) (1 - OverlayPos)
create-glyph "latn/de.\(suffix)" : glyph-proc create-glyph "latn/de.\(suffix)" : glyph-proc
include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS

View file

@ -119,52 +119,49 @@ glyph-block Letter-Latin-Lower-F : begin
define pNarrowSide : mix 1 para.diversityF 1.5 define pNarrowSide : mix 1 para.diversityF 1.5
define SmallFConfig : object define SmallFConfig : object
'serifless' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-NONE } { 'b' 'p' } } 'serifless' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-NONE } 'b' }
'serifed' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-SERIF } { 'b' 'p' } } 'serifed' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-SERIF } 'b' }
'extended' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-EXTENSION } { 'if' 'if' } } 'extended' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-EXTENSION } 'if' }
'tailed' { { StandardSmallFShape [DivFrame 1] } { 1 fbar CH-HOOK } { 'if' 'if' } } 'tailed' { { StandardSmallFShape [DivFrame 1] } { 1 fbar CH-HOOK } 'if' }
'diagonalTailed' { { StandardSmallFShape [DivFrame 1] } { 1 fbar CH-DIAGONAL-HOOK } { 'if' 'if' } } 'diagonalTailed' { { StandardSmallFShape [DivFrame 1] } { 1 fbar CH-DIAGONAL-HOOK } 'if' }
'seriflessCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-NONE } { 'b' 'p' } } 'seriflessCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-NONE } 'b' }
'serifedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-SERIF } { 'b' 'p' } } 'serifedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-SERIF } 'b' }
'extendedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-EXTENSION } { 'if' 'if' } } 'extendedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-EXTENSION } 'if' }
'tailedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 1 XH CH-HOOK } { 'if' 'if' } } 'tailedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 1 XH CH-HOOK } 'if' }
'diagonalTailedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 1 XH CH-DIAGONAL-HOOK } { 'if' 'if' } } 'diagonalTailedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 1 XH CH-DIAGONAL-HOOK } 'if' }
'flatHook' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-NONE } { 'b' 'p' } } 'flatHook' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-NONE } 'b' }
'flatHookSerifed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-SERIF } { 'b' 'p' } } 'flatHookSerifed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-SERIF } 'b' }
'flatHookExtended' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-EXTENSION } { 'if' 'if' } } 'flatHookExtended' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-EXTENSION } 'if' }
'flatHookTailed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-HOOK } { 'if' 'if' } } 'flatHookTailed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-HOOK } 'if' }
'flatHookDiagonalTailed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-DIAGONAL-HOOK } { 'if' 'if' } } 'flatHookDiagonalTailed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-DIAGONAL-HOOK } 'if' }
'flatHookCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-NONE } { 'b' 'p' } } 'flatHookCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-NONE } 'b' }
'flatHookSerifedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-SERIF } { 'b' 'p' } } 'flatHookSerifedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-SERIF } 'b' }
'flatHookExtendedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-EXTENSION } { 'if' 'if' } } 'flatHookExtendedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-EXTENSION } 'if' }
'flatHookTailedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-HOOK } { 'if' 'if' } } 'flatHookTailedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-HOOK } 'if' }
'flatHookDiagonalTailedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-DIAGONAL-HOOK } { 'if' 'if' } } 'flatHookDiagonalTailedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-DIAGONAL-HOOK } 'if' }
'flatHookCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-NONE } { 'b' 'p' } } 'flatHookCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-NONE } 'b' }
'flatHookSerifedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-SERIF } { 'b' 'p' } } 'flatHookSerifedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-SERIF } 'b' }
'flatHookExtendedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-EXTENSION } { 'if' 'if' } } 'flatHookExtendedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-EXTENSION } 'if' }
'flatHookTailedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-HOOK } { 'if' 'if' } } 'flatHookTailedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-HOOK } 'if' }
'flatHookDiagonalTailedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-DIAGONAL-HOOK } { 'if' 'if' } } 'flatHookDiagonalTailedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-DIAGONAL-HOOK } 'if' }
'flatHookCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-NONE } { 'b' 'p' } } 'flatHookCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-NONE } 'b' }
'flatHookSerifedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-SERIF } { 'b' 'p' } } 'flatHookSerifedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-SERIF } 'b' }
'flatHookExtendedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-EXTENSION } { 'if' 'if' } } 'flatHookExtendedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-EXTENSION } 'if' }
'flatHookTailedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-HOOK } { 'if' 'if' } } 'flatHookTailedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-HOOK } 'if' }
'flatHookDiagonalTailedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-DIAGONAL-HOOK } { 'if' 'if' } } 'flatHookDiagonalTailedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-DIAGONAL-HOOK } 'if' }
foreach { suffix {{Body df} {pBar yBar ch} {mk mkTurn}}} [Object.entries SmallFConfig] : do foreach { suffix {{Body df} {pBar yBar ch} mk}} [Object.entries SmallFConfig] : do
create-glyph "f.\(suffix)" : glyph-proc create-glyph "f.\(suffix)" : glyph-proc
set-width df.width set-width df.width
include : df.markSet.(mk) include : df.markSet.(mk)
include : Body df pBar yBar ch include : Body df pBar yBar ch
turned "turnf.\(suffix)" nothing "f.\(suffix)" df.middle (XH / 2) [df.markSet.(mkTurn)]
select-variant 'f' 'f' select-variant 'f' 'f'
link-reduced-variant 'f/sansSerif' 'f' MathSansSerif link-reduced-variant 'f/sansSerif' 'f' MathSansSerif
select-variant 'turnf' 0x25F (follow -- 'f')
select-variant 'fLenis' 0xAB35 (shapeFrom -- 'f') select-variant 'fLenis' 0xAB35 (shapeFrom -- 'f')
select-variant 'fLTail' 0x192 (shapeFrom -- 'f') select-variant 'fLTail' 0x192 (shapeFrom -- 'f')
select-variant 'dotlessjWithStrokeAndHook' 0x284 (shapeFrom -- 'turnf')
select-variant 'f/compLigLeft1' (shapeFrom -- 'f') select-variant 'f/compLigLeft1' (shapeFrom -- 'f')
select-variant 'f/compLigLeft2' (shapeFrom -- 'f') select-variant 'f/compLigLeft2' (shapeFrom -- 'f')
select-variant 'f/phoneticLeft' (shapeFrom -- 'f') select-variant 'f/phoneticLeft' (shapeFrom -- 'f')

View file

@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-J : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth HooktopLeftBar LetterBarOverlay
glyph-block-import Letter-Shared-Shapes : DiagonalTailL DiagonalTailStdDepth glyph-block-import Letter-Shared-Shapes : DiagonalTailL DiagonalTailStdDepth
glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Blackboard : BBS BBD
@ -88,26 +88,39 @@ glyph-block Letter-Latin-Lower-J : begin
set-base-anchor 'overlay' xMiddle (top / 2) set-base-anchor 'overlay' xMiddle (top / 2)
define JConfig : object define JConfig : object
'serifless' { Body.Regular null XMiddle.Regular Marks.FullHook 1 } 'serifless' { "Regular" null XMiddle.Regular Marks.FullHook 1 }
'serifed' { Body.Regular Serifs.Long XMiddle.Regular Marks.FullHook 1 } 'serifed' { "Regular" Serifs.Long XMiddle.Regular Marks.FullHook 1 }
'straightLine' { Body.Straight null XMiddle.Straight Marks.Straight para.diversityII } 'straightLine' { "Straight" null XMiddle.Straight Marks.Straight para.diversityII }
'hooky' { Body.Straight Serifs.Long XMiddle.Hooky Marks.Straight para.diversityII } 'hooky' { "Straight" Serifs.Long XMiddle.Hooky Marks.Straight para.diversityII }
'flatHookSerifless' { Body.FlatHook null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII } 'flatHookSerifless' { "FlatHook" null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII }
'flatHookSerifed' { Body.FlatHook Serifs.Long XMiddle.FlatHookSerifed Marks.FullHook para.diversityI } 'flatHookSerifed' { "FlatHook" Serifs.Long XMiddle.FlatHookSerifed Marks.FullHook para.diversityI }
'diagonalTailedSerifless' { Body.DiagonalTailed null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII } 'diagonalTailedSerifless' { "DiagonalTailed" null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII }
'diagonalTailedSerifed' { Body.DiagonalTailed Serifs.Long XMiddle.FlatHookSerifed Marks.FullHook para.diversityI } 'diagonalTailedSerifed' { "DiagonalTailed" Serifs.Long XMiddle.FlatHookSerifed Marks.FullHook para.diversityI }
foreach {suffix { shapeId Serif xMiddleT Marks div } } [Object.entries JConfig] : do
local df : DivFrame div
local xMiddle : xMiddleT df
foreach {suffix { Body Serif xMiddleT Marks div } } [Object.entries JConfig] : do
create-glyph "dotlessj.\(suffix)" : glyph-proc create-glyph "dotlessj.\(suffix)" : glyph-proc
local df : DivFrame div
set-width df.width set-width df.width
include : df.markSet.p include : df.markSet.p
local xMiddle : xMiddleT df include : Body.(shapeId) df XH xMiddle
include : Body df XH xMiddle
if Serif : include : tagged 'serifLT' : Serif df XH xMiddle if Serif : include : tagged 'serifLT' : Serif df XH xMiddle
include : Marks df XH xMiddle (!(!Serif)) include : Marks df XH xMiddle (!(!Serif))
create-glyph "dotlessjBar.\(suffix)" : glyph-proc
include [refer-glyph "dotlessj.\(suffix)"] AS_BASE ALSO_METRICS
include : LetterBarOverlay.m xMiddle (XH / 2) (space -- {0 df.width})
create-glyph "dotlessjBarHookTop.\(suffix)" : glyph-proc
set-width df.width
include : df.markSet.if
include [refer-glyph "dotlessjBar.\(suffix)"]
include : WithTransform [ApparentTranslate (xMiddle - HalfStroke * HVContrast - SB) 0] : HooktopLeftBar XH
select-variant 'dotlessj' 0x237 select-variant 'dotlessj' 0x237
select-variant 'dotlessjBar' 0x25F (follow -- 'dotlessj')
select-variant 'dotlessjBarHookTop' 0x284 (follow -- 'dotlessj/sansSerif')
link-reduced-variant 'dotlessj/sansSerif' 'dotlessj' MathSansSerif link-reduced-variant 'dotlessj/sansSerif' 'dotlessj' MathSansSerif
CreateAccentedComposition 'j' 'j' 'dotlessj' 'dotAbove' CreateAccentedComposition 'j' 'j' 'dotlessj' 'dotAbove'
CreateAccentedComposition 'j/sansSerif' null 'dotlessj/sansSerif' 'dotAbove' CreateAccentedComposition 'j/sansSerif' null 'dotlessj/sansSerif' 'dotAbove'

View file

@ -9,7 +9,7 @@ glyph-block Letter-Latin-Upper-B : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Metrics : BowlXDepth glyph-block-import Letter-Shared-Metrics : BowlXDepth
glyph-block-import Letter-Shared-Shapes : ShoulderMidKnotRhs glyph-block-import Letter-Shared-Shapes : ShoulderMidKnotRhs LetterBarOverlay
glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Blackboard : BBS BBD
define BArcMix 0.93 define BArcMix 0.93
@ -94,11 +94,8 @@ glyph-block Letter-Latin-Upper-B : begin
define [BOverlayBar top bp] : begin define [BOverlayBar top bp] : begin
local stroke : AdviceStroke2 2 3 top local stroke : AdviceStroke2 2 3 top
return : HOverlayBar return : LetterBarOverlay.l.in SB stroke (top * bp - 0.5 * stroke) 0.5
mix SB 0 0.7 space -- { 0 (RightSB - Stroke * HVContrast) }
mix SB RightSB 0.5
mix 0 (top * bp + stroke / 2) 0.5
Math.min ((top - Stroke * 3) / 4) OverlayStroke
define [BahtBar sw] : VBar [mix SB RightSB 0.475] (CAP - Descender / 2) (Descender / 2) sw define [BahtBar sw] : VBar [mix SB RightSB 0.475] (CAP - Descender / 2) (Descender / 2) sw
define [BitcoinBar sw] : begin define [BitcoinBar sw] : begin

View file

@ -8,6 +8,7 @@ glyph-module
glyph-block Letter-Latin-Upper-D : begin glyph-block Letter-Latin-Upper-D : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
define [DArcShapeT sink df top right offset sw fRound] : glyph-proc define [DArcShapeT sink df top right offset sw fRound] : glyph-proc
local mockWidth : right + (df.width - df.rightSB) local mockWidth : right + (df.width - df.rightSB)
@ -85,14 +86,16 @@ glyph-block Letter-Latin-Upper-D : begin
link-reduced-variant 'D/sansSerif' 'D' MathSansSerif link-reduced-variant 'D/sansSerif' 'D' MathSansSerif
derive-glyphs 'Eth' 0xD0 'D' : lambda [src gr] : glyph-proc derive-glyphs 'Eth' 0xD0 'D' : lambda [src gr] : glyph-proc
include [refer-glyph src] AS_BASE ALSO_METRICS include [refer-glyph src] AS_BASE ALSO_METRICS
include : HOverlayBar (SB * 0.3) [mix (SB + Stroke) (RightSB - Stroke) 0.55] (CAP * OverlayPos) include : LetterBarOverlay.l.in SB Stroke (CAP - Stroke)
space -- { 0 (RightSB - Stroke * HVContrast) }
alias 'Dcroat' 0x110 'Eth' alias 'Dcroat' 0x110 'Eth'
alias 'arficanD' 0x189 'Eth' alias 'arficanD' 0x189 'Eth'
select-variant 'smcpD' 0x1D05 (follow -- 'D') select-variant 'smcpD' 0x1D05 (follow -- 'D')
derive-glyphs 'smcpEth' 0x1D06 'smcpD' : lambda [src gr] : glyph-proc derive-glyphs 'smcpEth' 0x1D06 'smcpD' : lambda [src gr] : glyph-proc
include [refer-glyph src] AS_BASE ALSO_METRICS include [refer-glyph src] AS_BASE ALSO_METRICS
include : HOverlayBar (SB * 0.3) [mix (SB + Stroke) (RightSB - Stroke) 0.55] (XH * OverlayPos) include : LetterBarOverlay.l.in SB Stroke (XH - Stroke)
space -- { 0 (RightSB - Stroke * HVContrast) }
derive-glyphs 'Dhookleft' 0x18a 'D' : lambda [src gr] : glyph-proc derive-glyphs 'Dhookleft' 0x18a 'D' : lambda [src gr] : glyph-proc
include [refer-glyph src] AS_BASE ALSO_METRICS include [refer-glyph src] AS_BASE ALSO_METRICS

View file

@ -8,6 +8,7 @@ glyph-module
glyph-block Letter-Latin-Upper-F : begin glyph-block Letter-Latin-Upper-F : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
glyph-block-export xMidBarShrink glyph-block-export xMidBarShrink
define [xMidBarShrink serifV] : [Math.max HalfStroke ((RightSB - SB) * 0.15)] + [if serifV (Stroke * 0.25) 0] define [xMidBarShrink serifV] : [Math.max HalfStroke ((RightSB - SB) * 0.15)] + [if serifV (Stroke * 0.25) 0]
@ -62,9 +63,11 @@ glyph-block Letter-Latin-Upper-F : begin
create-glyph "currency/frenchFrancSign.\(suffix)" : glyph-proc create-glyph "currency/frenchFrancSign.\(suffix)" : glyph-proc
include [refer-glyph "F.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "F.\(suffix)"] AS_BASE ALSO_METRICS
include : HOverlayBar (SB * 0.5) (SB * 3 + Stroke * HVContrast) : Math.max include : LetterBarOverlay.l.in
mix [if lb Stroke 0] ([yMidBar CAP] - HalfStroke) (1 / 2) x -- SB
[mix [if lb Stroke 0] ([yMidBar CAP] - HalfStroke) (2 / 3)] - OverlayStroke / 2 bot -- [if lb Stroke 0]
top -- [yMidBar CAP] - HalfStroke
py -- 0.5
create-glyph "smcpF.\(suffix)" : glyph-proc create-glyph "smcpF.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e

View file

@ -10,7 +10,7 @@ glyph-block Letter-Latin-Upper-G : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : DToothlessRise ShoulderMidKnotLhs glyph-block-import Letter-Shared-Shapes : DToothlessRise ShoulderMidKnotLhs
glyph-block-import Letter-Shared-Shapes : SerifedArcStart_RtlLhs ArcStartHookTop glyph-block-import Letter-Shared-Shapes : SerifedArcStart_RtlLhs ArcStartHookTop
glyph-block-import Letter-Shared-Shapes : ArcStartSerifR ArcStartInwardSerifR glyph-block-import Letter-Shared-Shapes : ArcStartSerifR ArcStartInwardSerifR LetterBarOverlay
define TOOTHED 0 define TOOTHED 0
define TOOTHLESS-CORNER 1 define TOOTHLESS-CORNER 1
@ -68,7 +68,13 @@ glyph-block Letter-Latin-Upper-G : begin
[Just TOOTHLESS-ROUNDED] : glyph-proc [Just TOOTHLESS-ROUNDED] : glyph-proc
define [OverlayBarOfG top] : begin define [OverlayBarOfG top] : begin
return : HOverlayBar [mix SB RightSB 0.5] [mix RightSB Width 0.7] [mix 0 (top / 2) 0.55] return : LetterBarOverlay.r.in RightSB 0 (top / 2) OverlayPos (space -- {(SB + Stroke * HVContrast) Width})
create-glyph 'GBarOverlay' : LetterBarOverlay.r.in
x -- RightSB
bot -- 0
top -- (CAP / 2)
space -- { (SB + Stroke * HVContrast) Width }
define GConfig : object define GConfig : object
toothedSeriflessHookless { TOOTHED CROSSBAR-NONE SLAB-NONE } toothedSeriflessHookless { TOOTHED CROSSBAR-NONE SLAB-NONE }
@ -104,7 +110,6 @@ glyph-block Letter-Latin-Upper-G : begin
create-glyph "G.\(suffix)" : glyph-proc create-glyph "G.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : GShape shape slabType crossBarShape CAP ArchDepthA ArchDepthB include : GShape shape slabType crossBarShape CAP ArchDepthA ArchDepthB
create-forked-glyph "Gbar.\(suffix)" : OverlayBarOfG CAP
create-glyph "GHookTop.\(suffix)" : glyph-proc create-glyph "GHookTop.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : GShape shape SLAB-HOOK-TOP crossBarShape CAP ArchDepthA ArchDepthB include : GShape shape SLAB-HOOK-TOP crossBarShape CAP ArchDepthA ArchDepthB
@ -122,9 +127,10 @@ glyph-block Letter-Latin-Upper-G : begin
select-variant 'smcpG' 0x262 (follow -- 'G') select-variant 'smcpG' 0x262 (follow -- 'G')
select-variant 'GHookTop' 0x193 select-variant 'GHookTop' 0x193
select-variant 'smcpGHookTop' 0x29B (follow -- 'GHookTop') select-variant 'smcpGHookTop' 0x29B (follow -- 'GHookTop')
select-variant 'Gbar' 0x1E4 (follow -- 'G')
turned 'turnSansSerifG' 0x2141 'G/sansSerif' Middle (CAP / 2) turned 'turnSansSerifG' 0x2141 'G/sansSerif' Middle (CAP / 2)
derive-composites 'Gbar' 0x1E4 'G' 'GBarOverlay'
glyph-block-import Letter-Blackboard : BBS BBD BBBarRight glyph-block-import Letter-Blackboard : BBS BBD BBBarRight
define [BBGArcT sink offset top ada adb xTerm yTerm] : sink define [BBGArcT sink offset top ada adb xTerm yTerm] : sink
widths.lhs BBS widths.lhs BBS

View file

@ -11,7 +11,7 @@ glyph-block Letter-Latin-Upper-L : begin
glyph-block-import Mark-Shared-Metrics : markMiddle glyph-block-import Mark-Shared-Metrics : markMiddle
glyph-block-import Mark-Above : aboveMarkMid glyph-block-import Mark-Above : aboveMarkMid
glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Blackboard : BBS BBD
glyph-block-import Letter-Shared-Shapes : BeltOverlay glyph-block-import Letter-Shared-Shapes : BeltOverlay LetterBarOverlay
define LBarLeftX : SB * 1.5 define LBarLeftX : SB * 1.5
define [LShape top sgr] : glyph-proc define [LShape top sgr] : glyph-proc
@ -36,14 +36,10 @@ glyph-block Letter-Latin-Upper-L : begin
create-glyph "smcpL.\(suffix)" : glyph-proc create-glyph "smcpL.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
include : LShape XH serifGrade include : LShape XH serifGrade
create-glyph "LBelt.\(suffix)" : glyph-proc
include [refer-glyph "L.\(suffix)"] AS_BASE ALSO_METRICS
include : BeltOverlay CAP (LBarLeftX + 0.5 * HVContrast * Stroke)
select-variant 'L' 'L' select-variant 'L' 'L'
link-reduced-variant 'L/sansSerif' 'L' MathSansSerif link-reduced-variant 'L/sansSerif' 'L' MathSansSerif
select-variant 'smcpL' 0x29F (follow -- 'L') select-variant 'smcpL' 0x29F (follow -- 'L')
select-variant 'LBelt' 0xA7AD (follow -- 'L')
turned 'turnL' 0xA780 'L' Middle (CAP / 2) turned 'turnL' 0xA780 'L' Middle (CAP / 2)
turned 'turnSansSerifL' 0x2142 'L.serifless' Middle (CAP / 2) turned 'turnSansSerifL' 0x2142 'L.serifless' Middle (CAP / 2)
@ -82,5 +78,7 @@ glyph-block Letter-Latin-Upper-L : begin
include : refer-glyph "tildeAboveOverlay" include : refer-glyph "tildeAboveOverlay"
include : ApparentTranslate (SB * 1.5 + Stroke * HVContrast / 2 - markMiddle) (CAP * 0.525 - aboveMarkMid) include : ApparentTranslate (SB * 1.5 + Stroke * HVContrast / 2 - markMiddle) (CAP * 0.525 - aboveMarkMid)
create-glyph 'LBarOverlay' : HOverlayBar (SB * 0.3) [mix (SB + Stroke) (RightSB - Stroke) 0.55] (CAP * OverlayPos) create-glyph 'LBarOverlay' : LetterBarOverlay.l.in LBarLeftX 0 CAP
create-glyph 'LBeltOverlay' : BeltOverlay CAP (LBarLeftX + 0.5 * HVContrast * Stroke)
derive-composites 'LBar' 0x23D 'L' 'LBarOverlay' derive-composites 'LBar' 0x23D 'L' 'LBarOverlay'
derive-composites 'LBelt' 0xA7AD 'L' 'LBeltOverlay'

View file

@ -10,7 +10,7 @@ glyph-block Letter-Latin-Upper-T : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Blackboard : BBS BBD
glyph-block-import Letter-Latin-Lower-M glyph-block-import Letter-Latin-Lower-M
glyph-block-import Letter-Shared-Shapes : CyrDescender glyph-block-import Letter-Shared-Shapes : CyrDescender LetterBarOverlay
define [TLeftX df] : df.leftSB + OX * 1.5 define [TLeftX df] : df.leftSB + OX * 1.5
define [TRightX df] : df.rightSB - OX * 1.5 define [TRightX df] : df.rightSB - OX * 1.5
@ -51,10 +51,7 @@ glyph-block Letter-Latin-Upper-T : begin
create-glyph "TBar.\(suffix)" : glyph-proc create-glyph "TBar.\(suffix)" : glyph-proc
include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS
include : HOverlayBar include : LetterBarOverlay.m.in df.middle 0 CAP 0.45
mix df.middle df.leftSB 0.8
mix df.middle df.rightSB 0.8
mix 0 CAP 0.45
create-glyph "Thookleft.\(suffix)" : glyph-proc create-glyph "Thookleft.\(suffix)" : glyph-proc
include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS

View file

@ -40,7 +40,7 @@ glyph-block Letter-Latin-Upper-Y : begin
include : VBar Middle bot (cross + HalfStroke) include : VBar Middle bot (cross + HalfStroke)
set-base-anchor 'overlay' Middle cross set-base-anchor 'overlay' Middle cross
define [YOverlayShape] : glyph-proc define [YenOverlayShape] : glyph-proc
include : HOverlayBar SB RightSB (CAP * 0.45) include : HOverlayBar SB RightSB (CAP * 0.45)
include : HOverlayBar SB RightSB (CAP * 0.25) include : HOverlayBar SB RightSB (CAP * 0.25)
@ -119,6 +119,13 @@ glyph-block Letter-Latin-Upper-Y : begin
eject-contour 'serifRT' eject-contour 'serifRT'
include : SetGrekUpperTonos (OX - HookX / 3) include : SetGrekUpperTonos (OX - HookX / 3)
create-glyph "YStroke.\(suffix)" : glyph-proc
include [refer-glyph "Y.\(suffix)"] AS_BASE ALSO_METRICS
local b : YCrossPos CAP 0
local t : CAP - [if (slabType === SLAB-ALL || slabType === SLAB-MOTION) Stroke 0]
include : HOverlayBar [mix 0 SB 0.5] [mix Width RightSB 0.5] [mix b t 0.5]
Math.min OverlayStroke ((t - b) * 0.625)
select-variant 'Y' 'Y' select-variant 'Y' 'Y'
link-reduced-variant 'Y/sansSerif' 'Y' MathSansSerif link-reduced-variant 'Y/sansSerif' 'Y' MathSansSerif
select-variant 'YHookTop' 0x1B3 (follow -- 'Y') select-variant 'YHookTop' 0x1B3 (follow -- 'Y')
@ -132,7 +139,7 @@ glyph-block Letter-Latin-Upper-Y : begin
alias 'cyrl/Ue' 0x4AE 'Y' alias 'cyrl/Ue' 0x4AE 'Y'
derive-glyphs 'currency/yenSign' 0xA5 'Y' : lambda [src gr] : glyph-proc derive-glyphs 'currency/yenSign' 0xA5 'Y' : lambda [src gr] : glyph-proc
include [refer-glyph src] AS_BASE ALSO_METRICS include [refer-glyph src] AS_BASE ALSO_METRICS
include : YOverlayShape include : YenOverlayShape
create-glyph 'YStrokeOverlay' : HOverlayBar ([mix 0 SB 0.5]) ([mix Width RightSB 0.5]) [mix 0 CAP 0.75] create-glyph 'YStrokeOverlay' : HOverlayBar ([mix 0 SB 0.5]) ([mix Width RightSB 0.5]) [mix 0 CAP 0.75]
derive-composites 'YStroke' 0x24E 'Y' 'YStrokeOverlay' derive-composites 'YStroke' 0x24E 'Y' 'YStrokeOverlay'

View file

@ -525,13 +525,20 @@ glyph-block Letter-Shared-Shapes : begin
glyph-proc glyph-proc
glyph-block-export HooktopLeftBar glyph-block-export HooktopLeftBar
define [HooktopLeftBar] : params [bottom] : glyph-proc define [HooktopLeftBar] : params [[bottom 0]] : glyph-proc
include : dispiro local yTurn : CAP - Hook - HalfStroke
if (bottom + TanSlope * HVContrast * Stroke < yTurn)
: then : include : dispiro
widths.lhs widths.lhs
straight.left.start (SB + HalfStroke * HVContrast + HookX) Ascender straight.left.start (SB + HalfStroke * HVContrast + HookX) Ascender
archv archv
flat SB (CAP - Hook - HalfStroke) flat SB (CAP - Hook - HalfStroke)
curl SB [fallback bottom 0] [heading Downward] curl SB bottom [heading Downward]
: else : include : dispiro
widths.lhs
straight.left.start (SB + HalfStroke * HVContrast + HookX) Ascender
archv
straight.down.end SB bottom [heading Downward]
glyph-block-export BeltOverlay glyph-block-export BeltOverlay
define [BeltOverlay top xMiddle] : begin define [BeltOverlay top xMiddle] : begin
@ -546,3 +553,46 @@ glyph-block Letter-Shared-Shapes : begin
arcvh arcvh
flat (xMiddle - HalfStroke - r * 1.5) (0.5 * top - r) flat (xMiddle - HalfStroke - r * 1.5) (0.5 * top - r)
curl (xMiddle + HalfStroke + r * 1.5 + fine) (0.5 * top - r) curl (xMiddle + HalfStroke + r * 1.5 + fine) (0.5 * top - r)
glyph-block-export LetterBarOverlay
define [LetterBarOverlay] : params [x y space refSw pXInSw sw] : begin
local {xLeftSpace xRightSpace} space
local xLeftEdge : x - pXInSw * refSw * HVContrast
local xRightEdge : x + (1 - pXInSw) * refSw * HVContrast
local xStrokeCenter : mix xLeftEdge xRightEdge 0.5
return : HOverlayBar
Math.max [mix xLeftSpace xLeftEdge 0.3] (xStrokeCenter - 0.75 * LongJut)
Math.min [mix xRightSpace xRightEdge 0.3] (xStrokeCenter + 0.75 * LongJut)
begin y
begin sw
set LetterBarOverlay.l : function []
params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw)
set LetterBarOverlay.m : function []
params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw)
set LetterBarOverlay.r : function []
params [x y [space {0 Width}] [refSw Stroke] [sw OverlayStroke]] : begin
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw)
define [calcYAndSw bot top py sw] : begin
local y : mix bot top py
local sw1 : Math.min sw (1.25 * (top - bot) * py) (1.25 * (top - bot) * (1 - py))
return { y sw1 }
set LetterBarOverlay.l.in : function []
params [x bot top [py OverlayPos] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw1)
set LetterBarOverlay.m.in : function []
params [x bot top [py OverlayPos] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw1)
set LetterBarOverlay.r.in : function []
params [x bot top [py OverlayPos] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw1)

View file

@ -10,6 +10,7 @@ glyph-module
glyph-block Symbol-Currency : begin glyph-block Symbol-Currency : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
create-glyph 'currency' 0xA4 : glyph-proc create-glyph 'currency' 0xA4 : glyph-proc
local sw : AdviceStroke 3.5 local sw : AdviceStroke 3.5
@ -22,28 +23,30 @@ glyph-block Symbol-Currency : begin
flat (Middle + radius * 0.87 * [Math.cos angle]) (SymbolMid + radius * 0.87 * [Math.sin angle]) flat (Middle + radius * 0.87 * [Math.cos angle]) (SymbolMid + radius * 0.87 * [Math.sin angle])
curl (Middle + radius * [Math.sqrt 2] * [Math.cos angle]) (SymbolMid + radius * [Math.sqrt 2] * [Math.sin angle]) curl (Middle + radius * [Math.sqrt 2] * [Math.cos angle]) (SymbolMid + radius * [Math.sqrt 2] * [Math.sin angle])
define [SterlineBaseShape] : glyph-proc do "Sterling"
local barLeft : [mix SB RightSB 0.2] - Stroke * 0.1 define xBarLeft : [mix SB RightSB 0.2] - Stroke * 0.1
local hookEndX : Math.max (barLeft + Stroke * 2.25 * HVContrast) [mix SB RightSB 0.95] define [BaseShape] : glyph-proc
include : union local xBarLeft : [mix SB RightSB 0.2] - Stroke * 0.1
dispiro local hookEndX : Math.max (xBarLeft + Stroke * 2.25 * HVContrast) [mix SB RightSB 0.95]
g4 hookEndX (CAP - Hook * 0.85) [widths.lhs] include : union
hookstart (CAP - O) (tight -- true) dispiro
flat barLeft [CAP - ArchDepthA * 0.75] g4 hookEndX (CAP - Hook * 0.85) [widths.lhs]
curl barLeft [mix Stroke CAP 0.3] hookstart (CAP - O) (tight -- true)
g4 SB Stroke flat xBarLeft [CAP - ArchDepthA * 0.75]
HBarBottom SB RightSB 0 curl xBarLeft [mix Stroke CAP 0.3]
g4 SB Stroke
HBarBottom SB RightSB 0
create-glyph 'currency/sterlingSign' 0xA3 : glyph-proc create-glyph 'currency/sterlingSign' 0xA3 : glyph-proc
set-width Width set-width Width
include : SterlineBaseShape include : BaseShape
include : HOverlayBar [mix SB RightSB 0.05] [mix SB RightSB 0.7] (CAP * 0.53) include : LetterBarOverlay.l xBarLeft (CAP * 0.5)
create-glyph 'currency/liraSymbolSign' 0x20A4 : glyph-proc create-glyph 'currency/liraSymbolSign' 0x20A4 : glyph-proc
set-width Width set-width Width
include : SterlineBaseShape include : BaseShape
include : HOverlayBar [mix SB RightSB 0.05] [mix SB RightSB 0.7] (CAP * 0.4) include : LetterBarOverlay.l xBarLeft (CAP * 0.37)
include : HOverlayBar [mix SB RightSB 0.05] [mix SB RightSB 0.7] (CAP * 0.63) include : LetterBarOverlay.l xBarLeft (CAP * 0.60 - OverlayStroke * 0.25)
glyph-block Symbol-Currency-Letter-Derived : begin glyph-block Symbol-Currency-Letter-Derived : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes