Add toothless variant of b
(#462).
This commit is contained in:
parent
84a8cb809c
commit
8d1e942de4
5 changed files with 84 additions and 27 deletions
|
@ -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).
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue