Fix Tje (#1700)
This commit is contained in:
parent
6ab33a385a
commit
29328b6933
12 changed files with 253 additions and 181 deletions
|
@ -12,12 +12,12 @@ glyph-block Letter-Greek-Lower-Rho : begin
|
|||
|
||||
create-glyph 'grek/rho' 0x3C1 : glyph-proc
|
||||
include : MarkSet.p
|
||||
include : tagged 'bowl' : OBarRight.rounded XH RightSB CAP
|
||||
include : tagged 'bowl' : OBarRight.rounded XH (yTerminal -- CAP)
|
||||
include : FlipAround Middle (XH / 2)
|
||||
|
||||
create-glyph 'grek/rhoSymbol' 0x3F1 : glyph-proc
|
||||
include : MarkSet.p
|
||||
include : tagged 'bowl' : OBarRight.rounded XH RightSB XH
|
||||
include : tagged 'bowl' : OBarRight.rounded XH (yTerminal -- XH)
|
||||
include : FlipAround Middle (XH / 2)
|
||||
include : dispiro
|
||||
widths.lhs
|
||||
|
|
|
@ -51,33 +51,33 @@ glyph-block Letter-Latin-Lower-DB-QP : begin
|
|||
if SLAB : begin
|
||||
include : HSerif.mb df.middle Descender Jut
|
||||
|
||||
create-glyph 'cyrl/djeKomi' 0x503 : glyph-proc
|
||||
local df : DivFrame para.diversityM 3
|
||||
set-width df.width
|
||||
include : df.markSet.b
|
||||
# create-glyph 'cyrl/djeKomi' 0x503 : glyph-proc
|
||||
# local df : DivFrame para.diversityM 3
|
||||
# set-width df.width
|
||||
# include : df.markSet.b
|
||||
|
||||
local { subDf } : SubDfAndShift 0 df OX
|
||||
local ada : subDf.archDepthA SmallArchDepth df.mvs
|
||||
local adb : subDf.archDepthB SmallArchDepth df.mvs
|
||||
# local { subDf } : SubDfAndShift 0 df OX
|
||||
# local ada : subDf.archDepthA SmallArchDepth df.mvs
|
||||
# local adb : subDf.archDepthB SmallArchDepth df.mvs
|
||||
|
||||
include : OBarLeft.roundedTop
|
||||
left -- df.middle - 0.5 * df.mvs * HVContrast
|
||||
right -- df.rightSB
|
||||
yTerminal -- 0
|
||||
sw -- df.mvs
|
||||
ada -- ada
|
||||
adb -- adb
|
||||
include : FlipAround df.middle (XH / 2)
|
||||
include : UpwardHookShape
|
||||
left -- df.middle - 0.5 * df.mvs * HVContrast
|
||||
right -- df.rightSB
|
||||
ybegin -- Ascender
|
||||
yend -- (XH / 2)
|
||||
ada -- (SmallArchDepthA * 0.6 * df.div)
|
||||
adb -- (SmallArchDepthB * 0.6 * df.div)
|
||||
sw -- df.mvs
|
||||
# include : OBarLeft.roundedTop
|
||||
# left -- df.middle - 0.5 * df.mvs * HVContrast
|
||||
# right -- df.rightSB
|
||||
# yTerminal -- 0
|
||||
# sw -- df.mvs
|
||||
# ada -- ada
|
||||
# adb -- adb
|
||||
# include : FlipAround df.middle (XH / 2)
|
||||
# include : UpwardHookShape
|
||||
# left -- df.middle - 0.5 * df.mvs * HVContrast
|
||||
# right -- df.rightSB
|
||||
# ybegin -- Ascender
|
||||
# yend -- (XH / 2)
|
||||
# ada -- (SmallArchDepthA * 0.6 * df.div)
|
||||
# adb -- (SmallArchDepthB * 0.6 * df.div)
|
||||
# sw -- df.mvs
|
||||
|
||||
if SLAB : begin
|
||||
include : HSerif.lt (df.middle - df.mvs / 2 * HVContrast) Ascender SideJut df.mvs
|
||||
local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2
|
||||
include sf2.rt.full
|
||||
# if SLAB : begin
|
||||
# include : HSerif.lt (df.middle - df.mvs / 2 * HVContrast) Ascender SideJut df.mvs
|
||||
# local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2
|
||||
# include sf2.rt.full
|
||||
|
|
|
@ -134,7 +134,7 @@ glyph-block Letter-Latin-Lower-A : begin
|
|||
|
||||
define SingleStorey : namespace
|
||||
export : define [FullBarBody height bar mask] : glyph-proc
|
||||
include : OBarRight.shape height
|
||||
include : OBarRight.shape (top -- height)
|
||||
include : bar height mask
|
||||
export : define [EarlessCornerBody height bar mask] : glyph-proc
|
||||
include : OBarLeft.toothless (rise -- DToothlessRise) (mBlend -- DMBlend)
|
||||
|
|
|
@ -113,4 +113,4 @@ glyph-block Letter-Latin-Lower-B : begin
|
|||
include : OBarLeft.shape
|
||||
left -- SB + BBD
|
||||
top -- XH
|
||||
stroke -- BBS
|
||||
sw -- BBS
|
||||
|
|
|
@ -11,69 +11,143 @@ glyph-block Letter-Latin-Lower-D : begin
|
|||
glyph-block-import Letter-Shared : CreateAccentedComposition
|
||||
glyph-block-import Letter-Shared-Shapes : OBarRight RightwardTailedBar DToothlessRise DMBlend
|
||||
glyph-block-import Letter-Shared-Shapes : CurlyTail LetterBarOverlay PalatalHook VerticalHook
|
||||
glyph-block-import Letter-Shared-Shapes : SerifFrame UpwardHookShape
|
||||
|
||||
define [ToothedBody] : union
|
||||
define [ToothedBody df yTop] : union
|
||||
OBarRight.shape
|
||||
VBar.r RightSB 0 Ascender
|
||||
top -- XH
|
||||
left -- df.leftSB
|
||||
right -- df.rightSB
|
||||
sw -- df.mvs
|
||||
ada -- [df.archDepthA SmallArchDepth df.mvs]
|
||||
adb -- [df.archDepthB SmallArchDepth df.mvs]
|
||||
tagged 'rightBar' : VBar.r df.rightSB 0 yTop
|
||||
|
||||
define [ToothlessCornerBody] : union
|
||||
OBarRight.toothless XH RightSB DToothlessRise DMBlend
|
||||
VBar.r RightSB DToothlessRise Ascender
|
||||
define [ToothlessCornerBody df yTop] : union
|
||||
OBarRight.toothless
|
||||
top -- XH
|
||||
left -- df.leftSB
|
||||
right -- df.rightSB
|
||||
sw -- df.mvs
|
||||
rise -- DToothlessRise
|
||||
mBlend -- DMBlend
|
||||
ada -- [df.archDepthA SmallArchDepth df.mvs]
|
||||
adb -- [df.archDepthB SmallArchDepth df.mvs]
|
||||
tagged 'rightBar' : VBar.r df.rightSB DToothlessRise yTop
|
||||
|
||||
define [ToothlessCornerHBBBody] : union
|
||||
OBarRight.toothless XH RightSB DToothlessRise DMBlend
|
||||
VBar.r RightSB 0 Ascender
|
||||
define [ToothlessCornerHBBBody df yTop] : union
|
||||
OBarRight.toothless
|
||||
top -- XH
|
||||
left -- df.leftSB
|
||||
right -- df.rightSB
|
||||
sw -- df.mvs
|
||||
rise -- DToothlessRise
|
||||
mBlend -- DMBlend
|
||||
ada -- [df.archDepthA SmallArchDepth df.mvs]
|
||||
adb -- [df.archDepthB SmallArchDepth df.mvs]
|
||||
tagged 'rightBar' : VBar.r df.rightSB 0 yTop
|
||||
|
||||
define [ToothlessRoundedBody] : OBarRight.rounded XH RightSB Ascender
|
||||
define [ToothlessRoundedHBBBody] : union
|
||||
OBarRight.rounded XH RightSB Ascender
|
||||
VBar.r RightSB 0 Ascender
|
||||
define [ToothlessRoundedBody df yTop] : OBarRight.rounded
|
||||
top -- XH
|
||||
left -- df.leftSB
|
||||
right -- df.rightSB
|
||||
sw -- df.mvs
|
||||
yTerminal -- yTop
|
||||
ada -- [df.archDepthA SmallArchDepth df.mvs]
|
||||
adb -- [df.archDepthB SmallArchDepth df.mvs]
|
||||
|
||||
define [TailedBody] : union
|
||||
define [ToothlessRoundedHBBBody df yTop] : union
|
||||
ToothlessRoundedBody df yTop
|
||||
tagged 'rightBar' : VBar.r df.rightSB 0 yTop
|
||||
|
||||
define [TailedBody df yTop] : union
|
||||
OBarRight.shape
|
||||
RightwardTailedBar RightSB 0 Ascender
|
||||
top -- XH
|
||||
left -- df.leftSB
|
||||
right -- df.rightSB
|
||||
sw -- df.mvs
|
||||
ada -- [df.archDepthA SmallArchDepth df.mvs]
|
||||
adb -- [df.archDepthB SmallArchDepth df.mvs]
|
||||
RightwardTailedBar df.rightSB 0 yTop
|
||||
|
||||
define [TopSerif] : tagged 'serifRT'
|
||||
HSerif.lt (RightSB - Stroke * HVContrast) Ascender SideJut
|
||||
define [TopSerif df yTop] : tagged 'serifRT'
|
||||
HSerif.lt (df.rightSB - Stroke * HVContrast) yTop SideJut
|
||||
|
||||
define [BaseSerif] : tagged 'serifRB'
|
||||
HSerif.rb RightSB 0 SideJut
|
||||
define [BaseSerif df yTop] : tagged 'serifRB'
|
||||
HSerif.rb df.rightSB 0 SideJut
|
||||
|
||||
define DConfig : object
|
||||
toothedSerifless { ToothedBody null null }
|
||||
toothedTopSerifed { ToothedBody TopSerif null }
|
||||
toothedSerifed { ToothedBody TopSerif BaseSerif }
|
||||
tailedSerifless { TailedBody null null }
|
||||
tailedSerifed { TailedBody TopSerif null }
|
||||
toothlessCornerSerifless { ToothlessCornerBody null null }
|
||||
toothlessCornerSerifed { ToothlessCornerBody TopSerif null }
|
||||
toothlessCornerSeriflessHBB { ToothlessCornerHBBBody null null }
|
||||
toothlessCornerSerifedHBB { ToothlessCornerHBBBody TopSerif null }
|
||||
toothlessRoundedSerifless { ToothlessRoundedBody null null }
|
||||
toothlessRoundedSerifed { ToothlessRoundedBody TopSerif null }
|
||||
toothlessRoundedSeriflessHBB { ToothlessRoundedHBBBody null null }
|
||||
toothlessRoundedSerifedHBB { ToothlessRoundedHBBBody TopSerif null }
|
||||
toothedSerifless { ToothedBody null null }
|
||||
toothedTopSerifed { ToothedBody TopSerif null }
|
||||
toothedSerifed { ToothedBody TopSerif BaseSerif }
|
||||
toothedBottomSerifed { ToothedBody null BaseSerif }
|
||||
tailedSerifless { TailedBody null null }
|
||||
tailedSerifed { TailedBody TopSerif null }
|
||||
toothlessCornerSerifless { ToothlessCornerBody null null }
|
||||
toothlessCornerSerifed { ToothlessCornerBody TopSerif null }
|
||||
toothlessCornerSeriflessHBB { ToothlessCornerHBBBody null null }
|
||||
toothlessCornerSerifedHBB { ToothlessCornerHBBBody TopSerif null }
|
||||
toothlessRoundedSerifless { ToothlessRoundedBody null null }
|
||||
toothlessRoundedSerifed { ToothlessRoundedBody TopSerif null }
|
||||
toothlessRoundedSeriflessHBB { ToothlessRoundedHBBBody null null }
|
||||
toothlessRoundedSerifedHBB { ToothlessRoundedHBBBody TopSerif null }
|
||||
toothlessRoundedBottomSerifed { ToothlessRoundedHBBBody null BaseSerif }
|
||||
toothlessRoundedBilateralSerifed{ ToothlessRoundedHBBBody TopSerif BaseSerif }
|
||||
|
||||
foreach { suffix { Body topSerif bottomSerif } } [Object.entries DConfig] : do
|
||||
local yOverlay : mix XH (Ascender - [if topSerif Stroke 0]) 0.5
|
||||
|
||||
create-glyph "d.\(suffix)" : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : Body
|
||||
if topSerif : include : topSerif
|
||||
if bottomSerif : include : bottomSerif
|
||||
set-base-anchor 'overlayOnExtension' (RightSB - 0.5 * Stroke * HVContrast) yOverlay
|
||||
local df : DivFrame 1
|
||||
include : df.markSet.b
|
||||
include : Body df Ascender
|
||||
if topSerif : include : topSerif df Ascender
|
||||
if bottomSerif : include : bottomSerif df Ascender
|
||||
set-base-anchor 'overlayOnExtension' (df.rightSB - 0.5 * Stroke * HVContrast) yOverlay
|
||||
|
||||
create-glyph "dcroat.\(suffix)" : glyph-proc
|
||||
local df : DivFrame 1
|
||||
include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : LetterBarOverlay.r.in RightSB XH (Ascender - [if topSerif Stroke 0])
|
||||
include : LetterBarOverlay.r.in df.rightSB XH (Ascender - [if topSerif Stroke 0])
|
||||
|
||||
create-glyph "latn/de.\(suffix)" : glyph-proc
|
||||
local df : DivFrame 1
|
||||
include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
local xLeft : mix RightSB SB 0.9
|
||||
include : HBar.t xLeft (RightSB + O) CAP
|
||||
local xLeft : mix df.rightSB df.leftSB 0.9
|
||||
include : HBar.t xLeft (df.rightSB + O) CAP
|
||||
if topSerif : include : VSerif.dl xLeft CAP : Math.min VJut (0.8 * (Ascender - XH))
|
||||
|
||||
define yDHookTopConnect : Ascender - Hook - HalfStroke
|
||||
create-glyph "dHookTop.\(suffix)" : glyph-proc
|
||||
local df : DivFrame 1
|
||||
include : df.markSet.b
|
||||
include : Body df (Ascender - Hook - HalfStroke)
|
||||
include : VerticalHook.r df.rightSB yDHookTopConnect HookX (-Hook)
|
||||
if bottomSerif : include : bottomSerif df Ascender
|
||||
|
||||
create-glyph "cyrl/djeKomi.\(suffix)" : glyph-proc
|
||||
local df : DivFrame 1 3
|
||||
include : df.markSet.b
|
||||
|
||||
local dfHalf : df.slice 3 2
|
||||
include : Body dfHalf Ascender
|
||||
eject-contour 'rightBar'
|
||||
|
||||
include : WithTransform [ApparentTranslate (df.width - dfHalf.width) 0] : UpwardHookShape
|
||||
left -- dfHalf.leftSB
|
||||
right -- dfHalf.rightSB
|
||||
ybegin -- Ascender
|
||||
yend -- (XH / 2)
|
||||
ada -- [dfHalf.archDepthA SmallArchDepth df.mvs]
|
||||
adb -- [dfHalf.archDepthB SmallArchDepth df.mvs]
|
||||
sw -- df.mvs
|
||||
|
||||
if topSerif : include : topSerif dfHalf Ascender
|
||||
if bottomSerif : begin
|
||||
local sf2 : [SerifFrame.fromDf df (XH / 2) 0].slice 1 2
|
||||
include sf2.rt.full
|
||||
|
||||
|
||||
select-variant 'd' 'd'
|
||||
select-variant 'dcroat' 0x111 (follow -- 'd')
|
||||
select-variant 'latn/de' 0x18C (follow -- 'd')
|
||||
|
@ -83,11 +157,33 @@ glyph-block Letter-Latin-Lower-D : begin
|
|||
link-reduced-variant 'd/hookBottomBase' 'd'
|
||||
CreateAccentedComposition 'dTildeOver' 0x1D6D 'd' 'tildeOverOnExension'
|
||||
|
||||
select-variant 'dHookTop' 0x257
|
||||
link-reduced-variant 'dHookTop/hookBottomBase' 'dHookTop'
|
||||
|
||||
select-variant 'cyrl/djeKomi' 0x503
|
||||
|
||||
derive-composites 'dPalatalHook' 0x1D81 'd/hookBottomBase' : PalatalHook.r
|
||||
xLink -- RightSB
|
||||
x -- (RightSB + SideJut)
|
||||
y -- 0
|
||||
|
||||
derive-composites 'dHookBottom' 0x256 'd/hookBottomBase'
|
||||
VerticalHook.r RightSB 0 HookX Hook
|
||||
derive-composites 'dHookTopBottom' 0x1D91 'dHookTop/hookBottomBase'
|
||||
VerticalHook.r RightSB 0 HookX Hook
|
||||
|
||||
derive-multi-part-glyphs 'ddot' 0x1E0B {'d' 'dotAbove'} : lambda [srcs gr] : glyph-proc
|
||||
local { base mark } srcs
|
||||
include : refer-glyph mark
|
||||
include : Translate (Width - HalfStroke) 0
|
||||
include [refer-glyph base] AS_BASE
|
||||
|
||||
derive-composites 'dBar' 0xA7C8 'd'
|
||||
HBar.m (SB - OX) (RightSB + OX) (XH * 0.5) OverlayStroke
|
||||
|
||||
derive-composites 'currency/dongSign' 0x20AB 'dcroat' 'sbRsbUnderlineBelow'
|
||||
|
||||
|
||||
define DCurlyTailConfig : object
|
||||
toothedSerifless { false }
|
||||
toothedTopSerifed { true }
|
||||
|
@ -111,67 +207,6 @@ glyph-block Letter-Latin-Lower-D : begin
|
|||
|
||||
select-variant 'dCurlyTail' 0x221
|
||||
|
||||
define yDHookTopConnect : Ascender - Hook - HalfStroke
|
||||
create-glyph 'dHookTop.toothedSerifless' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : OBarRight.shape
|
||||
include : VBar.r RightSB 0 yDHookTopConnect
|
||||
include : VerticalHook.r RightSB yDHookTopConnect HookX (-Hook)
|
||||
|
||||
create-glyph 'dHookTop.toothedBottomSerifed' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : OBarRight.shape
|
||||
include : VBar.r RightSB 0 yDHookTopConnect
|
||||
include : VerticalHook.r RightSB yDHookTopConnect HookX (-Hook)
|
||||
include : tagged 'serifRB' : HSerif.rb RightSB 0 SideJut
|
||||
|
||||
create-glyph 'dHookTop.tailedSerifless' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : OBarRight.shape
|
||||
include : RightwardTailedBar RightSB 0 yDHookTopConnect
|
||||
include : VerticalHook.r RightSB yDHookTopConnect HookX (-Hook)
|
||||
|
||||
create-glyph 'dHookTop.toothlessCornerSerifless' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : OBarRight.toothless XH RightSB DToothlessRise DMBlend
|
||||
include : VBar.r RightSB DToothlessRise yDHookTopConnect
|
||||
include : VerticalHook.r RightSB yDHookTopConnect HookX (-Hook)
|
||||
|
||||
create-glyph 'dHookTop.toothlessCornerSeriflessHBB' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : OBarRight.toothless XH RightSB DToothlessRise DMBlend
|
||||
include : VBar.r RightSB 0 yDHookTopConnect
|
||||
include : VerticalHook.r RightSB yDHookTopConnect HookX (-Hook)
|
||||
|
||||
create-glyph 'dHookTop.toothlessRoundedSerifless' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : OBarRight.rounded XH RightSB yDHookTopConnect
|
||||
include : VerticalHook.r RightSB yDHookTopConnect HookX (-Hook)
|
||||
|
||||
create-glyph 'dHookTop.toothlessRoundedSeriflessHBB' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : OBarRight.rounded XH RightSB yDHookTopConnect
|
||||
include : VBar.r RightSB 0 yDHookTopConnect
|
||||
include : VerticalHook.r RightSB yDHookTopConnect HookX (-Hook)
|
||||
|
||||
select-variant 'dHookTop' 0x257
|
||||
link-reduced-variant 'dHookTop/hookBottomBase' 'dHookTop'
|
||||
|
||||
derive-composites 'dHookBottom' 0x256 'd/hookBottomBase'
|
||||
VerticalHook.r RightSB 0 HookX Hook
|
||||
derive-composites 'dHookTopBottom' 0x1D91 'dHookTop/hookBottomBase'
|
||||
VerticalHook.r RightSB 0 HookX Hook
|
||||
|
||||
derive-multi-part-glyphs 'ddot' 0x1E0B {'d' 'dotAbove'} : lambda [srcs gr] : glyph-proc
|
||||
local { base mark } srcs
|
||||
include : refer-glyph mark
|
||||
include : Translate (Width - HalfStroke) 0
|
||||
include [refer-glyph base] AS_BASE
|
||||
|
||||
derive-composites 'dBar' 0xA7C8 'd'
|
||||
HBar.m (SB - OX) (RightSB + OX) (XH * 0.5) OverlayStroke
|
||||
|
||||
derive-composites 'currency/dongSign' 0x20AB 'dcroat' 'sbRsbUnderlineBelow'
|
||||
|
||||
glyph-block-import Letter-Blackboard : BBS BBD BBBarRight
|
||||
create-glyph 'mathbb/d' 0x1D555 : glyph-proc
|
||||
|
|
|
@ -91,7 +91,7 @@ glyph-block Letter-Latin-Lower-G : begin
|
|||
curl xTerminal Descender [heading Leftward]
|
||||
|
||||
export : define [SeriflessBody df top] : glyph-proc
|
||||
include : OBarRight.shape (top -- top) (left -- df.leftSB) (right -- df.rightSB) (stroke -- df.mvs)
|
||||
include : OBarRight.shape (top -- top) (left -- df.leftSB) (right -- df.rightSB) (sw -- df.mvs)
|
||||
|
||||
export : define [SerifedBody df top] : glyph-proc
|
||||
include : SeriflessBody df top
|
||||
|
@ -184,9 +184,10 @@ glyph-block Letter-Latin-Lower-G : begin
|
|||
OShapeOutline.NoOvershoot XH 0 SB (RightSB - BBD - BBS * HVContrast)
|
||||
VBar.l (SB + BBD + OX) 0 XH BBS
|
||||
include : OBarRight.shape
|
||||
right -- RightSB - BBD
|
||||
top -- XH
|
||||
stroke -- BBS
|
||||
left -- SB
|
||||
right -- RightSB - BBD
|
||||
sw -- BBS
|
||||
include : SingleStorey.RoundHookT dispiro [DivFrame 1] XH 0 BBS
|
||||
include : HBar.t (RightSB - BBD) RightSB XH BBS
|
||||
include : intersection
|
||||
|
|
|
@ -20,7 +20,7 @@ glyph-block Letter-Latin-Lower-P : begin
|
|||
include : tagged 'stemLeft' : VBar.l SB Descender XH
|
||||
|
||||
define [EarlessCornerBody] : glyph-proc
|
||||
include : tagged 'bowl' : OBarLeft.toothlessTop XH SB DToothlessRise DMBlend
|
||||
include : tagged 'bowl' : OBarLeft.toothlessTop XH (rise -- DToothlessRise) (mBlend -- DMBlend)
|
||||
include : tagged 'stemLeft' : VBar.l SB Descender (XH - DToothlessRise)
|
||||
|
||||
define [EarlessRoundedBody] : glyph-proc
|
||||
|
@ -93,7 +93,7 @@ glyph-block Letter-Latin-Lower-P : begin
|
|||
include : OBarLeft.shape
|
||||
left -- SB + BBD
|
||||
top -- XH
|
||||
stroke -- BBS
|
||||
sw -- BBS
|
||||
|
||||
derive-glyphs 'pHookTop' 0x1A5 "p/hookTopBase" : function [src gr] : glyph-proc
|
||||
include [refer-glyph src] AS_BASE ALSO_METRICS
|
||||
|
|
|
@ -24,7 +24,7 @@ glyph-block Letter-Latin-Lower-Q : begin
|
|||
|
||||
define [EaredBody terminal top bottom] : glyph-proc
|
||||
set-base-anchor 'trailing' (RightSB - markHalfStroke) Descender
|
||||
include : OBarRight.shape top
|
||||
include : OBarRight.shape (top -- top)
|
||||
include : match terminal
|
||||
[Just TERMINAL-NORMAL] : VBar.r RightSB bottom top
|
||||
[Just TERMINAL-TAILED] : RightwardTailedBar RightSB bottom top
|
||||
|
@ -109,6 +109,7 @@ glyph-block Letter-Latin-Lower-Q : begin
|
|||
OShapeOutline.NoOvershoot XH 0 SB (RightSB - BBD - BBS * HVContrast)
|
||||
VBar.l (SB + BBD + OX) 0 XH BBS
|
||||
include : OBarRight.shape
|
||||
right -- RightSB - BBD
|
||||
top -- XH
|
||||
stroke -- BBS
|
||||
left -- SB
|
||||
right -- RightSB - BBD
|
||||
sw -- BBS
|
||||
|
|
|
@ -35,8 +35,8 @@ glyph-block Letter-Latin-Upper-T : begin
|
|||
local xTopBarLeft : df.leftSB - SideJut
|
||||
local xTopBarRightSym : 2 * left + HVContrast * df.mvs - xTopBarLeft
|
||||
local xTopBarRight : Math.max xTopBarRightSym : mix left df.rightSB 0.475
|
||||
include : tagged 'strokeLT' : HBar.t xTopBarLeft mid top df.mvs
|
||||
include : tagged 'strokeRT' : HBar.t mid xTopBarRight top df.mvs
|
||||
include : tagged 'strokeLT' : HBar.t xTopBarLeft mid top
|
||||
include : tagged 'strokeRT' : HBar.t mid xTopBarRight top
|
||||
include : UpwardHookShape
|
||||
left -- left
|
||||
right -- df.rightSB
|
||||
|
@ -138,11 +138,13 @@ glyph-block Letter-Latin-Upper-T : begin
|
|||
include : VerticalHook.m df.middle 0 HookX Hook
|
||||
|
||||
create-glyph "cyrl/TjeKomi.\(suffix)" : glyph-proc
|
||||
local df : DivFrame div 3
|
||||
set-width df.width
|
||||
include : df.markSet.capital
|
||||
include : TjeShape df CAP doST
|
||||
|
||||
create-glyph "cyrl/tjeKomi.\(suffix)" : glyph-proc
|
||||
local df : DivFrame div 3
|
||||
set-width df.width
|
||||
include : df.markSet.e
|
||||
include : TjeShape df XH doST
|
||||
|
|
|
@ -227,30 +227,30 @@ glyph-block Letter-Shared-Shapes : begin
|
|||
define OBarLeft : namespace
|
||||
define kSkewShift 0.5
|
||||
export : define [shape] : params [
|
||||
[top XH] [left SB] [right RightSB] [stroke Stroke] [fine ShoulderFine]
|
||||
[top XH] [left SB] [right RightSB] [sw Stroke] [fine ShoulderFine]
|
||||
[ada SmallArchDepthA] [adb SmallArchDepthB]
|
||||
] : begin
|
||||
local skew : shoulderMidSkew fine stroke
|
||||
local mt : [mix left right 0.5] + (skew + kSkewShift * TanSlope) * stroke
|
||||
local mb : [mix left right 0.5] + (skew + kSkewShift * TanSlope) * stroke
|
||||
local skew : shoulderMidSkew fine sw
|
||||
local mt : [mix left right 0.5] + (skew + kSkewShift * TanSlope) * sw
|
||||
local mb : [mix left right 0.5] + (skew + kSkewShift * TanSlope) * sw
|
||||
return : dispiro
|
||||
widths.lhs fine
|
||||
flat (left + (stroke - fine) * HVContrast) (top - ada - 0.01)
|
||||
curl (left + (stroke - fine) * HVContrast) (0 + adb)
|
||||
flat (left + (sw - fine) * HVContrast) (top - ada - 0.01)
|
||||
curl (left + (sw - fine) * HVContrast) (0 + adb)
|
||||
arcvh
|
||||
g4 (mb) O [widths.lhs.heading stroke {.y (1) .x (-skew)}]
|
||||
g4 (mb) O [widths.lhs.heading sw {.y (1) .x (-skew)}]
|
||||
archv
|
||||
flat (right - OX) (0 + ada)
|
||||
curl (right - OX) (top - adb)
|
||||
arcvh
|
||||
g4 (mt) (top - O) [widths.lhs.heading stroke {.y (-1) .x (-skew)}]
|
||||
g4 (mt) (top - O) [widths.lhs.heading sw {.y (-1) .x (-skew)}]
|
||||
archv
|
||||
flat (left + (stroke - fine) * HVContrast) (top - ada) [widths.lhs fine]
|
||||
curl (left + (stroke - fine) * HVContrast) (top - ada - 0.01)
|
||||
flat (left + (sw - fine) * HVContrast) (top - ada) [widths.lhs fine]
|
||||
curl (left + (sw - fine) * HVContrast) (top - ada - 0.01)
|
||||
|
||||
export : define [toothless] : params [
|
||||
[top XH] [left SB] [right RightSB] [rise SHook] [mBlend : Math.sqrt (1 / 2)]
|
||||
[sw Stroke]
|
||||
[top XH] [left SB] [right RightSB] [rise SHook] [sw Stroke]
|
||||
[mBlend : Math.sqrt (1 / 2)] [ada SmallArchDepthA] [adb SmallArchDepthB]
|
||||
] : begin
|
||||
local fine ShoulderFine
|
||||
local skew : shoulderMidSkew fine sw
|
||||
|
@ -261,13 +261,13 @@ glyph-block Letter-Shared-Shapes : begin
|
|||
alsoThru.g2 0.5 mBlend important
|
||||
g4.right.mid mb O
|
||||
archv
|
||||
flat (right - OX) (0 + SmallArchDepthA)
|
||||
curl (right - OX) (top - SmallArchDepthB)
|
||||
flat (right - OX) (0 + ada)
|
||||
curl (right - OX) (top - adb)
|
||||
arcvh
|
||||
g4 (mt) (top - O) [widths.heading sw 0 {.y (-1) .x (-skew)}]
|
||||
archv
|
||||
flat (left + (sw - fine) * HVContrast) (top - SmallArchDepthA) [widths fine 0]
|
||||
curl (left + (sw - fine) * HVContrast) (top - SmallArchDepthA - 0.01) [widths fine 0]
|
||||
flat (left + (sw - fine) * HVContrast) (top - ada) [widths fine 0]
|
||||
curl (left + (sw - fine) * HVContrast) (top - ada - 0.01) [widths fine 0]
|
||||
|
||||
export : define [rounded] : params [
|
||||
[top XH] [left SB] [right RightSB] [yTerminal CAP] [sw Stroke] [fine ShoulderFine]
|
||||
|
@ -291,28 +291,29 @@ glyph-block Letter-Shared-Shapes : begin
|
|||
curl (left + (sw - fine) * HVContrast) (top - ada - 0.01) [widths fine 0]
|
||||
|
||||
export : define [toothlessTop] : params [
|
||||
[top XH] [left SB] [rise SHook] [mBlend : Math.sqrt (1 / 2)]
|
||||
[top XH] [left SB] [right RightSB] [rise SHook] [sw Stroke]
|
||||
[mBlend : Math.sqrt (1 / 2)] [ada SmallArchDepthA] [adb SmallArchDepthB]
|
||||
] : begin
|
||||
local fine ShoulderFine
|
||||
local skew : shoulderMidSkew fine
|
||||
local mt : [mix left RightSB 0.5] - CorrectionOMidX * Stroke
|
||||
local mb : [mix left RightSB 0.5] + (skew + kSkewShift * TanSlope) * Stroke
|
||||
local mt : [mix left right 0.5] - CorrectionOMidX * sw
|
||||
local mb : [mix left right 0.5] + (skew + kSkewShift * TanSlope) * sw
|
||||
return : dispiro
|
||||
flat (left + (Stroke - fine) * HVContrast) (top - SmallArchDepthA - 0.01) [widths fine 0]
|
||||
curl (left + (Stroke - fine) * HVContrast) (0 + SmallArchDepthB) [widths fine 0]
|
||||
flat (left + (sw - fine) * HVContrast) (top - ada - 0.01) [widths fine 0]
|
||||
curl (left + (sw - fine) * HVContrast) (0 + adb) [widths fine 0]
|
||||
arcvh
|
||||
g4 (mb) O [widths.heading Stroke 0 {.y (1) .x (-skew)}]
|
||||
g4 (mb) O [widths.heading sw 0 {.y (1) .x (-skew)}]
|
||||
archv
|
||||
flat (RightSB - OX) (0 + SmallArchDepthA)
|
||||
curl (RightSB - OX) (top - SmallArchDepthB)
|
||||
flat (right - OX) (0 + ada)
|
||||
curl (right - OX) (top - adb)
|
||||
arcvh
|
||||
g4 mt (top - O) [widths.lhs Stroke]
|
||||
g4 mt (top - O) [widths.lhs sw]
|
||||
alsoThru.g2 0.5 (1 - mBlend) important
|
||||
g4 left (top - rise) [widths.lhs Stroke]
|
||||
g4 left (top - rise) [widths.lhs sw]
|
||||
|
||||
export : define [roundedTop] : params [
|
||||
[top XH] [left SB] [right RightSB] [yTerminal Descender] [sw Stroke] [fine ShoulderFine]
|
||||
[ada SmallArchDepthA] [adb SmallArchDepthB]
|
||||
[top XH] [left SB] [right RightSB] [yTerminal Descender] [sw Stroke]
|
||||
[fine ShoulderFine] [ada SmallArchDepthA] [adb SmallArchDepthB]
|
||||
] : begin
|
||||
local skew : shoulderMidSkew fine
|
||||
local mt : [mix left right 0.5] - CorrectionOMidX * sw
|
||||
|
@ -334,26 +335,47 @@ glyph-block Letter-Shared-Shapes : begin
|
|||
glyph-block-export : OBarRight
|
||||
define OBarRight : namespace
|
||||
export : define [shape] : params [
|
||||
[top XH] [right RightSB] [stroke Stroke] [fine ShoulderFine]
|
||||
[top XH] [left SB] [right RightSB] [sw Stroke] [fine ShoulderFine]
|
||||
[ada SmallArchDepthA] [adb SmallArchDepthB]
|
||||
] : new-glyph : glyph-proc
|
||||
include : OBarLeft.shape
|
||||
top -- [fallback top XH]
|
||||
left -- (Width - right)
|
||||
stroke -- stroke
|
||||
top -- top
|
||||
left -- left
|
||||
right -- right
|
||||
sw -- sw
|
||||
fine -- fine
|
||||
include : FlipAround Middle (top / 2)
|
||||
ada -- ada
|
||||
adb -- adb
|
||||
include : FlipAround [mix left right 0.5] (top / 2)
|
||||
|
||||
export : define [toothless] : params [
|
||||
[top XH] [right RightSB] [rise SHook] [mBlend : Math.sqrt (1 / 2)]
|
||||
[top XH] [left SB] [right RightSB] [rise SHook] [sw Stroke]
|
||||
[mBlend : Math.sqrt (1 / 2)] [ada SmallArchDepthA] [adb SmallArchDepthB]
|
||||
] : new-glyph : glyph-proc
|
||||
include : OBarLeft.toothlessTop top (Width - right) rise mBlend
|
||||
include : FlipAround Middle (top / 2)
|
||||
include : OBarLeft.toothlessTop
|
||||
top -- top
|
||||
left -- left
|
||||
right -- right
|
||||
rise -- rise
|
||||
sw -- sw
|
||||
mBlend -- mBlend
|
||||
ada -- ada
|
||||
adb -- adb
|
||||
include : FlipAround [mix left right 0.5] (top / 2)
|
||||
|
||||
export : define [rounded _top _right _yTerminal] : params [
|
||||
[top XH] [right RightSB] [yTerminal CAP]
|
||||
export : define [rounded] : params [
|
||||
[top XH] [left SB] [right RightSB] [sw Stroke] [yTerminal CAP]
|
||||
[ada SmallArchDepthA] [adb SmallArchDepthB]
|
||||
] : new-glyph : glyph-proc
|
||||
include : OBarLeft.roundedTop top (Width - right) (yTerminal -- top - yTerminal)
|
||||
include : FlipAround Middle (top / 2)
|
||||
include : OBarLeft.roundedTop
|
||||
top -- top
|
||||
left -- left
|
||||
right -- right
|
||||
sw -- sw
|
||||
yTerminal -- (top - yTerminal)
|
||||
ada -- ada
|
||||
adb -- adb
|
||||
include : FlipAround [mix left right 0.5] (top / 2)
|
||||
|
||||
glyph-block-export FlatHookDepth
|
||||
define [FlatHookDepth df s] : object
|
||||
|
|
|
@ -118,6 +118,7 @@ class NormalRectifier {
|
|||
if (isTangentValid(d)) {
|
||||
this.m_biKnots[0].origTangent = d;
|
||||
} else {
|
||||
console.error(this.m_biKnots);
|
||||
throw new Error("NaN angle detected.");
|
||||
}
|
||||
}
|
||||
|
@ -126,6 +127,7 @@ class NormalRectifier {
|
|||
if (isTangentValid(d)) {
|
||||
this.m_biKnots[this.m_nKnotsProcessed].origTangent = d;
|
||||
} else {
|
||||
console.error(this.m_biKnots);
|
||||
throw new Error("NaN angle detected.");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2047,6 +2047,7 @@ selector."d/hookBottomBase" = "toothedSerifless"
|
|||
selector.dCurlyTail = "toothedSerifless"
|
||||
selector.dHookTop = "toothedSerifless"
|
||||
selector."dHookTop/hookBottomBase" = "toothedSerifless"
|
||||
selector."cyrl/djeKomi" = "toothedSerifless"
|
||||
|
||||
[prime.d.variants.toothed-top-serifed]
|
||||
rank = 2
|
||||
|
@ -2058,6 +2059,7 @@ selector."d/hookBottomBase" = "toothedTopSerifed"
|
|||
selector.dCurlyTail = "toothedTopSerifed"
|
||||
selector.dHookTop = "toothedSerifless"
|
||||
selector."dHookTop/hookBottomBase" = "toothedSerifless"
|
||||
selector."cyrl/djeKomi" = "toothedTopSerifed"
|
||||
|
||||
[prime.d.variants.toothed-serifed]
|
||||
rank = 3
|
||||
|
@ -2069,6 +2071,7 @@ selector."d/hookBottomBase" = "toothedTopSerifed"
|
|||
selector.dCurlyTail = "toothedTopSerifed"
|
||||
selector.dHookTop = "toothedBottomSerifed"
|
||||
selector."dHookTop/hookBottomBase" = "toothedSerifless"
|
||||
selector."cyrl/djeKomi" = "toothedSerifed"
|
||||
|
||||
[prime.d.variants.toothless-corner-serifless]
|
||||
rank = 4
|
||||
|
@ -2080,6 +2083,7 @@ selector."d/hookBottomBase" = "toothlessCornerSeriflessHBB"
|
|||
selector.dCurlyTail = "toothedSerifless"
|
||||
selector.dHookTop = "toothlessCornerSerifless"
|
||||
selector."dHookTop/hookBottomBase" = "toothlessCornerSeriflessHBB"
|
||||
selector."cyrl/djeKomi" = "toothlessRoundedSerifless"
|
||||
|
||||
[prime.d.variants.toothless-corner-serifed]
|
||||
rank = 5
|
||||
|
@ -2091,6 +2095,7 @@ selector."d/hookBottomBase" = "toothlessCornerSerifedHBB"
|
|||
selector.dCurlyTail = "toothedTopSerifed"
|
||||
selector.dHookTop = "toothlessCornerSerifless"
|
||||
selector."dHookTop/hookBottomBase" = "toothlessCornerSeriflessHBB"
|
||||
selector."cyrl/djeKomi" = "toothlessRoundedSerifed"
|
||||
|
||||
[prime.d.variants.toothless-rounded-serifless]
|
||||
rank = 6
|
||||
|
@ -2102,6 +2107,7 @@ selector."d/hookBottomBase" = "toothlessRoundedSeriflessHBB"
|
|||
selector.dCurlyTail = "toothedSerifless"
|
||||
selector.dHookTop = "toothlessRoundedSerifless"
|
||||
selector."dHookTop/hookBottomBase" = "toothlessRoundedSeriflessHBB"
|
||||
selector."cyrl/djeKomi" = "toothlessRoundedSerifless"
|
||||
|
||||
[prime.d.variants.toothless-rounded-serifed]
|
||||
rank = 7
|
||||
|
@ -2113,6 +2119,7 @@ selector."d/hookBottomBase" = "toothlessRoundedSerifedHBB"
|
|||
selector.dCurlyTail = "toothedTopSerifed"
|
||||
selector.dHookTop = "toothlessRoundedSerifless"
|
||||
selector."dHookTop/hookBottomBase" = "toothlessRoundedSeriflessHBB"
|
||||
selector."cyrl/djeKomi" = "toothlessRoundedSerifed"
|
||||
|
||||
[prime.d.variants.tailed-serifless]
|
||||
rank = 8
|
||||
|
@ -2124,6 +2131,7 @@ selector."d/hookBottomBase" = "toothedSerifless"
|
|||
selector.dCurlyTail = "toothedSerifless"
|
||||
selector.dHookTop = "tailedSerifless"
|
||||
selector."dHookTop/hookBottomBase" = "toothedSerifless"
|
||||
selector."cyrl/djeKomi" = "toothedSerifless"
|
||||
|
||||
[prime.d.variants.tailed-serifed]
|
||||
rank = 9
|
||||
|
@ -2135,6 +2143,7 @@ selector."d/hookBottomBase" = "toothedTopSerifed"
|
|||
selector.dCurlyTail = "toothedTopSerifed"
|
||||
selector.dHookTop = "tailedSerifless"
|
||||
selector."dHookTop/hookBottomBase" = "toothedSerifless"
|
||||
selector."cyrl/djeKomi" = "toothedSerifed"
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue