Attempt to save a small amount of glyphs surrounding a. (#2591)

* Move `invaScript` to `transformed-jobs-data.ptl`.

* Rename `a/turnABase` to `a/doubleStorey`.
This commit is contained in:
John McWilliams 2024-11-15 19:01:45 -05:00 committed by GitHub
parent 26dc6028ce
commit 01650c7717
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 34 additions and 56 deletions

View file

@ -462,6 +462,7 @@ export : define Reversed : list
list 0xA7FB 'F' list 0xA7FB 'F'
list 0xA7FC 'P' list 0xA7FC 'P'
list 0xA7FD 'turnM' list 0xA7FD 'turnM'
list 0xAB64 'turnaScript'
list 0x1DF01 'gScript' list 0x1DF01 'gScript'
list 0x1DF03 'k' list 0x1DF03 'k'
list 0x1DF07 'eng' list 0x1DF07 'eng'

View file

@ -400,7 +400,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
local df : DivFrame para.diversityM 3 local df : DivFrame para.diversityM 3
include : OODots df 1.5 (DrawAt === DotAt) kdr include : OODots df 1.5 (DrawAt === DotAt) kdr
select-variant "aa" 0xA733 (follow -- 'a/turnABase') select-variant "aa" 0xA733 (follow -- 'a/doubleStorey')
select-variant "ae/a" select-variant "ae/a"
select-variant "ae/e" (follow -- 'e') select-variant "ae/e" (follow -- 'e')

View file

@ -15,7 +15,7 @@ glyph-block Letter-Latin-Lower-A : begin
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar InvRightwardTailedBar glyph-block-import Letter-Shared-Shapes : RightwardTailedBar InvRightwardTailedBar
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend RetroflexHook InwardSlabArcStart glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend RetroflexHook InwardSlabArcStart
glyph-block-export DoubleStorey DoubleStoreyConfig glyph-block-export DoubleStorey
define DoubleStorey : namespace define DoubleStorey : namespace
define [ADoubleStoreyStroke df] : AdviceStroke2 2 3 XH df.div define [ADoubleStoreyStroke df] : AdviceStroke2 2 3 XH df.div
define [ADoubleStoreySmoothA df] : begin define [ADoubleStoreySmoothA df] : begin
@ -102,17 +102,18 @@ glyph-block Letter-Latin-Lower-A : begin
[Just ToothlessRounded] : ArcMask df 2 [ADoubleStoreySmoothA df] sw [Just ToothlessRounded] : ArcMask df 2 [ADoubleStoreySmoothA df] sw
__ : ArcMask df 0 nothing nothing sw __ : ArcMask df 0 nothing nothing sw
glyph-block-export DoubleStoreyConfig
define DoubleStoreyConfig : object define DoubleStoreyConfig : object
doubleStoreySerifless { DoubleStorey.Serifless (RightSB ) 1 } doubleStoreySerifless { DoubleStorey.Serifless RightSB 1 }
doubleStoreySerifed { DoubleStorey.Serifed (RightSB + SideJut) 1 } doubleStoreySerifed { DoubleStorey.Serifed (RightSB + SideJut) 1 }
doubleStoreyTailed { DoubleStorey.Tailed (RightSB + SideJut) 1 } doubleStoreyTailed { DoubleStorey.Tailed (RightSB + SideJut) 1 }
doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner nothing 1 } doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner nothing 1 }
doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded nothing 1 } doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded nothing 1 }
doubleStoreyHookInwardSerifedSerifless { DoubleStorey.Serifless (RightSB ) 2 } doubleStoreyHookInwardSerifedSerifless { DoubleStorey.Serifless RightSB 2 }
doubleStoreyHookInwardSerifedSerifed { DoubleStorey.Serifed (RightSB + SideJut) 2 } doubleStoreyHookInwardSerifedSerifed { DoubleStorey.Serifed (RightSB + SideJut) 2 }
doubleStoreyHookInwardSerifedTailed { DoubleStorey.Tailed (RightSB + SideJut) 2 } doubleStoreyHookInwardSerifedTailed { DoubleStorey.Tailed (RightSB + SideJut) 2 }
doubleStoreyHookInwardSerifedToothlessCorner { DoubleStorey.ToothlessCorner nothing 2 } doubleStoreyHookInwardSerifedToothlessCorner { DoubleStorey.ToothlessCorner nothing 2 }
doubleStoreyHookInwardSerifedToothlessRounded { DoubleStorey.ToothlessRounded nothing 2 } doubleStoreyHookInwardSerifedToothlessRounded { DoubleStorey.ToothlessRounded nothing 2 }
foreach { suffix { body xTrailing hookStyle } } [Object.entries DoubleStoreyConfig] : do foreach { suffix { body xTrailing hookStyle } } [Object.entries DoubleStoreyConfig] : do
create-glyph "a.\(suffix)" : glyph-proc create-glyph "a.\(suffix)" : glyph-proc
@ -139,7 +140,7 @@ glyph-block Letter-Latin-Lower-A : begin
Rect XH 0 (RightSB - BBD) Width Rect XH 0 (RightSB - BBD) Width
include : HBar.b (RightSB - BBD) RightSB 0 BBS include : HBar.b (RightSB - BBD) RightSB 0 BBS
glyph-block-export SingleStorey SingleStoreyConfig glyph-block-export SingleStorey
define SingleStorey : namespace define SingleStorey : namespace
export : define [FullBarBody df height bar mask _sw] : glyph-proc export : define [FullBarBody df height bar mask _sw] : glyph-proc
local sw : fallback _sw df.mvs local sw : fallback _sw df.mvs
@ -205,32 +206,12 @@ glyph-block Letter-Latin-Lower-A : begin
include : TailedBar df height mask sw include : TailedBar df height mask sw
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rt.outer
set SeriflessBar.inv SeriflessBar
set SerifedBar.inv TopSerifedBar
set TopSerifedBar.inv SerifedBar
set DoubleSerifedBar.inv DoubleSerifedBar
set TailedBar.inv : function [df height mask sw] : glyph-proc
set-base-anchor 'trailing' (df.rightSB + SideJut) 0
include : difference
InvRightwardTailedBar df.rightSB 0 height sw
mask df height sw
set TailedSerifedBar.inv : function [df height mask sw] : glyph-proc
set-base-anchor 'trailing' (df.rightSB + SideJut) 0
include : difference
InvRightwardTailedBar df.rightSB 0 height sw
mask df height sw
include [SerifFrame.fromDf df height 0 (swSerif -- sw)].rb.outer
export : define [ScriptCut df y sw] : spiro-outline export : define [ScriptCut df y sw] : spiro-outline
corner df.rightSB y corner df.rightSB y
corner (df.rightSB - [HSwToV sw]) y corner (df.rightSB - [HSwToV sw]) y
corner (df.rightSB - [HSwToV sw]) (y - sw / 2) corner (df.rightSB - [HSwToV sw]) (y - sw / 2)
export : define [InvScriptCut df y sw] : spiro-outline
corner df.rightSB 0
corner (df.rightSB - [HSwToV sw]) 0
corner (df.rightSB - [HSwToV sw]) (0 + sw / 2)
glyph-block-export SingleStoreyConfig
define SingleStoreyConfig : object define SingleStoreyConfig : object
singleStoreySerifless { SingleStorey.FullBarBody SingleStorey.SeriflessBar } singleStoreySerifless { SingleStorey.FullBarBody SingleStorey.SeriflessBar }
singleStoreyEarlessCornerSerifless { SingleStorey.EarlessCornerBody SingleStorey.SeriflessBar } singleStoreyEarlessCornerSerifless { SingleStorey.EarlessCornerBody SingleStorey.SeriflessBar }
@ -260,24 +241,20 @@ glyph-block Letter-Latin-Lower-A : begin
create-glyph "aScript.\(suffix)" : glyph-proc create-glyph "aScript.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
include : body [DivFrame 1] XH bar SingleStorey.ScriptCut include : body [DivFrame 1] XH bar SingleStorey.ScriptCut
create-glyph "invaScript.\(suffix)" : glyph-proc
include : MarkSet.e
include : body [DivFrame 1] XH bar.inv SingleStorey.InvScriptCut
select-variant 'a' 'a' select-variant 'a' 'a'
link-reduced-variant 'a/sansSerif' 'a' MathSansSerif link-reduced-variant 'a/sansSerif' 'a' MathSansSerif
link-reduced-variant 'a/rtailBase' 'a' link-reduced-variant 'a/rtailBase' 'a'
link-reduced-variant 'a/turnABase' 'a' link-reduced-variant 'a/doubleStorey' 'a'
select-variant 'cyrl/a' 0x430 (shapeFrom -- 'a') select-variant 'cyrl/a' 0x430 (shapeFrom -- 'a')
CreateTurnedLetter 'turna' 0x250 'a/turnABase' HalfAdvance (XH / 2) CreateTurnedLetter 'turna' 0x250 'a/doubleStorey' HalfAdvance (XH / 2)
derive-composites 'aRetroflexHook' 0x1D8F 'a/rtailBase' derive-composites 'aRetroflexHook' 0x1D8F 'a/rtailBase'
RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke) RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)
select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans']) select-variant 'aScript' 0x251 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
select-variant 'AScript' 0x2C6D (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans']) select-variant 'AScript' 0x2C6D (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
select-variant 'invaScript' 0xAB64 (follow -- [conditional-follow SLAB 'aScript/autoSerifed/slab' 'aScript/autoSerifed/sans'])
derive-composites 'aScriptRetroflexHook' 0x1D90 'aScript.singleStoreySerifless' derive-composites 'aScriptRetroflexHook' 0x1D90 'aScript.singleStoreySerifless'
RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke) RetroflexHook.rSideJut RightSB 0 (yOverflow -- Stroke)

View file

@ -2136,7 +2136,7 @@ selectorAffix.a = "doubleStorey"
selectorAffix."ae/a" = "doubleStorey" selectorAffix."ae/a" = "doubleStorey"
selectorAffix."a/sansSerif" = "doubleStorey" selectorAffix."a/sansSerif" = "doubleStorey"
selectorAffix."a/rtailBase" = "doubleStorey" selectorAffix."a/rtailBase" = "doubleStorey"
selectorAffix."a/turnABase" = "doubleStorey" selectorAffix."a/doubleStorey" = "doubleStorey"
selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey" selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey"
selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey" selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey"
selectorAffix."aScript/autoSerifed/slab" = "singleStorey" selectorAffix."aScript/autoSerifed/slab" = "singleStorey"
@ -2150,7 +2150,7 @@ selectorAffix.a = "singleStorey"
selectorAffix."ae/a" = "doubleStorey" selectorAffix."ae/a" = "doubleStorey"
selectorAffix."a/sansSerif" = "singleStorey" selectorAffix."a/sansSerif" = "singleStorey"
selectorAffix."a/rtailBase" = "singleStorey" selectorAffix."a/rtailBase" = "singleStorey"
selectorAffix."a/turnABase" = "doubleStorey" selectorAffix."a/doubleStorey" = "doubleStorey"
selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey" selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey"
selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey" selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey"
selectorAffix."aScript/autoSerifed/slab" = "singleStorey" selectorAffix."aScript/autoSerifed/slab" = "singleStorey"
@ -2167,7 +2167,7 @@ selectorAffix.a = ""
selectorAffix."ae/a" = "" selectorAffix."ae/a" = ""
selectorAffix."a/sansSerif" = "" selectorAffix."a/sansSerif" = ""
selectorAffix."a/rtailBase" = "" selectorAffix."a/rtailBase" = ""
selectorAffix."a/turnABase" = "" selectorAffix."a/doubleStorey" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "" selectorAffix."a/singleStorey/autoSerifed/slab" = ""
selectorAffix."a/singleStorey/autoSerifed/sans" = "" selectorAffix."a/singleStorey/autoSerifed/sans" = ""
selectorAffix."aScript/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
@ -2181,7 +2181,7 @@ selectorAffix.a = "hookInwardSerifed"
selectorAffix."ae/a" = "hookInwardSerifed" selectorAffix."ae/a" = "hookInwardSerifed"
selectorAffix."a/sansSerif" = "" selectorAffix."a/sansSerif" = ""
selectorAffix."a/rtailBase" = "hookInwardSerifed" selectorAffix."a/rtailBase" = "hookInwardSerifed"
selectorAffix."a/turnABase" = "hookInwardSerifed" selectorAffix."a/doubleStorey" = "hookInwardSerifed"
selectorAffix."a/singleStorey/autoSerifed/slab" = "" selectorAffix."a/singleStorey/autoSerifed/slab" = ""
selectorAffix."a/singleStorey/autoSerifed/sans" = "" selectorAffix."a/singleStorey/autoSerifed/sans" = ""
selectorAffix."aScript/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
@ -2197,7 +2197,7 @@ selectorAffix.a = ""
selectorAffix."ae/a" = "" selectorAffix."ae/a" = ""
selectorAffix."a/sansSerif" = "" selectorAffix."a/sansSerif" = ""
selectorAffix."a/rtailBase" = "" selectorAffix."a/rtailBase" = ""
selectorAffix."a/turnABase" = "" selectorAffix."a/doubleStorey" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "" selectorAffix."a/singleStorey/autoSerifed/slab" = ""
selectorAffix."a/singleStorey/autoSerifed/sans" = "" selectorAffix."a/singleStorey/autoSerifed/sans" = ""
selectorAffix."aScript/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
@ -2210,7 +2210,7 @@ selectorAffix.a = "earlessCorner"
selectorAffix."ae/a" = "" selectorAffix."ae/a" = ""
selectorAffix."a/sansSerif" = "earlessCorner" selectorAffix."a/sansSerif" = "earlessCorner"
selectorAffix."a/rtailBase" = "earlessCorner" selectorAffix."a/rtailBase" = "earlessCorner"
selectorAffix."a/turnABase" = "" selectorAffix."a/doubleStorey" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessCorner" selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessCorner"
selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessCorner" selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessCorner"
selectorAffix."aScript/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
@ -2223,7 +2223,7 @@ selectorAffix.a = "earlessRounded"
selectorAffix."ae/a" = "" selectorAffix."ae/a" = ""
selectorAffix."a/sansSerif" = "earlessRounded" selectorAffix."a/sansSerif" = "earlessRounded"
selectorAffix."a/rtailBase" = "earlessRounded" selectorAffix."a/rtailBase" = "earlessRounded"
selectorAffix."a/turnABase" = "" selectorAffix."a/doubleStorey" = ""
selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessRounded" selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessRounded"
selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessRounded" selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessRounded"
selectorAffix."aScript/autoSerifed/slab" = "" selectorAffix."aScript/autoSerifed/slab" = ""
@ -2237,7 +2237,7 @@ selectorAffix.a = "serifless"
selectorAffix."ae/a" = "serifless" selectorAffix."ae/a" = "serifless"
selectorAffix."a/sansSerif" = "serifless" selectorAffix."a/sansSerif" = "serifless"
selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "serifless" selectorAffix."a/doubleStorey" = "serifless"
selectorAffix."a/singleStorey/autoSerifed/slab" = "serifless" selectorAffix."a/singleStorey/autoSerifed/slab" = "serifless"
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless" selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless"
selectorAffix."aScript/autoSerifed/slab" = "serifless" selectorAffix."aScript/autoSerifed/slab" = "serifless"
@ -2250,7 +2250,7 @@ selectorAffix.a = "serifed"
selectorAffix."ae/a" = "serifless" selectorAffix."ae/a" = "serifless"
selectorAffix."a/sansSerif" = "serifless" selectorAffix."a/sansSerif" = "serifless"
selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "serifed" selectorAffix."a/doubleStorey" = "serifed"
selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "doubleSerifed", else = "serifed" } selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "doubleSerifed", else = "serifed" }
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifed" selectorAffix."a/singleStorey/autoSerifed/sans" = "serifed"
selectorAffix."aScript/autoSerifed/slab" = "serifed" selectorAffix."aScript/autoSerifed/slab" = "serifed"
@ -2264,7 +2264,7 @@ selectorAffix.a = "doubleSerifed"
selectorAffix."ae/a" = "serifless" selectorAffix."ae/a" = "serifless"
selectorAffix."a/sansSerif" = "serifless" selectorAffix."a/sansSerif" = "serifless"
selectorAffix."a/rtailBase" = "topSerifed" selectorAffix."a/rtailBase" = "topSerifed"
selectorAffix."a/turnABase" = "serifed" selectorAffix."a/doubleStorey" = "serifed"
selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed" selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed"
selectorAffix."a/singleStorey/autoSerifed/sans" = "doubleSerifed" selectorAffix."a/singleStorey/autoSerifed/sans" = "doubleSerifed"
selectorAffix."aScript/autoSerifed/slab" = "serifed" selectorAffix."aScript/autoSerifed/slab" = "serifed"
@ -2277,7 +2277,7 @@ selectorAffix.a = "tailed"
selectorAffix."ae/a" = "serifless" selectorAffix."ae/a" = "serifless"
selectorAffix."a/sansSerif" = "tailed" selectorAffix."a/sansSerif" = "tailed"
selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "tailed" selectorAffix."a/doubleStorey" = "tailed"
selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "tailedSerifed", else = "tailed" } selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "tailedSerifed", else = "tailed" }
selectorAffix."a/singleStorey/autoSerifed/sans" = "tailed" selectorAffix."a/singleStorey/autoSerifed/sans" = "tailed"
selectorAffix."aScript/autoSerifed/slab" = "tailed" selectorAffix."aScript/autoSerifed/slab" = "tailed"
@ -2291,7 +2291,7 @@ selectorAffix.a = "tailedSerifed"
selectorAffix."ae/a" = "serifless" selectorAffix."ae/a" = "serifless"
selectorAffix."a/sansSerif" = "tailed" selectorAffix."a/sansSerif" = "tailed"
selectorAffix."a/rtailBase" = "topSerifed" selectorAffix."a/rtailBase" = "topSerifed"
selectorAffix."a/turnABase" = "tailed" selectorAffix."a/doubleStorey" = "tailed"
selectorAffix."a/singleStorey/autoSerifed/slab" = "tailedSerifed" selectorAffix."a/singleStorey/autoSerifed/slab" = "tailedSerifed"
selectorAffix."a/singleStorey/autoSerifed/sans" = "tailedSerifed" selectorAffix."a/singleStorey/autoSerifed/sans" = "tailedSerifed"
selectorAffix."aScript/autoSerifed/slab" = "tailed" selectorAffix."aScript/autoSerifed/slab" = "tailed"
@ -2305,7 +2305,7 @@ selectorAffix.a = "toothlessCorner"
selectorAffix."ae/a" = "serifless" selectorAffix."ae/a" = "serifless"
selectorAffix."a/sansSerif" = "toothlessCorner" selectorAffix."a/sansSerif" = "toothlessCorner"
selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "toothlessCorner" selectorAffix."a/doubleStorey" = "toothlessCorner"
selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed" selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed"
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless" selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless"
selectorAffix."aScript/autoSerifed/slab" = "serifed" selectorAffix."aScript/autoSerifed/slab" = "serifed"
@ -2319,7 +2319,7 @@ selectorAffix.a = "toothlessRounded"
selectorAffix."ae/a" = "serifless" selectorAffix."ae/a" = "serifless"
selectorAffix."a/sansSerif" = "toothlessRounded" selectorAffix."a/sansSerif" = "toothlessRounded"
selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/rtailBase" = "serifless"
selectorAffix."a/turnABase" = "toothlessRounded" selectorAffix."a/doubleStorey" = "toothlessRounded"
selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed" selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed"
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless" selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless"
selectorAffix."aScript/autoSerifed/slab" = "serifed" selectorAffix."aScript/autoSerifed/slab" = "serifed"