Add toothless variant of b (#462).

This commit is contained in:
be5invis 2020-07-01 20:56:17 -07:00
parent 84a8cb809c
commit 8d1e942de4
5 changed files with 84 additions and 27 deletions

View file

@ -2,3 +2,4 @@
* Add Cyrillic Fita (#617). * Add Cyrillic Fita (#617).
* Add a more rounded variant of `D` (#616). * Add a more rounded variant of `D` (#616).
* Add support for open number sign (`VXBI` and `VXBJ`, #621). * Add support for open number sign (`VXBI` and `VXBJ`, #621).
* Add toothless variant of `b` (#462).

View file

@ -278,6 +278,30 @@ glyph-block CommonShapes : begin
flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0] flat (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA) [widths fine 0]
curl (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0] curl (left + (Stroke - fine) * HVContrast) (top - SmallSmoothA - 0.01) [widths fine 0]
define [OBarLeftToothlessShape _top _left _hBlend _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
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
g4 left rise [widths.lhs Stroke]
alsoThru.g2 0.5 mBlend important
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 [OBarRightShape top right] : glyph-construction define [OBarRightShape top right] : glyph-construction
include : create-glyph [OBarLeftShape top (Width - [fallback right RightSB])] include : create-glyph [OBarLeftShape top (Width - [fallback right RightSB])]
include : FlipAround Middle ([fallback top XH] / 2) include : FlipAround Middle ([fallback top XH] / 2)
@ -492,7 +516,7 @@ glyph-block CommonShapes : begin
g4.down.end (x - LeftHook.extension) (y - HookX) [heading Downward] g4.down.end (x - LeftHook.extension) (y - HookX) [heading Downward]
set LeftHook.extension [Math.max (Width * 0.15) ([adviceBlackness 4.25] * 1.5)] set LeftHook.extension [Math.max (Width * 0.15) ([adviceBlackness 4.25] * 1.5)]
define [HooktopLeftBar stroke bottom] : glyph-construction define [HooktopLeftBar] : params [stroke bottom] : glyph-construction
include : dispiro include : dispiro
widths.lhs [fallback stroke Stroke] widths.lhs [fallback stroke Stroke]
g4 RightSB (CAP - Hook) g4 RightSB (CAP - Hook)
@ -814,4 +838,4 @@ glyph-block CommonShapes : begin
set currentGlyph.markAnchors {.} set currentGlyph.markAnchors {.}
set currentGlyph.markBnchors {.} 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 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

View file

@ -33,6 +33,12 @@ glyph-block Letter-Shared : begin
include : Italify include : Italify
include srcGlyph AS_BASE ALSO_METRICS include srcGlyph AS_BASE ALSO_METRICS
glyph-block-export CreateDerivedLetter
define [CreateDerivedLetter gnFrom gnTo unicode f]
WithDerivatives gnFrom gnTo : lambda [src sel] : glyph-construction
if [not sel] : assign-unicode unicode
include [f src sel] AS_BASE ALSO_METRICS
glyph-block Letter-Latin-Upper-I : begin glyph-block Letter-Latin-Upper-I : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Overmarks glyph-block-import Overmarks
@ -2259,8 +2265,13 @@ glyph-block Letter-Latin-Upper-B : begin
glyph-block Letter-Latin-Lower-B : begin glyph-block Letter-Latin-Lower-B : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Overmarks glyph-block-import Overmarks
glyph-block-import Letter-Shared : CreateDerivedLetter
sketch # b define BToothlessRise : Hook * 0.375 + Stroke / 16
define BHBlend 0.475
define BMBlend 0.80
create-glyph 'b.toothed' : glyph-construction
set-width Width set-width Width
include MarkSet.b include MarkSet.b
@ -2270,38 +2281,48 @@ glyph-block Letter-Latin-Lower-B : begin
include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut
include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SideJut include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SideJut
save 'b' 'b' create-glyph 'b.toothless' : glyph-construction
set-width Width
include MarkSet.b
sketch # bhooktop include : OBarLeftToothlessShape XH SB BHBlend BToothlessRise BMBlend
include : VBarLeft SB BToothlessRise CAP
if SLAB : begin
include : tagged 'serifLT' : LeftwardTopSerif SB CAP SideJut
select-variant 'b' 'b'
create-glyph 'bhooktop.toothed' : glyph-construction
include MarkSet.b include MarkSet.b
include : OBarLeftShape include : OBarLeftShape
include : HooktopLeftBar include : HooktopLeftBar
if SLAB : begin if SLAB : begin
include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SideJut include : tagged 'serifLB' : LeftwardBottomSerif SB 0 SideJut
create-glyph 'bhooktop.toothless' : glyph-construction
include MarkSet.b
include : OBarLeftToothlessShape XH SB BHBlend BToothlessRise BMBlend
include : HooktopLeftBar (bottom -- BToothlessRise)
save 'bhooktop' 0x253 select-variant 'bhooktop' 0x253 (follow -- 'b')
sketch # bbar CreateDerivedLetter 'b' 'bbar' 0x180 : lambda [src sel] : glyph-construction
include [refer-glyph 'b'] AS_BASE include [refer-glyph src] AS_BASE
include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.5] [mix XH CAP 0.45] include : HOverlayBar [mix SB 0 0.7] [mix SB RightSB 0.5] [mix XH CAP 0.45]
save 'bbar' 0x180
sketch # bdot CreateDerivedLetter 'b' 'bdot' 0x1E03 : lambda [src sel] : glyph-construction
include : refer-glyph "dotAbove" include : refer-glyph "dotAbove"
apply-transform : Translate (Width + HalfStroke) 0 apply-transform : Translate (Width + HalfStroke) 0
include [refer-glyph 'b'] AS_BASE include [refer-glyph src] AS_BASE
save 'bdot' 0x1E03
sketch # latinbe CreateDerivedLetter 'b' 'latinbe' 0x183 : lambda [src sel] : glyph-construction
include [refer-glyph 'b'] AS_BASE include [refer-glyph src] AS_BASE
include : HBarTop (SB - O) [mix SB RightSB 0.9] CAP include : HBarTop (SB - O) [mix SB RightSB 0.9] CAP
if SLAB : begin if SLAB : begin
include : DownwardRightSerif [mix SB RightSB 0.9] CAP VJut include : DownwardRightSerif [mix SB RightSB 0.9] CAP VJut
save 'latinbe' 0x183
sketch # zhuangtonesix CreateDerivedLetter 'b' 'zhuangtonesix' 0x185 : lambda [src sel] : glyph-construction
include [refer-glyph 'b'] AS_BASE include [refer-glyph src] AS_BASE
eject-contour 'serifLT' eject-contour 'serifLT'
local s : Math.max (XH * 0.1) Stroke local s : Math.max (XH * 0.1) Stroke
include : ReverseContours : spiro-outline include : ReverseContours : spiro-outline
@ -2310,8 +2331,6 @@ glyph-block Letter-Latin-Lower-B : begin
corner (SB - s) (CAP - s) corner (SB - s) (CAP - s)
corner SB (CAP - s * 2) corner SB (CAP - s * 2)
corner (SB - O) (CAP - s * 2) corner (SB - O) (CAP - s * 2)
save 'zhuangtonesix' 0x185
glyph-block Letter-Latin-Upper-D : begin glyph-block Letter-Latin-Upper-D : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes

View file

@ -130,12 +130,12 @@ define-macro glyph-block-import : syntax-rules
OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif OShape OShapeOutline OBarLeftShape OBarRightShape LeftwardTopSerif LeftwardBottomSerif
RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif RightwardTopSerif RightwardBottomSerif CenterTopSerif CenterBottomSerif
DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs DownwardRightSerif UpwardRightSerif DownwardLeftSerif UpwardLeftSerif AIVSerifs
AIHSerifs AINSerifs AICyrISerifs AIMSerifs nShoulderKnots nShoulder AIHSerifs AINSerifs AICyrISerifs AIMSerifs nShoulderKnots nShoulder mShoulderSpiro HBar
mShoulderSpiro HBar HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook HBarTop HBarBottom HOverlayBar VBar VBarLeft VBarRight VerticalHook LegShape LeftHook
LegShape LeftHook HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR HooktopLeftBar CurlyTail HCurlyTail FlatSlashShape determineMixR hookstart hookend
hookstart hookend CyrDescender Fork Miniature Thinner Widen FlipAround ScaleAround CyrDescender Fork Miniature Thinner Widen FlipAround ScaleAround Realign ForceUpright
Realign ForceUpright Overlay diagCor CreateWaveShape NameUni PointingTo WithDerivatives Overlay diagCor CreateWaveShape NameUni PointingTo WithDerivatives WithAIHSerifsMask
WithAIHSerifsMask SNeck WithTransform ReverseContours clear-anchors] SNeck WithTransform ReverseContours clear-anchors OBarLeftToothlessShape]
Overmarks `[markExtend markHalfStroke markStress markFine markMiddle markDotsRadius Overmarks `[markExtend markHalfStroke markStress markFine markMiddle markDotsRadius
aboveMarkTop aboveMarkBot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot aboveMarkTop aboveMarkBot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot

View file

@ -111,6 +111,18 @@ sampler = 'f'
description = '`f` with a leftward bottom hook' description = '`f` with a leftward bottom hook'
variant.f = "tailed" variant.f = "tailed"
[simple.v-b-toothed]
tag = "VXBK"
sampler = 'b'
description = '`b` with bottom-left tooth'
variant.b = "toothed"
[simple.v-b-toothless]
tag = "VXBL"
sampler = 'b'
description = '`b` without botton-left tooth'
variant.b = "toothless"
[simple.v-f-serifed] [simple.v-f-serifed]
tag = "cv84" tag = "cv84"
sampler = 'f' sampler = 'f'
@ -908,7 +920,8 @@ design = [
'v-four-closed', 'v-four-closed',
'v-q-straight', 'v-q-straight',
'v-z-standard', 'v-z-standard',
'v-capital-d-standard' 'v-capital-d-standard',
'v-b-toothed'
] ]
upright = [ upright = [
'v-a-doublestorey', 'v-a-doublestorey',