Skip to content

Commit 7ad54cf

Browse files
Further reduce glyphs surrounding a.
1 parent 2795b87 commit 7ad54cf

File tree

7 files changed

+142
-133
lines changed

7 files changed

+142
-133
lines changed

packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
147147
include : df.markSet.e
148148

149149
local { subDf shift } : SubDfAndShift 1 df
150-
include : with-transform [ApparentTranslate shift 0] [body subDf XH bar no-shape df.mvs]
150+
include : with-transform [ApparentTranslate shift 0] [body subDf XH bar df.mvs]
151151

152152
include : Iotified.full df XH (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (XH / 2)
153153

packages/font-glyphs/src/letter/greek/lower-alpha.ptl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ glyph-block Letter-Greek-Lower-Alpha : begin
3838

3939
foreach { suffix { body bar } } [Object.entries SingleStoreyConfig] : do
4040
create-glyph "grek/alpha.\(suffix)" : glyph-proc
41-
include : MarkSet.e
42-
include : body [DivFrame 1] XH bar no-shape
41+
local df : include : DivFrame 1
42+
include : df.markSet.e
43+
include : body df XH bar
4344

4445
select-variant 'grek/alpha' 0x3B1
4546
link-reduced-variant 'grek/alpha/sansSerif' 'grek/alpha' MathSansSerif

packages/font-glyphs/src/letter/greek/lower-epsilon.ptl

Lines changed: 36 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
4444
local ada : topHeight - [mix (midyHeight + stroke / 2) (topHeight - O - stroke) (ArchDepthB / (ArchDepthA + ArchDepthB))] - [HSwToV TanSlope] * stroke
4545
local adb : [mix (stroke + O) (midyHeight - stroke / 2) (ArchDepthB / (ArchDepthA + ArchDepthB))] + [HSwToV TanSlope] * stroke
4646
local fine : stroke * CThin
47-
local stemFine : stroke * (ShoulderFine / Stroke)
47+
local stemFine : ShoulderFine * (stroke / Stroke)
4848
return : object stroke midx midy ada adb fine stemFine
4949

5050
export : define [UpperShape] : begin
@@ -114,7 +114,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
114114
local adb : topHeight - [mix (midyHeight + stroke / 2) (topHeight - yo - stroke) (ArchDepthA / (ArchDepthA + ArchDepthB))] + [HSwToV TanSlope] * stroke
115115
local ada : [mix (stroke + yo) (midyHeight - stroke / 2) (ArchDepthA / (ArchDepthA + ArchDepthB))] - [HSwToV TanSlope] * stroke
116116
local fine : stroke * CThin
117-
local stemFine : stroke * (ShoulderFine / Stroke)
117+
local stemFine : ShoulderFine * (stroke / Stroke)
118118
return : object stroke midx midy ada adb fine stemFine
119119

120120
define [UpperShapeT sink] : begin
@@ -376,47 +376,47 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
376376
do "Volapuk AE"
377377
glyph-block-import Letter-Latin-Lower-A : SingleStorey
378378

379-
define [FullBarBody df height bar hook ada2 adb2] : glyph-proc
379+
define [FullBarBody df height bar hook ada adb] : glyph-proc
380380
local eps : SmallEpsilon CLOSED-STEM CLOSED-STEM height 0
381381
blend -- VolBlend
382382
hook -- hook
383383
overflow -- 0
384-
ada2 -- ada2
385-
adb2 -- adb2
384+
ada2 -- ada
385+
adb2 -- adb
386386
define [object stroke] : eps.Dim
387387
include : eps.Shape
388-
include : bar df height no-shape stroke
388+
include : bar df height stroke
389389

390-
define [EarlessCornerBody df height bar hook ada2 adb2] : glyph-proc
390+
define [EarlessCornerBody df height bar hook ada adb] : glyph-proc
391391
local eps : SmallEpsilon SLAB-INWARD CLOSED-STEM height 0
392392
blend -- VolBlend
393393
hook -- hook
394394
overflow -- 0
395-
ada2 -- ada2
396-
adb2 -- adb2
395+
ada2 -- ada
396+
adb2 -- adb
397397
define [object stroke] : eps.Dim
398398
include : eps.Shape
399-
include : bar df (height - DToothlessRise) no-shape stroke
399+
include : bar df (height - DToothlessRise) stroke
400400

401-
define [EarlessRoundedBody df height bar hook ada2 adb2] : glyph-proc
401+
define [EarlessRoundedBody df height bar hook ada adb] : glyph-proc
402402
local eps : SmallEpsilon CLOSED-ROUND CLOSED-STEM height 0
403403
blend -- VolBlend
404404
hook -- hook
405405
overflow -- 0
406-
ada2 -- ada2
407-
adb2 -- adb2
406+
ada2 -- ada
407+
adb2 -- adb
408408
define [object stroke] : eps.Dim
409409
include : eps.Shape
410-
include : bar df (height - adb2) no-shape stroke
410+
include : bar df (height - adb) stroke
411411

412412
define SingleStoreyConfig : object
413413
singleStoreySerifless { FullBarBody SingleStorey.SeriflessBar }
414414
singleStoreyEarlessCornerSerifless { EarlessCornerBody SingleStorey.SeriflessBar }
415415
singleStoreyEarlessRoundedSerifless { EarlessRoundedBody SingleStorey.SeriflessBar }
416416

417-
singleStoreySerifed { FullBarBody SingleStorey.SerifedBar }
418-
singleStoreyEarlessCornerSerifed { EarlessCornerBody SingleStorey.SerifedBar }
419-
singleStoreyEarlessRoundedSerifed { EarlessRoundedBody SingleStorey.SerifedBar }
417+
singleStoreySerifed { FullBarBody SingleStorey.BottomSerifedBar }
418+
singleStoreyEarlessCornerSerifed { EarlessCornerBody SingleStorey.BottomSerifedBar }
419+
singleStoreyEarlessRoundedSerifed { EarlessRoundedBody SingleStorey.BottomSerifedBar }
420420

421421
singleStoreyDoubleSerifed { FullBarBody SingleStorey.DoubleSerifedBar }
422422

@@ -428,61 +428,63 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
428428

429429
foreach { suffix { body bar } } [Object.entries SingleStoreyConfig] : do
430430
create-glyph "AeVolapuk.\(suffix)" : glyph-proc
431-
include : MarkSet.capital
432-
include : body [DivFrame 1] CAP bar Hook ArchDepthA ArchDepthB
431+
local df : include : DivFrame 1
432+
include : df.markSet.capital
433+
include : body df CAP bar Hook ArchDepthA ArchDepthB
433434
create-glyph "aeVolapuk.\(suffix)" : glyph-proc
434-
include : MarkSet.e
435-
include : body [DivFrame 1] XH bar SHook SmallArchDepthA SmallArchDepthB
435+
local df : include : DivFrame 1
436+
include : df.markSet.e
437+
include : body df XH bar SHook SmallArchDepthA SmallArchDepthB
436438

437439
do "Volapuk UE"
438440
glyph-block-import Letter-Latin-U : USerifs
439441
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar
440442

441-
define [UToothed df height slab hook ada2 adb2] : glyph-proc
443+
define [UToothed df height slab hook ada adb] : glyph-proc
442444
set-base-anchor 'trailing' df.rightSB 0
443445
local eps : SmallEpsilon OPEN-VERTICAL CLOSED-STEM height 0
444446
blend -- VolBlend
445447
hook -- hook
446448
overflow -- 0
447-
ada2 -- ada2
448-
adb2 -- adb2
449+
ada2 -- ada
450+
adb2 -- adb
449451
define [object stroke] : eps.Dim
450452
include : eps.Shape
451453
include : VBar.r df.rightSB 0 height stroke
452454
include : slab df height
453455

454-
define [UTailed df height slab hook ada2 adb2] : glyph-proc
456+
define [UTailed df height slab hook ada adb] : glyph-proc
455457
set-base-anchor 'trailing' (df.rightSB + SideJut) 0
456458
local eps : SmallEpsilon OPEN-VERTICAL CLOSED-STEM height 0
457459
blend -- VolBlend
458460
hook -- hook
459461
overflow -- 0
460-
ada2 -- ada2
461-
adb2 -- adb2
462+
ada2 -- ada
463+
adb2 -- adb
462464
define [object stroke] : eps.Dim
463465
include : eps.Shape
464466
include : RightwardTailedBar df.rightSB 0 height stroke
465467
include : slab df height
466468

467-
define [UToothlessRounded df height slab hook ada2 adb2] : glyph-proc
469+
define [UToothlessRounded df height slab hook ada adb] : glyph-proc
468470
local eps : SmallEpsilon OPEN-VERTICAL CLOSED-ROUND height 0
469471
blend -- VolBlend
470472
hook -- hook
471473
overflow -- 0
472-
ada2 -- ada2
473-
adb2 -- adb2
474+
ada2 -- ada
475+
adb2 -- adb
474476
define [object stroke] : eps.Dim
475477
include : eps.Shape
476-
include : VBar.r df.rightSB ada2 height stroke
478+
include : VBar.r df.rightSB ada height stroke
477479
include : slab df height
478480

479-
define [UToothlessCorner df height slab hook ada2 adb2] : glyph-proc
481+
define [UToothlessCorner df height slab hook ada adb] : glyph-proc
480482
local eps : SmallEpsilon OPEN-VERTICAL SLAB-INWARD height 0
481483
blend -- VolBlend
482484
hook -- hook
483485
overflow -- 0
484-
ada2 -- ada2
485-
adb2 -- adb2
486+
ada2 -- ada
487+
adb2 -- adb
486488
define [object stroke] : eps.Dim
487489
include : eps.Shape
488490
include : VBar.r df.rightSB DToothlessRise height stroke

packages/font-glyphs/src/letter/latin/lower-a.ptl

Lines changed: 68 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@ glyph-block Letter-Latin-Lower-A : begin
99
glyph-block-import CommonShapes
1010
glyph-block-import Common-Derivatives
1111
glyph-block-import Mark-Shared-Metrics : markHalfStroke
12-
glyph-block-import Letter-Shared : CreateAccentedComposition
13-
glyph-block-import Letter-Shared : CreateTurnedLetter
12+
glyph-block-import Letter-Shared : CreateAccentedComposition CreateTurnedLetter
1413
glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight ArcStartSerif
15-
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar InvRightwardTailedBar
16-
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend RetroflexHook InwardSlabArcStart
14+
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar DToothlessRise DMBlend
15+
glyph-block-import Letter-Shared-Shapes : RetroflexHook InwardSlabArcStart
1716

1817
glyph-block-export DoubleStorey
1918
define DoubleStorey : namespace
@@ -142,105 +141,112 @@ glyph-block Letter-Latin-Lower-A : begin
142141

143142
glyph-block-export SingleStorey
144143
define SingleStorey : namespace
145-
export : define [FullBarBody df height bar mask _sw] : glyph-proc
144+
define [EaredBodyImpl df top sw] : OBarRight.shape
145+
top -- top
146+
left -- df.leftSB
147+
right -- df.rightSB
148+
sw -- sw
149+
fine -- (ShoulderFine * (sw / Stroke))
150+
ada -- [df.archDepthA SmallArchDepth sw]
151+
adb -- [df.archDepthB SmallArchDepth sw]
152+
153+
export : define [FullBarBody df top bar _sw] : glyph-proc
146154
local sw : fallback _sw df.mvs
147-
include : OBarRight.shape
148-
top -- height
149-
left -- df.leftSB
150-
right -- df.rightSB
151-
sw -- sw
152-
fine -- sw * (ShoulderFine / Stroke)
153-
ada -- [df.archDepthA SmallArchDepth sw]
154-
adb -- [df.archDepthB SmallArchDepth sw]
155-
include : bar df height mask sw
156-
export : define [EarlessCornerBody df height bar mask _sw] : glyph-proc
155+
include : EaredBodyImpl df top sw
156+
include : bar df top sw
157+
export : define [ScriptCutBody df top bar _sw] : glyph-proc
158+
local sw : fallback _sw df.mvs
159+
include : EaredBodyImpl df top sw
160+
include : bar df (top - sw / 2) sw
161+
include : spiro-outline
162+
corner df.rightSB top
163+
corner df.rightSB (top - sw / 2)
164+
corner (df.rightSB - [HSwToV sw]) (top - sw / 2)
165+
export : define [EarlessCornerBody df top bar _sw] : glyph-proc
157166
local sw : fallback _sw df.mvs
158167
include : OBarLeft.toothless
159-
top -- height
168+
top -- top
160169
left -- df.leftSB
161170
right -- df.rightSB
162171
sw -- sw
163-
fine -- sw * (ShoulderFine / Stroke)
172+
fine -- (ShoulderFine * (sw / Stroke))
164173
ada -- [df.archDepthA SmallArchDepth sw]
165174
adb -- [df.archDepthB SmallArchDepth sw]
166175
rise -- DToothlessRise
167176
mBlend -- DMBlend
168-
include : FlipAround df.middle (height / 2)
169-
include : bar df (height - DToothlessRise) mask sw
170-
export : define [EarlessRoundedBody df height bar mask _sw] : glyph-proc
177+
include : FlipAround df.middle (top / 2)
178+
include : bar df (top - DToothlessRise) sw
179+
export : define [EarlessRoundedBody df top bar _sw] : glyph-proc
171180
local sw : fallback _sw df.mvs
172181
local ada : df.archDepthA SmallArchDepth sw
173182
local adb : df.archDepthB SmallArchDepth sw
174183
include : OBarLeft.rounded
175-
top -- height
184+
top -- top
176185
left -- df.leftSB
177186
right -- df.rightSB
178187
sw -- sw
179-
fine -- sw * (ShoulderFine / Stroke)
188+
fine -- (ShoulderFine * (sw / Stroke))
180189
ada -- ada
181190
adb -- adb
182-
yTerminal -- (height - ada)
183-
include : FlipAround df.middle (height / 2)
184-
include : bar df (height - adb) mask sw
191+
yTerminal -- (top - ada)
192+
include : FlipAround df.middle (top / 2)
193+
include : bar df (top - adb) sw
185194

186-
export : define [SeriflessBar df height mask sw] : glyph-proc
195+
export : define [SeriflessBar df top sw] : glyph-proc
187196
set-base-anchor 'trailing' df.rightSB 0
188-
include : difference
189-
VBar.r df.rightSB 0 height sw
190-
mask df height sw
191-
export : define [SerifedBar df height mask sw] : glyph-proc
192-
include : SeriflessBar df height mask sw
193-
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rb.outer
194-
export : define [TopSerifedBar df height mask sw] : glyph-proc
195-
include : SeriflessBar df height mask sw
196-
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
197-
export : define [DoubleSerifedBar df height mask sw] : glyph-proc
198-
include : SerifedBar df height mask sw
199-
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
200-
export : define [TailedBar df height mask sw] : glyph-proc
197+
include : VBar.r df.rightSB 0 top sw
198+
export : define [TopSerifedBar df top sw] : glyph-proc
199+
include : SeriflessBar df top sw
200+
local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
201+
include sf.rt.outer
202+
export : define [BottomSerifedBar df top sw] : glyph-proc
203+
include : SeriflessBar df top sw
204+
local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
205+
include sf.rb.outer
206+
export : define [DoubleSerifedBar df top sw] : glyph-proc
207+
include : SeriflessBar df top sw
208+
local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
209+
include : composite-proc sf.rt.outer sf.rb.outer
210+
export : define [TailedBar df top sw] : glyph-proc
201211
set-base-anchor 'trailing' (df.rightSB + SideJut) 0
202-
include : difference
203-
RightwardTailedBar df.rightSB 0 height sw
204-
mask df height sw
205-
export : define [TailedSerifedBar df height mask sw] : glyph-proc
206-
include : TailedBar df height mask sw
207-
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
208-
209-
export : define [ScriptCut df y sw] : spiro-outline
210-
corner df.rightSB y
211-
corner (df.rightSB - [HSwToV sw]) y
212-
corner (df.rightSB - [HSwToV sw]) (y - sw / 2)
212+
include : RightwardTailedBar df.rightSB 0 top sw
213+
export : define [TailedSerifedBar df top sw] : glyph-proc
214+
include : TailedBar df top sw
215+
local sf : SerifFrame.fromDf df top 0 (swSerif -- sw)
216+
include sf.rt.outer
213217

214218
glyph-block-export SingleStoreyConfig
215219
define SingleStoreyConfig : object
216220
singleStoreySerifless { SingleStorey.FullBarBody SingleStorey.SeriflessBar }
217221
singleStoreyEarlessCornerSerifless { SingleStorey.EarlessCornerBody SingleStorey.SeriflessBar }
218222
singleStoreyEarlessRoundedSerifless { SingleStorey.EarlessRoundedBody SingleStorey.SeriflessBar }
223+
singleStoreyScriptCutSerifless { SingleStorey.ScriptCutBody SingleStorey.SeriflessBar }
219224

220225
singleStoreyTopSerifed { SingleStorey.FullBarBody SingleStorey.TopSerifedBar }
221226

222-
singleStoreySerifed { SingleStorey.FullBarBody SingleStorey.SerifedBar }
223-
singleStoreyEarlessCornerSerifed { SingleStorey.EarlessCornerBody SingleStorey.SerifedBar }
224-
singleStoreyEarlessRoundedSerifed { SingleStorey.EarlessRoundedBody SingleStorey.SerifedBar }
227+
singleStoreySerifed { SingleStorey.FullBarBody SingleStorey.BottomSerifedBar }
228+
singleStoreyEarlessCornerSerifed { SingleStorey.EarlessCornerBody SingleStorey.BottomSerifedBar }
229+
singleStoreyEarlessRoundedSerifed { SingleStorey.EarlessRoundedBody SingleStorey.BottomSerifedBar }
230+
singleStoreyScriptCutSerifed { SingleStorey.ScriptCutBody SingleStorey.BottomSerifedBar }
225231

226232
singleStoreyDoubleSerifed { SingleStorey.FullBarBody SingleStorey.DoubleSerifedBar }
227233

228234
singleStoreyTailed { SingleStorey.FullBarBody SingleStorey.TailedBar }
229235
singleStoreyEarlessCornerTailed { SingleStorey.EarlessCornerBody SingleStorey.TailedBar }
230236
singleStoreyEarlessRoundedTailed { SingleStorey.EarlessRoundedBody SingleStorey.TailedBar }
237+
singleStoreyScriptCutTailed { SingleStorey.ScriptCutBody SingleStorey.TailedBar }
231238

232239
singleStoreyTailedSerifed { SingleStorey.FullBarBody SingleStorey.TailedSerifedBar }
233240

234241
foreach { suffix { body bar } } [Object.entries SingleStoreyConfig] : do
235242
create-glyph "a.\(suffix)" : glyph-proc
236-
include : MarkSet.e
237-
include : body [DivFrame 1] XH bar no-shape
243+
local df : include : DivFrame 1
244+
include : df.markSet.e
245+
include : body df XH bar
238246
create-glyph "AScript.\(suffix)" : glyph-proc
239-
include : MarkSet.capital
240-
include : body [DivFrame 1] CAP bar SingleStorey.ScriptCut
241-
create-glyph "aScript.\(suffix)" : glyph-proc
242-
include : MarkSet.e
243-
include : body [DivFrame 1] XH bar SingleStorey.ScriptCut
247+
local df : include : DivFrame 1
248+
include : df.markSet.capital
249+
include : body df CAP bar
244250

245251
select-variant 'a' 'a'
246252
link-reduced-variant 'a/sansSerif' 'a' MathSansSerif
@@ -253,10 +259,10 @@ glyph-block Letter-Latin-Lower-A : begin
253259
derive-composites 'aRetroflexHook' 0x1D8F 'a/rtailBase'
254260
RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)
255261

256-
select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
262+
select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans']) (shapeFrom -- 'a')
257263
select-variant 'AScript' 0x2C6D (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
258264

259-
derive-composites 'aScriptRetroflexHook' 0x1D90 'aScript.singleStoreySerifless'
265+
derive-composites 'aScriptRetroflexHook' 0x1D90 'a.singleStoreyScriptCutSerifless'
260266
RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)
261267

262268
CreateTurnedLetter 'turnaScript' 0x252 'aScript' HalfAdvance (XH / 2)

0 commit comments

Comments
 (0)