Fix shape and variant assignment for LATIN SMALL LETTER DOTLESS J WITH STROKE (U+025F
) (#1458).
This commit is contained in:
parent
60cccc4ef1
commit
a6111714f4
23 changed files with 233 additions and 134 deletions
|
@ -10,3 +10,4 @@
|
|||
- LATIN SMALL LETTER TURNED OPEN E (`U+1D08`);
|
||||
- LATIN LETTER SMALL CAPITAL OU (`U+1D15`);
|
||||
- LATIN LETTER AIN (`U+1D25`);
|
||||
* Fix shape and variant assignment for LATIN SMALL LETTER DOTLESS J WITH STROKE (`U+025F`) (#1458).
|
||||
|
|
|
@ -265,7 +265,7 @@ glyph-block Autobuild-Transformed : begin
|
|||
list 0x1D9E 'eth'
|
||||
list 0x1D9F 'latn/epsilonRev'
|
||||
list 0x1DA0 'f'
|
||||
list 0x1DA1 'turnf'
|
||||
list 0x1DA1 'dotlessjBar'
|
||||
list 0x1DA2 'gScript'
|
||||
list 0x1DA3 'turnh'
|
||||
list 0x1DA4 'iBarOver'
|
||||
|
|
|
@ -8,6 +8,7 @@ glyph-block Letter-Cyrillic-Yat : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Metrics : BowlXDepth
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
glyph-block-import Letter-Cyrillic-Yeri : CyrlYeriUprightShape
|
||||
|
||||
create-glyph 'cyrl/Yat' 0x462 : glyph-proc
|
||||
|
@ -15,14 +16,22 @@ glyph-block Letter-Cyrillic-Yat : begin
|
|||
local pBar 0.5
|
||||
include : CyrlYeriUprightShape CAP (pBar -- pBar)
|
||||
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
|
||||
include : MarkSet.b
|
||||
local pBar 0.4
|
||||
include : CyrlYeriUprightShape Ascender (pBar -- pBar)
|
||||
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
|
||||
eject-contour 'serifYeriLT'
|
||||
|
|
|
@ -9,9 +9,12 @@ glyph-block Letter-Cyrillic-Yeri : begin
|
|||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Metrics : BowlXDepth
|
||||
glyph-block-import Letter-Shared-Shapes : ShoulderMidKnotLhsRev RightwardTailedBar
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
|
||||
define DefaultBarPos 0.55
|
||||
|
||||
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 turnRadius : BowlXDepth bowl 0 left right stroke
|
||||
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
|
||||
|
||||
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 turnRadius : BowlXDepth bowl 0 left right stroke
|
||||
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)
|
||||
|
||||
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 turnRadius : BowlXDepth bowl 0 left right stroke
|
||||
local ada : ArchDepthAOf ArchDepth (right - left + SB * 2)
|
||||
|
@ -88,7 +91,7 @@ glyph-block Letter-Cyrillic-Yeri : begin
|
|||
if SLAB : begin
|
||||
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 turnRadius : bowl * 0.45
|
||||
local turnbottom : mix 0 bowl (ArchDepthB / (ArchDepthA + ArchDepthB))
|
||||
|
@ -162,11 +165,11 @@ glyph-block Letter-Cyrillic-Yeri : begin
|
|||
|
||||
define [YeriOverlayBar df top] : begin
|
||||
local stroke : AdviceStroke2 2 3 top
|
||||
return : HOverlayBar
|
||||
mix df.leftSB 0 0.7
|
||||
mix df.leftSB df.rightSB 0.5
|
||||
mix (top * 0.52 + stroke / 2) top 0.5
|
||||
Math.min ((top - Stroke * 3) / 3) OverlayStroke
|
||||
return : LetterBarOverlay.l.in
|
||||
x -- df.leftSB
|
||||
bot -- top * DefaultBarPos + stroke / 2
|
||||
top -- top - [if SLAB Stroke 0]
|
||||
py -- 0.5
|
||||
|
||||
foreach { suffix { Yeri fTail } } [Object.entries YerConfig] : do
|
||||
create-glyph "cyrl/Yeri.\(suffix)" : glyph-proc
|
||||
|
|
|
@ -8,6 +8,7 @@ glyph-module
|
|||
glyph-block Letter-Greek-Lower-Rho : begin
|
||||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
|
||||
create-glyph 'grek/rho' 0x3C1 : glyph-proc
|
||||
include : MarkSet.p
|
||||
|
@ -29,4 +30,4 @@ glyph-block Letter-Greek-Lower-Rho : begin
|
|||
|
||||
create-glyph 'grek/rhoBar' 0x3FC : glyph-proc
|
||||
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)
|
||||
|
|
|
@ -10,6 +10,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
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-Latin-Upper-F : xMidBarShrink
|
||||
|
||||
|
@ -133,10 +134,7 @@ glyph-block Letter-Greek-Upper-Gamma: begin
|
|||
adb -- ArchDepthB * [Math.pow HBarPos 0.3]
|
||||
include : VerticalHook (RightSB - HalfStroke * HVContrast) 0 (-HookX) Hook
|
||||
|
||||
define [GhaynOverlayBar top] : HOverlayBar
|
||||
GammaBarLeft - GammaBarLeft * 0.75
|
||||
GammaBarLeft + Stroke * HVContrast + SB * 0.625 + 0.125 * (RightSB - SB)
|
||||
top * (1 - OverlayPos)
|
||||
define [GhaynOverlayBar top] : LetterBarOverlay.l GammaBarLeft (top * (1 - OverlayPos))
|
||||
|
||||
derive-composites 'cyrl/Ghayn' 0x492 'cyrl/Ghe' [GhaynOverlayBar CAP]
|
||||
derive-composites 'cyrl/ghayn.upright' null 'cyrl/ghe.upright' [GhaynOverlayBar XH]
|
||||
|
|
|
@ -9,6 +9,7 @@ glyph-block Letter-Latin-Glottal-Stop : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Mark-Shared-Metrics : markHalfStroke
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
|
||||
create-glyph 'glottalstop' 0x294 : glyph-proc
|
||||
include : MarkSet.b
|
||||
|
@ -83,8 +84,8 @@ glyph-block Letter-Latin-Glottal-Stop : begin
|
|||
|
||||
create-glyph 'glottalstopbar' 0x2A1 : glyph-proc
|
||||
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
|
||||
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)
|
||||
|
|
|
@ -8,7 +8,7 @@ glyph-module
|
|||
glyph-block Letter-Latin-Long-S : begin
|
||||
glyph-block-import CommonShapes
|
||||
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
|
||||
|
||||
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'
|
||||
CenterBottomSerif (m + HalfStroke * HVContrast + RBalance * 0.35) 0 (Jut + RBalance * 0.65)
|
||||
|
||||
define [LongSBentHookOverlayBar m] : HOverlayBar
|
||||
m + HalfStroke * HVContrast - LongJut * 0.75
|
||||
m + HalfStroke * HVContrast + LongJut * 0.75
|
||||
[mix (XH - Stroke) Ascender 0.5] - HalfStroke
|
||||
define [LongSBentHookOverlayBar m] : LetterBarOverlay.m.in
|
||||
x -- (m + HalfStroke * HVContrast)
|
||||
bot -- (0.75 * XH - Stroke)
|
||||
top -- (Ascender - Stroke)
|
||||
|
||||
define [LongSSymmetricOverlayBar m] : HOverlayBar
|
||||
m - LongJut * 0.75
|
||||
m + LongJut * 0.75
|
||||
[mix (XH - Stroke) Ascender 0.5] - HalfStroke
|
||||
define [LongSSymmetricOverlayBar m] : LetterBarOverlay.m.in
|
||||
x -- m
|
||||
bot -- (0.75 * XH - Stroke)
|
||||
top -- (Ascender - Stroke)
|
||||
|
||||
create-glyph 'longs.bentHook' : glyph-proc
|
||||
include : MarkSet.b
|
||||
|
|
|
@ -17,6 +17,7 @@ glyph-block Letter-Latin-C : begin
|
|||
glyph-block-import Letter-Shared-Shapes : ArcStartInwardSerifL ArcStartInwardSerifR
|
||||
glyph-block-import Letter-Shared-Shapes : ArcEndInwardSerifL ArcEndInwardSerifR
|
||||
glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart_RtlLhs
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
glyph-block-import Letter-Blackboard : BBS BBD
|
||||
|
||||
define SLAB-NONE 0
|
||||
|
@ -399,11 +400,11 @@ glyph-block Letter-Latin-C : begin
|
|||
|
||||
derive-glyphs 'Cbar' 0xA792 'C' : lambda [src gr] : glyph-proc
|
||||
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
|
||||
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
|
||||
include [refer-glyph src] AS_BASE ALSO_METRICS
|
||||
|
|
|
@ -10,6 +10,7 @@ glyph-block Letter-Latin-K : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
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 [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
|
||||
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
|
||||
include : MarkSet.capital
|
||||
|
@ -505,7 +511,11 @@ glyph-block Letter-Latin-K : begin
|
|||
|
||||
create-glyph "kBar.\(suffix)" : glyph-proc
|
||||
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
|
||||
include : MarkSet.b
|
||||
|
|
|
@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-B : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
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
|
||||
OBarLeftShape
|
||||
|
@ -41,7 +41,7 @@ glyph-block Letter-Latin-Lower-B : begin
|
|||
toothlessRoundedMotionSerifed { ToothlessRoundedBody MotionSerifs true }
|
||||
|
||||
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
|
||||
include : MarkSet.b
|
||||
include : Body
|
||||
|
@ -49,7 +49,7 @@ glyph-block Letter-Latin-Lower-B : begin
|
|||
set-base-anchor 'overlayOnBar' (SB + 0.5 * Stroke * HVContrast) yOverlay
|
||||
create-glyph "bBar.\(suffix)" : glyph-proc
|
||||
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
|
||||
include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : dispiro
|
||||
|
|
|
@ -10,6 +10,7 @@ glyph-block Letter-Latin-Lower-D : begin
|
|||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared : CreateAccentedComposition
|
||||
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend CurlyTail
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
|
||||
define [ToothedBody] : union
|
||||
OBarRightShape
|
||||
|
@ -65,7 +66,7 @@ glyph-block Letter-Latin-Lower-D : begin
|
|||
|
||||
create-glyph "dcroat.\(suffix)" : glyph-proc
|
||||
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
|
||||
include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
|
|
|
@ -119,52 +119,49 @@ glyph-block Letter-Latin-Lower-F : begin
|
|||
define pNarrowSide : mix 1 para.diversityF 1.5
|
||||
|
||||
define SmallFConfig : object
|
||||
'serifless' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-NONE } { 'b' 'p' } }
|
||||
'serifed' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-SERIF } { 'b' 'p' } }
|
||||
'extended' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-EXTENSION } { 'if' 'if' } }
|
||||
'tailed' { { StandardSmallFShape [DivFrame 1] } { 1 fbar CH-HOOK } { 'if' 'if' } }
|
||||
'diagonalTailed' { { StandardSmallFShape [DivFrame 1] } { 1 fbar CH-DIAGONAL-HOOK } { 'if' 'if' } }
|
||||
'seriflessCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-NONE } { 'b' 'p' } }
|
||||
'serifedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-SERIF } { 'b' 'p' } }
|
||||
'extendedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-EXTENSION } { 'if' 'if' } }
|
||||
'tailedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 1 XH CH-HOOK } { 'if' 'if' } }
|
||||
'diagonalTailedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 1 XH CH-DIAGONAL-HOOK } { 'if' 'if' } }
|
||||
'flatHook' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-NONE } { 'b' 'p' } }
|
||||
'flatHookSerifed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-SERIF } { 'b' 'p' } }
|
||||
'flatHookExtended' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-EXTENSION } { 'if' 'if' } }
|
||||
'flatHookTailed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-HOOK } { 'if' 'if' } }
|
||||
'flatHookDiagonalTailed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-DIAGONAL-HOOK } { 'if' 'if' } }
|
||||
'flatHookCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-NONE } { 'b' 'p' } }
|
||||
'flatHookSerifedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-SERIF } { 'b' 'p' } }
|
||||
'flatHookExtendedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-EXTENSION } { 'if' 'if' } }
|
||||
'flatHookTailedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-HOOK } { 'if' 'if' } }
|
||||
'flatHookDiagonalTailedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-DIAGONAL-HOOK } { 'if' 'if' } }
|
||||
'serifless' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-NONE } 'b' }
|
||||
'serifed' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-SERIF } 'b' }
|
||||
'extended' { { StandardSmallFShape [DivFrame 1] } { 0.95 fbar CH-EXTENSION } 'if' }
|
||||
'tailed' { { StandardSmallFShape [DivFrame 1] } { 1 fbar CH-HOOK } 'if' }
|
||||
'diagonalTailed' { { StandardSmallFShape [DivFrame 1] } { 1 fbar CH-DIAGONAL-HOOK } 'if' }
|
||||
'seriflessCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-NONE } 'b' }
|
||||
'serifedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-SERIF } 'b' }
|
||||
'extendedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 0.95 XH CH-EXTENSION } 'if' }
|
||||
'tailedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 1 XH CH-HOOK } 'if' }
|
||||
'diagonalTailedCrossbarAtXHeight' { { StandardSmallFShape [DivFrame 1] } { 1 XH CH-DIAGONAL-HOOK } 'if' }
|
||||
'flatHook' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-NONE } 'b' }
|
||||
'flatHookSerifed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-SERIF } 'b' }
|
||||
'flatHookExtended' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-EXTENSION } 'if' }
|
||||
'flatHookTailed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-HOOK } 'if' }
|
||||
'flatHookDiagonalTailed' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide fbar CH-DIAGONAL-HOOK } 'if' }
|
||||
'flatHookCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-NONE } 'b' }
|
||||
'flatHookSerifedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-SERIF } 'b' }
|
||||
'flatHookExtendedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-EXTENSION } 'if' }
|
||||
'flatHookTailedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-HOOK } 'if' }
|
||||
'flatHookDiagonalTailedCrossbarAtXHeight' { { [NarrowFShape 0] dfNarrowF } { pNarrowSide XH CH-DIAGONAL-HOOK } 'if' }
|
||||
|
||||
'flatHookCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-NONE } { 'b' 'p' } }
|
||||
'flatHookSerifedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-SERIF } { 'b' 'p' } }
|
||||
'flatHookExtendedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-EXTENSION } { 'if' 'if' } }
|
||||
'flatHookTailedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-HOOK } { 'if' 'if' } }
|
||||
'flatHookDiagonalTailedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-DIAGONAL-HOOK } { 'if' 'if' } }
|
||||
'flatHookCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-NONE } 'b' }
|
||||
'flatHookSerifedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-SERIF } 'b' }
|
||||
'flatHookExtendedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-EXTENSION } 'if' }
|
||||
'flatHookTailedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-HOOK } 'if' }
|
||||
'flatHookDiagonalTailedCLC1' { { [NarrowFShape 1] dfNarrowF } { pNarrowSide XH CH-DIAGONAL-HOOK } 'if' }
|
||||
|
||||
'flatHookCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-NONE } { 'b' 'p' } }
|
||||
'flatHookSerifedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-SERIF } { 'b' 'p' } }
|
||||
'flatHookExtendedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-EXTENSION } { 'if' 'if' } }
|
||||
'flatHookTailedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-HOOK } { 'if' 'if' } }
|
||||
'flatHookDiagonalTailedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-DIAGONAL-HOOK } { 'if' 'if' } }
|
||||
'flatHookCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-NONE } 'b' }
|
||||
'flatHookSerifedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-SERIF } 'b' }
|
||||
'flatHookExtendedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-EXTENSION } 'if' }
|
||||
'flatHookTailedCLC2' { { [NarrowFShape 2] dfNarrowF } { pNarrowSide fbar CH-HOOK } '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
|
||||
set-width df.width
|
||||
include : df.markSet.(mk)
|
||||
include : Body df pBar yBar ch
|
||||
turned "turnf.\(suffix)" nothing "f.\(suffix)" df.middle (XH / 2) [df.markSet.(mkTurn)]
|
||||
|
||||
select-variant 'f' 'f'
|
||||
link-reduced-variant 'f/sansSerif' 'f' MathSansSerif
|
||||
select-variant 'turnf' 0x25F (follow -- 'f')
|
||||
select-variant 'fLenis' 0xAB35 (shapeFrom -- 'f')
|
||||
select-variant 'fLTail' 0x192 (shapeFrom -- 'f')
|
||||
select-variant 'dotlessjWithStrokeAndHook' 0x284 (shapeFrom -- 'turnf')
|
||||
select-variant 'f/compLigLeft1' (shapeFrom -- 'f')
|
||||
select-variant 'f/compLigLeft2' (shapeFrom -- 'f')
|
||||
select-variant 'f/phoneticLeft' (shapeFrom -- 'f')
|
||||
|
|
|
@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-J : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
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-Blackboard : BBS BBD
|
||||
|
||||
|
@ -88,26 +88,39 @@ glyph-block Letter-Latin-Lower-J : begin
|
|||
set-base-anchor 'overlay' xMiddle (top / 2)
|
||||
|
||||
define JConfig : object
|
||||
'serifless' { Body.Regular null XMiddle.Regular Marks.FullHook 1 }
|
||||
'serifed' { Body.Regular Serifs.Long XMiddle.Regular Marks.FullHook 1 }
|
||||
'straightLine' { Body.Straight null XMiddle.Straight Marks.Straight para.diversityII }
|
||||
'hooky' { Body.Straight Serifs.Long XMiddle.Hooky Marks.Straight para.diversityII }
|
||||
'flatHookSerifless' { Body.FlatHook null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII }
|
||||
'flatHookSerifed' { Body.FlatHook Serifs.Long XMiddle.FlatHookSerifed Marks.FullHook para.diversityI }
|
||||
'diagonalTailedSerifless' { Body.DiagonalTailed null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII }
|
||||
'diagonalTailedSerifed' { Body.DiagonalTailed Serifs.Long XMiddle.FlatHookSerifed Marks.FullHook para.diversityI }
|
||||
'serifless' { "Regular" null XMiddle.Regular Marks.FullHook 1 }
|
||||
'serifed' { "Regular" Serifs.Long XMiddle.Regular Marks.FullHook 1 }
|
||||
'straightLine' { "Straight" null XMiddle.Straight Marks.Straight para.diversityII }
|
||||
'hooky' { "Straight" Serifs.Long XMiddle.Hooky Marks.Straight para.diversityII }
|
||||
'flatHookSerifless' { "FlatHook" null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII }
|
||||
'flatHookSerifed' { "FlatHook" Serifs.Long XMiddle.FlatHookSerifed Marks.FullHook para.diversityI }
|
||||
'diagonalTailedSerifless' { "DiagonalTailed" null XMiddle.FlatHookSerifless Marks.FullHook para.diversityII }
|
||||
'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
|
||||
local df : DivFrame div
|
||||
set-width df.width
|
||||
include : df.markSet.p
|
||||
local xMiddle : xMiddleT df
|
||||
include : Body df XH xMiddle
|
||||
include : Body.(shapeId) df XH xMiddle
|
||||
if Serif : include : tagged 'serifLT' : Serif df XH xMiddle
|
||||
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 'dotlessjBar' 0x25F (follow -- 'dotlessj')
|
||||
select-variant 'dotlessjBarHookTop' 0x284 (follow -- 'dotlessj/sansSerif')
|
||||
link-reduced-variant 'dotlessj/sansSerif' 'dotlessj' MathSansSerif
|
||||
CreateAccentedComposition 'j' 'j' 'dotlessj' 'dotAbove'
|
||||
CreateAccentedComposition 'j/sansSerif' null 'dotlessj/sansSerif' 'dotAbove'
|
||||
|
|
|
@ -9,7 +9,7 @@ glyph-block Letter-Latin-Upper-B : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
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
|
||||
|
||||
define BArcMix 0.93
|
||||
|
@ -94,11 +94,8 @@ glyph-block Letter-Latin-Upper-B : begin
|
|||
|
||||
define [BOverlayBar top bp] : begin
|
||||
local stroke : AdviceStroke2 2 3 top
|
||||
return : HOverlayBar
|
||||
mix SB 0 0.7
|
||||
mix SB RightSB 0.5
|
||||
mix 0 (top * bp + stroke / 2) 0.5
|
||||
Math.min ((top - Stroke * 3) / 4) OverlayStroke
|
||||
return : LetterBarOverlay.l.in SB stroke (top * bp - 0.5 * stroke) 0.5
|
||||
space -- { 0 (RightSB - Stroke * HVContrast) }
|
||||
|
||||
define [BahtBar sw] : VBar [mix SB RightSB 0.475] (CAP - Descender / 2) (Descender / 2) sw
|
||||
define [BitcoinBar sw] : begin
|
||||
|
|
|
@ -8,6 +8,7 @@ glyph-module
|
|||
glyph-block Letter-Latin-Upper-D : begin
|
||||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
|
||||
define [DArcShapeT sink df top right offset sw fRound] : glyph-proc
|
||||
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
|
||||
derive-glyphs 'Eth' 0xD0 'D' : lambda [src gr] : glyph-proc
|
||||
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 'arficanD' 0x189 'Eth'
|
||||
|
||||
select-variant 'smcpD' 0x1D05 (follow -- 'D')
|
||||
derive-glyphs 'smcpEth' 0x1D06 'smcpD' : lambda [src gr] : glyph-proc
|
||||
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
|
||||
include [refer-glyph src] AS_BASE ALSO_METRICS
|
||||
|
|
|
@ -8,6 +8,7 @@ glyph-module
|
|||
glyph-block Letter-Latin-Upper-F : begin
|
||||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
|
||||
glyph-block-export xMidBarShrink
|
||||
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
|
||||
include [refer-glyph "F.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : HOverlayBar (SB * 0.5) (SB * 3 + Stroke * HVContrast) : Math.max
|
||||
mix [if lb Stroke 0] ([yMidBar CAP] - HalfStroke) (1 / 2)
|
||||
[mix [if lb Stroke 0] ([yMidBar CAP] - HalfStroke) (2 / 3)] - OverlayStroke / 2
|
||||
include : LetterBarOverlay.l.in
|
||||
x -- SB
|
||||
bot -- [if lb Stroke 0]
|
||||
top -- [yMidBar CAP] - HalfStroke
|
||||
py -- 0.5
|
||||
|
||||
create-glyph "smcpF.\(suffix)" : glyph-proc
|
||||
include : MarkSet.e
|
||||
|
|
|
@ -10,7 +10,7 @@ glyph-block Letter-Latin-Upper-G : begin
|
|||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Shapes : DToothlessRise ShoulderMidKnotLhs
|
||||
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 TOOTHLESS-CORNER 1
|
||||
|
@ -68,7 +68,13 @@ glyph-block Letter-Latin-Upper-G : begin
|
|||
[Just TOOTHLESS-ROUNDED] : glyph-proc
|
||||
|
||||
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
|
||||
toothedSeriflessHookless { TOOTHED CROSSBAR-NONE SLAB-NONE }
|
||||
|
@ -104,7 +110,6 @@ glyph-block Letter-Latin-Upper-G : begin
|
|||
create-glyph "G.\(suffix)" : glyph-proc
|
||||
include : MarkSet.capital
|
||||
include : GShape shape slabType crossBarShape CAP ArchDepthA ArchDepthB
|
||||
create-forked-glyph "Gbar.\(suffix)" : OverlayBarOfG CAP
|
||||
create-glyph "GHookTop.\(suffix)" : glyph-proc
|
||||
include : MarkSet.capital
|
||||
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 'GHookTop' 0x193
|
||||
select-variant 'smcpGHookTop' 0x29B (follow -- 'GHookTop')
|
||||
select-variant 'Gbar' 0x1E4 (follow -- 'G')
|
||||
turned 'turnSansSerifG' 0x2141 'G/sansSerif' Middle (CAP / 2)
|
||||
|
||||
derive-composites 'Gbar' 0x1E4 'G' 'GBarOverlay'
|
||||
|
||||
glyph-block-import Letter-Blackboard : BBS BBD BBBarRight
|
||||
define [BBGArcT sink offset top ada adb xTerm yTerm] : sink
|
||||
widths.lhs BBS
|
||||
|
|
|
@ -11,7 +11,7 @@ glyph-block Letter-Latin-Upper-L : begin
|
|||
glyph-block-import Mark-Shared-Metrics : markMiddle
|
||||
glyph-block-import Mark-Above : aboveMarkMid
|
||||
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 [LShape top sgr] : glyph-proc
|
||||
|
@ -36,14 +36,10 @@ glyph-block Letter-Latin-Upper-L : begin
|
|||
create-glyph "smcpL.\(suffix)" : glyph-proc
|
||||
include : MarkSet.e
|
||||
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'
|
||||
link-reduced-variant 'L/sansSerif' 'L' MathSansSerif
|
||||
select-variant 'smcpL' 0x29F (follow -- 'L')
|
||||
select-variant 'LBelt' 0xA7AD (follow -- 'L')
|
||||
|
||||
turned 'turnL' 0xA780 'L' 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 : 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 'LBelt' 0xA7AD 'L' 'LBeltOverlay'
|
||||
|
|
|
@ -10,7 +10,7 @@ glyph-block Letter-Latin-Upper-T : begin
|
|||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Blackboard : BBS BBD
|
||||
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 [TRightX df] : df.rightSB - OX * 1.5
|
||||
|
@ -51,10 +51,7 @@ glyph-block Letter-Latin-Upper-T : begin
|
|||
|
||||
create-glyph "TBar.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : HOverlayBar
|
||||
mix df.middle df.leftSB 0.8
|
||||
mix df.middle df.rightSB 0.8
|
||||
mix 0 CAP 0.45
|
||||
include : LetterBarOverlay.m.in df.middle 0 CAP 0.45
|
||||
|
||||
create-glyph "Thookleft.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
|
|
|
@ -40,7 +40,7 @@ glyph-block Letter-Latin-Upper-Y : begin
|
|||
include : VBar Middle bot (cross + HalfStroke)
|
||||
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.25)
|
||||
|
||||
|
@ -119,6 +119,13 @@ glyph-block Letter-Latin-Upper-Y : begin
|
|||
eject-contour 'serifRT'
|
||||
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'
|
||||
link-reduced-variant 'Y/sansSerif' 'Y' MathSansSerif
|
||||
select-variant 'YHookTop' 0x1B3 (follow -- 'Y')
|
||||
|
@ -132,7 +139,7 @@ glyph-block Letter-Latin-Upper-Y : begin
|
|||
alias 'cyrl/Ue' 0x4AE 'Y'
|
||||
derive-glyphs 'currency/yenSign' 0xA5 'Y' : lambda [src gr] : glyph-proc
|
||||
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]
|
||||
derive-composites 'YStroke' 0x24E 'Y' 'YStrokeOverlay'
|
||||
|
|
|
@ -525,13 +525,20 @@ glyph-block Letter-Shared-Shapes : begin
|
|||
glyph-proc
|
||||
|
||||
glyph-block-export HooktopLeftBar
|
||||
define [HooktopLeftBar] : params [bottom] : glyph-proc
|
||||
include : dispiro
|
||||
define [HooktopLeftBar] : params [[bottom 0]] : glyph-proc
|
||||
local yTurn : CAP - Hook - HalfStroke
|
||||
if (bottom + TanSlope * HVContrast * Stroke < yTurn)
|
||||
: then : include : dispiro
|
||||
widths.lhs
|
||||
straight.left.start (SB + HalfStroke * HVContrast + HookX) Ascender
|
||||
archv
|
||||
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
|
||||
define [BeltOverlay top xMiddle] : begin
|
||||
|
@ -546,3 +553,46 @@ glyph-block Letter-Shared-Shapes : begin
|
|||
arcvh
|
||||
flat (xMiddle - HalfStroke - r * 1.5) (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)
|
||||
|
|
|
@ -10,6 +10,7 @@ glyph-module
|
|||
glyph-block Symbol-Currency : begin
|
||||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
|
||||
|
||||
create-glyph 'currency' 0xA4 : glyph-proc
|
||||
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])
|
||||
curl (Middle + radius * [Math.sqrt 2] * [Math.cos angle]) (SymbolMid + radius * [Math.sqrt 2] * [Math.sin angle])
|
||||
|
||||
define [SterlineBaseShape] : glyph-proc
|
||||
local barLeft : [mix SB RightSB 0.2] - Stroke * 0.1
|
||||
local hookEndX : Math.max (barLeft + Stroke * 2.25 * HVContrast) [mix SB RightSB 0.95]
|
||||
include : union
|
||||
dispiro
|
||||
g4 hookEndX (CAP - Hook * 0.85) [widths.lhs]
|
||||
hookstart (CAP - O) (tight -- true)
|
||||
flat barLeft [CAP - ArchDepthA * 0.75]
|
||||
curl barLeft [mix Stroke CAP 0.3]
|
||||
g4 SB Stroke
|
||||
HBarBottom SB RightSB 0
|
||||
do "Sterling"
|
||||
define xBarLeft : [mix SB RightSB 0.2] - Stroke * 0.1
|
||||
define [BaseShape] : glyph-proc
|
||||
local xBarLeft : [mix SB RightSB 0.2] - Stroke * 0.1
|
||||
local hookEndX : Math.max (xBarLeft + Stroke * 2.25 * HVContrast) [mix SB RightSB 0.95]
|
||||
include : union
|
||||
dispiro
|
||||
g4 hookEndX (CAP - Hook * 0.85) [widths.lhs]
|
||||
hookstart (CAP - O) (tight -- true)
|
||||
flat xBarLeft [CAP - ArchDepthA * 0.75]
|
||||
curl xBarLeft [mix Stroke CAP 0.3]
|
||||
g4 SB Stroke
|
||||
HBarBottom SB RightSB 0
|
||||
|
||||
create-glyph 'currency/sterlingSign' 0xA3 : glyph-proc
|
||||
set-width Width
|
||||
include : SterlineBaseShape
|
||||
include : HOverlayBar [mix SB RightSB 0.05] [mix SB RightSB 0.7] (CAP * 0.53)
|
||||
create-glyph 'currency/sterlingSign' 0xA3 : glyph-proc
|
||||
set-width Width
|
||||
include : BaseShape
|
||||
include : LetterBarOverlay.l xBarLeft (CAP * 0.5)
|
||||
|
||||
create-glyph 'currency/liraSymbolSign' 0x20A4 : glyph-proc
|
||||
set-width Width
|
||||
include : SterlineBaseShape
|
||||
include : HOverlayBar [mix SB RightSB 0.05] [mix SB RightSB 0.7] (CAP * 0.4)
|
||||
include : HOverlayBar [mix SB RightSB 0.05] [mix SB RightSB 0.7] (CAP * 0.63)
|
||||
create-glyph 'currency/liraSymbolSign' 0x20A4 : glyph-proc
|
||||
set-width Width
|
||||
include : BaseShape
|
||||
include : LetterBarOverlay.l xBarLeft (CAP * 0.37)
|
||||
include : LetterBarOverlay.l xBarLeft (CAP * 0.60 - OverlayStroke * 0.25)
|
||||
|
||||
glyph-block Symbol-Currency-Letter-Derived : begin
|
||||
glyph-block-import CommonShapes
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue