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

@ -1,4 +1,5 @@
* Change shape of Peseta sign to `P` with crossbar (#451).
* Add Cyrillic Fita (#617).
* 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]
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
include : create-glyph [OBarLeftShape top (Width - [fallback right RightSB])]
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]
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
widths.lhs [fallback stroke Stroke]
g4 RightSB (CAP - Hook)
@ -814,4 +838,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
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 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-import CommonShapes
glyph-block-import Overmarks
@ -2259,8 +2265,13 @@ glyph-block Letter-Latin-Upper-B : begin
glyph-block Letter-Latin-Lower-B : begin
glyph-block-import CommonShapes
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
include MarkSet.b
@ -2270,38 +2281,48 @@ glyph-block Letter-Latin-Lower-B : begin
include : tagged 'serifLT' : LeftwardTopSerif SB CAP 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 : OBarLeftShape
include : HooktopLeftBar
if SLAB : begin
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
include [refer-glyph 'b'] AS_BASE
CreateDerivedLetter 'b' 'bbar' 0x180 : lambda [src sel] : glyph-construction
include [refer-glyph src] AS_BASE
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"
apply-transform : Translate (Width + HalfStroke) 0
include [refer-glyph 'b'] AS_BASE
save 'bdot' 0x1E03
include [refer-glyph src] AS_BASE
sketch # latinbe
include [refer-glyph 'b'] AS_BASE
CreateDerivedLetter 'b' 'latinbe' 0x183 : lambda [src sel] : glyph-construction
include [refer-glyph src] AS_BASE
include : HBarTop (SB - O) [mix SB RightSB 0.9] CAP
if SLAB : begin
include : DownwardRightSerif [mix SB RightSB 0.9] CAP VJut
save 'latinbe' 0x183
sketch # zhuangtonesix
include [refer-glyph 'b'] AS_BASE
CreateDerivedLetter 'b' 'zhuangtonesix' 0x185 : lambda [src sel] : glyph-construction
include [refer-glyph src] AS_BASE
eject-contour 'serifLT'
local s : Math.max (XH * 0.1) Stroke
include : ReverseContours : spiro-outline
@ -2310,8 +2331,6 @@ glyph-block Letter-Latin-Lower-B : begin
corner (SB - s) (CAP - s)
corner SB (CAP - s * 2)
corner (SB - O) (CAP - s * 2)
save 'zhuangtonesix' 0x185
glyph-block Letter-Latin-Upper-D : begin
glyph-block-import CommonShapes

View file

@ -130,12 +130,12 @@ define-macro glyph-block-import : syntax-rules
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]
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]
Overmarks `[markExtend markHalfStroke markStress markFine markMiddle markDotsRadius
aboveMarkTop aboveMarkBot aboveMarkMid belowMarkBot belowMarkTop commaOvershoot

View file

@ -111,6 +111,18 @@ sampler = 'f'
description = '`f` with a leftward bottom hook'
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]
tag = "cv84"
sampler = 'f'
@ -908,7 +920,8 @@ design = [
'v-four-closed',
'v-q-straight',
'v-z-standard',
'v-capital-d-standard'
'v-capital-d-standard',
'v-b-toothed'
]
upright = [
'v-a-doublestorey',