More toothless b and d (#462)

This commit is contained in:
be5invis 2020-07-01 22:52:44 -07:00
parent 8d1e942de4
commit 1cc6e83a6e
5 changed files with 180 additions and 41 deletions

View file

@ -278,10 +278,9 @@ glyph-block CommonShapes : begin
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
curl (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
define [OBarLeftToothlessShape _top _left _hBlend _rise _mBlend] : glyph-construction
define [OBarLeftToothlessShape _top _left _rise _mBlend] : glyph-construction
local top : fallback _top XH
local left : fallback _left SB
local hBlend : fallback _hBlend 0.5
local rise : fallback _rise SHook
local mBlend : fallback _mBlend [Math.sqrt (1 / 2)]
local fine ShoulderFine
@ -302,9 +301,89 @@ glyph-block CommonShapes : begin
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
curl (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
define [OBarRightShape top right] : glyph-construction
include : create-glyph [OBarLeftShape top (Width - [fallback right RightSB])]
include : FlipAround Middle ([fallback top XH] / 2)
define [OBarLeftRoundedShape _top _left _yTerminal] : glyph-construction
local top : fallback _top XH
local left : fallback _left SB
local yTerminal : fallback _yTerminal CAP
local fine ShoulderFine
local st : shoulderMidSlope fine nothing 1
local sb : shoulderMidSlope fine nothing (-1)
local mt : [mix left RightSB 0.5] + (st - CorrectionOMidX) * Stroke
local mb : [mix left RightSB 0.5] + CorrectionOMidX * Stroke
include : dispiro
flat left yTerminal [widths.lhs.heading Stroke Downward]
curl left SmallSmoothB
arcvh
g4.right.mid mb O
archv
flat (RightSB - OX) (0 + SmallSmoothA)
curl (RightSB - OX) (top - SmallSmoothB)
arcvh
g4 (mt) (top - O) [widths.heading Stroke 0 {.y (-1) .x (-st)}]
archv
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
curl (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
define [OBarLeftToothlessTopShape _top _left _rise _mBlend] : glyph-construction
local top : fallback _top XH
local left : fallback _left SB
local rise : fallback _rise SHook
local mBlend : fallback _mBlend [Math.sqrt (1 / 2)]
local fine ShoulderFine
local st : shoulderMidSlope fine nothing 1
local sb : shoulderMidSlope fine nothing (-1)
local mt : [mix left RightSB 0.5] - CorrectionOMidX * Stroke
local mb : [mix left RightSB 0.5] + (sb + CorrectionOMidX) * Stroke
include : dispiro
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
curl (left + (Stroke - fine) * HVContrast) (0 + SmallSmoothB) [widths fine 0]
arcvh
g4 (mb) O [widths.heading Stroke 0 {.y (1) .x (-sb)}]
archv
flat (RightSB - OX) (0 + SmallSmoothA)
curl (RightSB - OX) (top - SmallSmoothB)
arcvh
g4 mt (top - O) [widths.lhs Stroke]
alsoThru.g2 0.5 (1 - mBlend) important
g4 left (top - rise) [widths.lhs Stroke]
define [OBarLeftRoundedTopShape _top _left _yTerminal] : glyph-construction
local top : fallback _top XH
local left : fallback _left SB
local yTerminal : fallback _yTerminal Descender
local fine ShoulderFine
local st : shoulderMidSlope fine nothing 1
local sb : shoulderMidSlope fine nothing (-1)
local mt : [mix left RightSB 0.5] - CorrectionOMidX * Stroke
local mb : [mix left RightSB 0.5] + (sb + CorrectionOMidX) * Stroke
include : dispiro
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
curl (left + (Stroke - fine) * HVContrast) (0 + SmallSmoothB) [widths fine 0]
arcvh
g4 (mb) O [widths.heading Stroke 0 {.y (1) .x (-sb)}]
archv
flat (RightSB - OX) (0 + SmallSmoothA)
curl (RightSB - OX) (top - SmallSmoothB)
arcvh
g4 mt (top - O) [widths.lhs Stroke]
archv
flat left (top - SmallSmoothA)
curl left yTerminal [widths.lhs.heading Stroke Downward]
define [OBarRightShape _top _right] : create-glyph : glyph-construction
include : OBarLeftShape _top (Width - [fallback _right RightSB])
include : FlipAround Middle ([fallback _top XH] / 2)
define [OBarRightToothlessShape _top _right _rise _mBlend] : create-glyph : glyph-construction
include : OBarLeftToothlessTopShape _top (Width - [fallback _right RightSB]) _rise _mBlend
include : FlipAround Middle ([fallback _top XH] / 2)
define [OBarRightRoundedShape _top _right _yTerminal] : create-glyph : glyph-construction
local top : fallback _top XH
local right : fallback right RightSB
local yTerminal : fallback _yTerminal CAP
include : OBarLeftRoundedTopShape top (Width - right) (top - yTerminal)
include : FlipAround Middle (top / 2)
define SERIF_SHIFT_X 0.6
define [LeftwardTopSerif x y length _sw] : glyph-construction
@ -838,4 +917,4 @@ glyph-block CommonShapes : begin
set currentGlyph.markAnchors {.}
set currentGlyph.markBnchors {.}
glyph-block-export select-variant italic-variant alias composite refer-glyph query-glyph into-unicode turned HDual hcombine VDual vcombine Rect Ring RingAt DotAt RingStroke RingStrokeAt DotStrokeAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR hookstart hookend CyrDescender Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright Overlay diagCor CreateWaveShape NameUni PointingTo WithDerivatives WithAIHSerifsMask SNeck WithTransform ReverseContours clear-anchors OBarLeftToothlessShape
glyph-block-export select-variant italic-variant alias composite refer-glyph query-glyph into-unicode turned HDual hcombine VDual vcombine Rect Ring RingAt DotAt RingStroke RingStrokeAt DotStrokeAt CircleRing CircleRingAt CircleDotAt OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs AIHSerifs AINSerifs AICyrISerifs AIMSerifs nShoulderKnots nShoulder mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR hookstart hookend CyrDescender Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright Overlay diagCor CreateWaveShape NameUni PointingTo WithDerivatives WithAIHSerifsMask SNeck WithTransform ReverseContours clear-anchors OBarLeftToothlessShape OBarLeftRoundedShape OBarRightToothlessShape OBarRightRoundedShape

View file

@ -2268,7 +2268,6 @@ glyph-block Letter-Latin-Lower-B : begin
glyph-block-import Letter-Shared : CreateDerivedLetter
define BToothlessRise : Hook * 0.375 + Stroke / 16
define BHBlend 0.475
define BMBlend 0.80
create-glyph 'b.toothed' : glyph-construction
@ -2281,15 +2280,23 @@ glyph-block Letter-Latin-Lower-B : begin
include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut
include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SideJut
create-glyph 'b.toothless' : glyph-construction
create-glyph 'b.toothlessCorner' : glyph-construction
set-width Width
include MarkSet.b
include : OBarLeftToothlessShape XH SB BHBlend BToothlessRise BMBlend
include : OBarLeftToothlessShape XH SB BToothlessRise BMBlend
include : VBarLeft SB BToothlessRise CAP
if SLAB : begin
include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut
create-glyph 'b.toothlessRounded' : glyph-construction
set-width Width
include MarkSet.b
include : OBarLeftRoundedShape XH SB CAP
if SLAB : begin
include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut
select-variant 'b' 'b'
create-glyph 'bhooktop.toothed' : glyph-construction
@ -2299,11 +2306,16 @@ glyph-block Letter-Latin-Lower-B : begin
if SLAB : begin
include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SideJut
create-glyph 'bhooktop.toothless' : glyph-construction
create-glyph 'bhooktop.toothlessCorner' : glyph-construction
include MarkSet.b
include : OBarLeftToothlessShape XH SB BHBlend BToothlessRise BMBlend
include : OBarLeftToothlessShape XH SB BToothlessRise BMBlend
include : HooktopLeftBar (bottom -- BToothlessRise)
create-glyph 'bhooktop.toothlessRounded' : glyph-construction
include MarkSet.b
include : OBarLeftRoundedShape XH SB XH
include : HooktopLeftBar (bottom -- SmallSmoothB)
select-variant 'bhooktop' 0x253 (follow -- 'b')
CreateDerivedLetter 'b' 'bbar' 0x180 : lambda [src sel] : glyph-construction
@ -2400,34 +2412,45 @@ glyph-block Letter-Latin-Upper-D : begin
glyph-block Letter-Latin-Lower-D : begin
glyph-block-import CommonShapes
glyph-block-import Overmarks
glyph-block-import Letter-Shared : CreateDerivedLetter
sketch # d
set-width Width
define DToothlessRise : Hook * 0.375 + Stroke / 16
define DMBlend 0.80
create-glyph 'd.toothed' : glyph-construction
include MarkSet.b
include : OBarRightShape
include : VBarRight RightSB 0 CAP
if SLAB : begin
include : tagged 'serifRB' : RightwardBottomSerif RightSB 0 SideJut
include : LeftwardTopSerif (RightSB - Stroke * HVContrast) CAP SideJut
save 'd' 'd'
create-glyph 'd.toothlessCorner' : glyph-construction
include MarkSet.b
include : OBarRightToothlessShape XH RightSB DToothlessRise DMBlend
include : VBarRight RightSB DToothlessRise CAP
if SLAB : begin
include : LeftwardTopSerif (RightSB - Stroke * HVContrast) CAP SideJut
sketch # dcroat
include [refer-glyph 'd'] AS_BASE
create-glyph 'd.toothlessRounded' : glyph-construction
include MarkSet.b
include : OBarRightRoundedShape XH RightSB CAP
if SLAB : begin
include : LeftwardTopSerif (RightSB - Stroke * HVContrast) CAP SideJut
select-variant 'd' 'd'
CreateDerivedLetter 'd' 'dcroat' 0x111 : lambda [src sel] : glyph-construction
include [refer-glyph src] AS_BASE
include : HBar [mix (SB + Stroke) (RightSB - Stroke) 0.5] [mix RightSB Width 0.7] [mix XH CAP 0.45] OverlayStroke
save 'dcroat' 0x111
sketch # dcaron
CreateDerivedLetter 'd' 'dcaron' 0x10f : lambda [src sel] : glyph-construction
include : refer-glyph "commaAbove"
apply-transform : Translate (Width + (RightSB - SB) / 2 + markExtend / 2) 0
local f : Widen {'d'} 0.95 1
include f.d
local f : Widen {src} 0.95 1
include f.(src)
include MarkSet.b
save 'dcaron' 0x10F
sketch # dcurlytail
local fine : adviceBlackness 4
local rinner : clamp (Width * 0.065) (XH * 0.05) (fine * 0.35)
@ -2447,28 +2470,39 @@ glyph-block Letter-Latin-Lower-D : begin
save 'dcurlytail' 0x221
sketch # dhooktop
define yDHookTopConnect : CAP - Hook - HalfStroke
create-glyph 'dhooktop.toothed' : glyph-construction
include MarkSet.b
include : OBarRightShape
include : VBarRight RightSB 0 XH
include : VerticalHook (RightSB - HalfStroke * HVContrast) XH HookX (-Hook)
include : VBarRight RightSB 0 yDHookTopConnect
include : VerticalHook (RightSB - HalfStroke * HVContrast) yDHookTopConnect HookX (-Hook)
if SLAB : include : tagged 'serifRB' : RightwardBottomSerif RightSB 0 SideJut
save 'dhooktop' 0x257
create-glyph 'dhooktop.toothlessCorner' : glyph-construction
include MarkSet.b
include : OBarRightToothlessShape XH RightSB DToothlessRise DMBlend
include : VBarRight RightSB DToothlessRise yDHookTopConnect
include : VerticalHook (RightSB - HalfStroke * HVContrast) yDHookTopConnect HookX (-Hook)
if SLAB : include : tagged 'serifRB' : RightwardBottomSerif RightSB 0 SideJut
sketch # ddot
create-glyph 'dhooktop.toothlessRounded' : glyph-construction
include MarkSet.b
include : OBarRightRoundedShape XH RightSB yDHookTopConnect
include : VerticalHook (RightSB - HalfStroke * HVContrast) yDHookTopConnect HookX (-Hook)
if SLAB : include : tagged 'serifRB' : RightwardBottomSerif RightSB 0 SideJut
select-variant 'dhooktop' 0x257 (follow -- 'd')
CreateDerivedLetter 'd' 'ddot' 0x1E0B : lambda [src sel] : glyph-construction
include : refer-glyph "dotAbove"
apply-transform : Translate (Width - HalfStroke) 0
include [refer-glyph 'd'] AS_BASE
save 'ddot' 0x1E0B
include [refer-glyph src] AS_BASE
sketch # latinde
include [refer-glyph 'd'] AS_BASE
CreateDerivedLetter 'd' 'latinde' 0x18C : lambda [src sel] : glyph-construction
include [refer-glyph src] AS_BASE
include : HBarTop [mix RightSB SB 0.9] (RightSB + O) CAP
if SLAB : begin
include : DownwardLeftSerif [mix RightSB SB 0.9] CAP VJut
save 'latinde' 0x18C
glyph-block Letter-Latin-Upper-P : begin
glyph-block-import CommonShapes

View file

@ -135,7 +135,8 @@ define-macro glyph-block-import : syntax-rules
HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR hookstart hookend
CyrDescender Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright
Overlay diagCor CreateWaveShape NameUni PointingTo WithDerivatives WithAIHSerifsMask
SNeck WithTransform ReverseContours clear-anchors OBarLeftToothlessShape]
SNeck WithTransform ReverseContours clear-anchors OBarLeftToothlessShape
OBarLeftRoundedShape OBarRightToothlessShape OBarRightRoundedShape]
Overmarks `[markExtend markHalfStroke markStress markFine markMiddle markDotsRadius
aboveMarkTop aboveMarkBot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot