* Add round-top capital A (#2472). * Adjust placement of crossbar. Separate lambda and delta into a new file.
This commit is contained in:
parent
51f573b6fc
commit
304183d434
11 changed files with 322 additions and 224 deletions
1
changes/31.4.0.md
Normal file
1
changes/31.4.0.md
Normal file
|
@ -0,0 +1 @@
|
||||||
|
* Add round-top capital A (#2472).
|
|
@ -101,14 +101,14 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
|
||||||
swSerif -- swSerif
|
swSerif -- swSerif
|
||||||
|
|
||||||
do "iotified A"
|
do "iotified A"
|
||||||
glyph-block-import Letter-Latin-Upper-A : AMaskShape ALetterShape AConfig
|
glyph-block-import Letter-Latin-Upper-A : AShape AConfig
|
||||||
|
|
||||||
foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do
|
foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do
|
||||||
create-glyph "cyrl/AIotified.\(suffix)" : glyph-proc
|
create-glyph "cyrl/AIotified.\(suffix)" : glyph-proc
|
||||||
define df : include : DivFrame para.diversityM 3.5
|
define df : include : DivFrame para.diversityM 3.5
|
||||||
include : df.markSet.capital
|
include : df.markSet.capital
|
||||||
|
|
||||||
local gap : (df.width - 2 * df.leftSB - 4 * df.mvs) / 3
|
local gap : (df.width - 2 * df.leftSB - 3 * df.mvs) / 3
|
||||||
local divSub : (df.width - gap - df.mvs) / Width
|
local divSub : (df.width - gap - df.mvs) / Width
|
||||||
local subDf : DivFrame divSub 2 (df.leftSB / SB) df.mvs 0
|
local subDf : DivFrame divSub 2 (df.leftSB / SB) df.mvs 0
|
||||||
|
|
||||||
|
@ -117,14 +117,14 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
|
||||||
local botGap : Math.max ((df.rightSB - df.leftSB) * 0.08) [AdviceStroke 6]
|
local botGap : Math.max ((df.rightSB - df.leftSB) * 0.08) [AdviceStroke 6]
|
||||||
include : difference
|
include : difference
|
||||||
with-transform [ApparentTranslate shift 0]
|
with-transform [ApparentTranslate shift 0]
|
||||||
ALetterShape subDf fStraightBar slabKind CAP df.mvs
|
AShape.Letter subDf fStraightBar slabKind CAP df.mvs
|
||||||
intersection [MaskBelow df.mvs]
|
intersection [MaskBelow df.mvs]
|
||||||
MaskLeft : mix xIotifiedBarRight [Math.min (subDf.leftSB + shift) (xIotifiedBarRight + botGap)] 0.5
|
MaskLeft : mix xIotifiedBarRight [Math.min (subDf.leftSB + shift) (xIotifiedBarRight + botGap)] 0.5
|
||||||
|
|
||||||
include : difference
|
include : difference
|
||||||
Iotified.A df CAP [mix df.leftSB df.rightSB (3 / 4)] (CAP / 2) (fCapital -- true)
|
Iotified.A df CAP [mix df.leftSB df.rightSB (3 / 4)] (CAP / 2) (fCapital -- true)
|
||||||
with-transform [ApparentTranslate shift 0]
|
with-transform [ApparentTranslate shift 0]
|
||||||
AMaskShape subDf fStraightBar CAP df.mvs
|
AShape.Mask subDf fStraightBar CAP df.mvs
|
||||||
|
|
||||||
do "iotified a"
|
do "iotified a"
|
||||||
glyph-block-import Letter-Latin-Lower-A : DoubleStorey DoubleStoreyConfig SingleStorey SingleStoreyConfig
|
glyph-block-import Letter-Latin-Lower-A : DoubleStorey DoubleStoreyConfig SingleStorey SingleStoreyConfig
|
||||||
|
|
|
@ -8,7 +8,8 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Letter-Shared-Shapes : SerifFrame
|
glyph-block-import Letter-Shared-Shapes : SerifFrame
|
||||||
glyph-block-import Letter-Latin-Upper-A : LambdaShape DeltaShape AMaskShape
|
glyph-block-import Letter-Latin-Upper-A : AShape
|
||||||
|
glyph-block-import Letter-Latin-Upper-Lambda-Delta : LambdaShape DeltaShape
|
||||||
glyph-block-import Letter-Cyrillic-Iotified-A : Iotified
|
glyph-block-import Letter-Cyrillic-Iotified-A : Iotified
|
||||||
|
|
||||||
define [CyrSmallYusShape df top straightBar _fine] : glyph-proc
|
define [CyrSmallYusShape df top straightBar _fine] : glyph-proc
|
||||||
|
@ -16,12 +17,12 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
include : LambdaShape
|
include : LambdaShape
|
||||||
df -- df
|
df -- df
|
||||||
fBarStraight -- straightBar
|
fBarStraight -- straightBar
|
||||||
|
slabKind -- 0
|
||||||
top -- top
|
top -- top
|
||||||
sw -- fine
|
sw -- fine
|
||||||
slabKind -- 0
|
|
||||||
include : intersection
|
include : intersection
|
||||||
HBar.t df.leftSB df.rightSB (top / 2) fine
|
HBar.t df.leftSB df.rightSB (top / 2) fine
|
||||||
AMaskShape df straightBar top fine
|
AShape.Mask df [if straightBar 1 0] top fine
|
||||||
include : VBar.m df.middle (top / 2) 0 fine
|
include : VBar.m df.middle (top / 2) 0 fine
|
||||||
|
|
||||||
if SLAB : begin
|
if SLAB : begin
|
||||||
|
@ -41,7 +42,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
slab -- false
|
slab -- false
|
||||||
include : intersection
|
include : intersection
|
||||||
HBar.t df.leftSB df.rightSB (top / 2) fine
|
HBar.t df.leftSB df.rightSB (top / 2) fine
|
||||||
AMaskShape df straightBar top fine
|
AShape.Mask df [if straightBar 1 0] top fine
|
||||||
|
|
||||||
if SLAB : begin
|
if SLAB : begin
|
||||||
local sf : SerifFrame.fromDf df top 0 (swSerif -- fine)
|
local sf : SerifFrame.fromDf df top 0 (swSerif -- fine)
|
||||||
|
|
|
@ -4,6 +4,7 @@ export : define [apply] : begin
|
||||||
define $$Capture$$ this
|
define $$Capture$$ this
|
||||||
run-glyph-module "./greek/upper-gamma.mjs"
|
run-glyph-module "./greek/upper-gamma.mjs"
|
||||||
run-glyph-module "./greek/upper-theta.mjs"
|
run-glyph-module "./greek/upper-theta.mjs"
|
||||||
|
run-glyph-module "./greek/upper-lambda-delta.mjs"
|
||||||
run-glyph-module "./greek/upper-xi.mjs"
|
run-glyph-module "./greek/upper-xi.mjs"
|
||||||
run-glyph-module "./greek/pi.mjs"
|
run-glyph-module "./greek/pi.mjs"
|
||||||
run-glyph-module "./greek/upper-sigma.mjs"
|
run-glyph-module "./greek/upper-sigma.mjs"
|
||||||
|
|
152
packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl
Normal file
152
packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl
Normal file
|
@ -0,0 +1,152 @@
|
||||||
|
$$include '../../meta/macros.ptl'
|
||||||
|
|
||||||
|
import [mix fallback SuffixCfg] from "@iosevka/util"
|
||||||
|
import [MathSansSerif] from "@iosevka/glyph/relation"
|
||||||
|
import [bitOr] from "@iosevka/util/mask-bit"
|
||||||
|
|
||||||
|
glyph-module
|
||||||
|
|
||||||
|
glyph-block Letter-Latin-Upper-Lambda-Delta : begin
|
||||||
|
glyph-block-import CommonShapes
|
||||||
|
glyph-block-import Common-Derivatives
|
||||||
|
glyph-block-import Letter-Shared : CreateTurnedLetter
|
||||||
|
glyph-block-import Letter-Latin-Upper-A : AShape ASerifs
|
||||||
|
glyph-block-import Letter-Latin-V : VShapeOutline VShape
|
||||||
|
|
||||||
|
define SLAB-NONE 0
|
||||||
|
define SLAB-TOP 1
|
||||||
|
define SLAB-LEFT 2
|
||||||
|
define SLAB-RIGHT 4
|
||||||
|
define SLAB-CYRL-BGR 8
|
||||||
|
|
||||||
|
define LambeaConfig : SuffixCfg.weave
|
||||||
|
object
|
||||||
|
straight true
|
||||||
|
curly false
|
||||||
|
|
||||||
|
object
|
||||||
|
serifless SLAB-NONE
|
||||||
|
topSerifed SLAB-TOP
|
||||||
|
baseSerifed [bitOr SLAB-LEFT SLAB-RIGHT]
|
||||||
|
triSerifed [bitOr SLAB-TOP SLAB-LEFT SLAB-RIGHT]
|
||||||
|
|
||||||
|
glyph-block-export LambdaShape
|
||||||
|
define [LambdaShape] : with-params [df fBarStraight slabKind top sw] : glyph-proc
|
||||||
|
include : VShape df fBarStraight top sw
|
||||||
|
include : FlipAround df.middle (top / 2)
|
||||||
|
include : ASerifs df top sw slabKind
|
||||||
|
|
||||||
|
define [LambdaMask] : with-params [df fBarStraight top sw] : glyph-proc
|
||||||
|
include : VShapeOutline df fBarStraight top sw
|
||||||
|
include : FlipAround df.middle (top / 2)
|
||||||
|
|
||||||
|
foreach { suffix { fStraightBar slabKind } } [Object.entries LambeaConfig] : do
|
||||||
|
create-glyph "grek/Lambda.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.capital
|
||||||
|
include : LambdaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- fStraightBar
|
||||||
|
slabKind -- slabKind
|
||||||
|
top -- CAP
|
||||||
|
sw -- Stroke
|
||||||
|
|
||||||
|
create-glyph "grek/smcpLambda.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
include : LambdaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- fStraightBar
|
||||||
|
slabKind -- slabKind
|
||||||
|
top -- XH
|
||||||
|
sw -- Stroke
|
||||||
|
|
||||||
|
create-glyph "cyrl/el.BGR.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
include : LambdaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- fStraightBar
|
||||||
|
slabKind -- [bitOr slabKind SLAB-CYRL-BGR]
|
||||||
|
top -- XH
|
||||||
|
sw -- Stroke
|
||||||
|
|
||||||
|
select-variant 'grek/Lambda' 0x39B
|
||||||
|
link-reduced-variant 'grek/Lambda/sansSerif' 'grek/Lambda' MathSansSerif
|
||||||
|
select-variant 'grek/smcpLambda' 0x1D27 (follow -- 'grek/Lambda')
|
||||||
|
|
||||||
|
alias 'cyrl/El.BGR' null 'grek/Lambda'
|
||||||
|
select-variant 'cyrl/el.BGR' (follow -- 'grek/Lambda')
|
||||||
|
|
||||||
|
# Delta
|
||||||
|
glyph-block-export DeltaShape
|
||||||
|
define [DeltaShape] : with-params [df top sw fBarStraight] : union
|
||||||
|
LambdaShape
|
||||||
|
df -- df
|
||||||
|
fBarStraight -- fBarStraight
|
||||||
|
slabKind -- 0
|
||||||
|
top -- top
|
||||||
|
sw -- sw
|
||||||
|
intersection
|
||||||
|
HBar.b 0 df.width 0 sw
|
||||||
|
LambdaMask df fBarStraight top sw
|
||||||
|
|
||||||
|
define DeltaConfig : object
|
||||||
|
straight true
|
||||||
|
curly false
|
||||||
|
|
||||||
|
foreach { suffix fBarStraight } [pairs-of DeltaConfig] : do
|
||||||
|
create-glyph "grek/Delta.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.capital
|
||||||
|
include : DeltaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- fBarStraight
|
||||||
|
top -- CAP
|
||||||
|
sw -- Stroke
|
||||||
|
|
||||||
|
create-glyph "increment.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.capital
|
||||||
|
include : DeltaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- fBarStraight
|
||||||
|
top -- CAP
|
||||||
|
sw -- OperatorStroke
|
||||||
|
|
||||||
|
create-glyph "increment.aplForm.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.oper
|
||||||
|
define shapeHeight : OperTop - OperBot
|
||||||
|
include : DeltaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- fBarStraight
|
||||||
|
top -- shapeHeight
|
||||||
|
sw -- OperatorStroke
|
||||||
|
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
||||||
|
|
||||||
|
create-glyph "increment.aplThin.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.oper
|
||||||
|
define shapeHeight : OperTop - OperBot
|
||||||
|
include : DeltaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- fBarStraight
|
||||||
|
top -- shapeHeight
|
||||||
|
sw -- [AdviceStroke 3.75]
|
||||||
|
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
||||||
|
|
||||||
|
define [CodeNonApl u] : if (para.variantSelector.__enableAplForm === 'enable') null u
|
||||||
|
define [CodeApl u] : if (para.variantSelector.__enableAplForm === 'enable') u null
|
||||||
|
|
||||||
|
select-variant 'grek/Delta' 0x394
|
||||||
|
select-variant 'increment' [CodeNonApl 0x2206] (follow -- 'grek/Delta')
|
||||||
|
select-variant 'increment.aplForm' [CodeApl 0x2206] (follow -- 'grek/Delta')
|
||||||
|
select-variant 'increment.aplThin' (follow -- 'grek/Delta')
|
||||||
|
|
||||||
|
CreateTurnedLetter 'nabla' [CodeNonApl 0x2207] 'increment' HalfAdvance (CAP / 2)
|
||||||
|
CreateTurnedLetter 'nabla.aplForm' [CodeApl 0x2207] 'increment.aplForm' HalfAdvance SymbolMid
|
||||||
|
CreateTurnedLetter 'nabla.aplThin' null 'increment.aplThin' HalfAdvance SymbolMid
|
||||||
|
|
||||||
|
derive-glyphs 'cyrl/De.BGR' null 'grek/Delta' : function [src gr] : glyph-proc
|
||||||
|
include [refer-glyph src] AS_BASE ALSO_METRICS
|
||||||
|
local descenderOverflow : if SLAB SideJut ((RightSB - SB) * 0.075)
|
||||||
|
local xCutLeft SB
|
||||||
|
local xCutRight RightSB
|
||||||
|
include : HBar.b (xCutLeft - descenderOverflow) (xCutRight + descenderOverflow) 0
|
||||||
|
include : VBar.l (xCutLeft - descenderOverflow) (-LongJut + HalfStroke) Stroke
|
||||||
|
include : VBar.r (xCutRight + descenderOverflow) (-LongJut + HalfStroke) Stroke
|
||||||
|
|
|
@ -12,18 +12,17 @@ glyph-block Letter-Latin-Upper-AA-AO : begin
|
||||||
glyph-block-import Letter-Latin-Lower-M : MEnoughSpaceForFullSerifs dfM
|
glyph-block-import Letter-Latin-Lower-M : MEnoughSpaceForFullSerifs dfM
|
||||||
|
|
||||||
do "A glyphs"
|
do "A glyphs"
|
||||||
glyph-block-import Letter-Latin-Upper-A : AConfig AMaskShape ALetterShape
|
glyph-block-import Letter-Latin-Upper-A : AShape AConfig
|
||||||
glyph-block-import Letter-Latin-Upper-A : ABottomRightRemoved ABarPosition
|
|
||||||
|
|
||||||
define [AHalfShape pShift df top fStraightBar slabKind] : begin
|
define [AHalfShape pShift df top fStraightBar slabKind] : begin
|
||||||
local { subDf shift } : SubDfAndShift pShift df
|
local { subDf shift } : SubDfAndShift pShift df
|
||||||
return : with-transform [ApparentTranslate shift 0]
|
return : with-transform [ApparentTranslate shift 0]
|
||||||
ALetterShape subDf fStraightBar slabKind top df.mvs
|
AShape.Letter subDf fStraightBar slabKind top df.mvs
|
||||||
|
|
||||||
define [AHalfShapeMask pShift df top fStraightBar slabKind] : begin
|
define [AHalfShapeMask pShift df top fStraightBar slabKind] : begin
|
||||||
local { subDf shift } : SubDfAndShift pShift df
|
local { subDf shift } : SubDfAndShift pShift df
|
||||||
return : with-transform [ApparentTranslate shift 0]
|
return : with-transform [ApparentTranslate shift 0]
|
||||||
AMaskShape subDf fStraightBar top df.mvs
|
AShape.Mask subDf fStraightBar top df.mvs
|
||||||
|
|
||||||
define SLAB-NONE 0
|
define SLAB-NONE 0
|
||||||
define SLAB-TOP 1
|
define SLAB-TOP 1
|
||||||
|
@ -35,7 +34,7 @@ glyph-block Letter-Latin-Upper-AA-AO : begin
|
||||||
smcpAA { null 'e' XH }
|
smcpAA { null 'e' XH }
|
||||||
|
|
||||||
foreach { prefix { code mk height } } [Object.entries ALetters] : do
|
foreach { prefix { code mk height } } [Object.entries ALetters] : do
|
||||||
foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do
|
foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do
|
||||||
define skLeft : maskOffBits slabKind SLAB-RIGHT
|
define skLeft : maskOffBits slabKind SLAB-RIGHT
|
||||||
define skRight : maskOffBits slabKind SLAB-LEFT
|
define skRight : maskOffBits slabKind SLAB-LEFT
|
||||||
|
|
||||||
|
@ -43,39 +42,39 @@ glyph-block Letter-Latin-Upper-AA-AO : begin
|
||||||
define df : include : DivFrame para.diversityM 3.5
|
define df : include : DivFrame para.diversityM 3.5
|
||||||
include : df.markSet.(mk)
|
include : df.markSet.(mk)
|
||||||
set-base-anchor 'cvDecompose' 0 0
|
set-base-anchor 'cvDecompose' 0 0
|
||||||
include : AHalfShape 0 df height fStraightBar skLeft
|
include : AHalfShape 0 df height bodyShape skLeft
|
||||||
|
|
||||||
create-glyph "\(prefix)/LeftMask.\(suffix)" : glyph-proc
|
create-glyph "\(prefix)/LeftMask.\(suffix)" : glyph-proc
|
||||||
define df : include : DivFrame para.diversityM 3.5
|
define df : include : DivFrame para.diversityM 3.5
|
||||||
include : df.markSet.(mk)
|
include : df.markSet.(mk)
|
||||||
set-base-anchor 'cvDecompose' 0 0
|
set-base-anchor 'cvDecompose' 0 0
|
||||||
include : AHalfShapeMask 0 df height fStraightBar skLeft
|
include : AHalfShapeMask 0 df height bodyShape skLeft
|
||||||
|
|
||||||
create-glyph "\(prefix)/Right.\(suffix)" : glyph-proc
|
create-glyph "\(prefix)/Right.\(suffix)" : glyph-proc
|
||||||
define df : DivFrame para.diversityM 3.5
|
define df : DivFrame para.diversityM 3.5
|
||||||
set-width 0
|
set-width 0
|
||||||
include : df.markSet.(mk)
|
include : df.markSet.(mk)
|
||||||
set-mark-anchor 'cvDecompose' 0 0 0 0
|
set-mark-anchor 'cvDecompose' 0 0 0 0
|
||||||
include : AHalfShape 1 df height fStraightBar skRight
|
include : AHalfShape 1 df height bodyShape skRight
|
||||||
|
|
||||||
create-glyph "\(prefix)/RightMask.\(suffix)" : glyph-proc
|
create-glyph "\(prefix)/RightMask.\(suffix)" : glyph-proc
|
||||||
define df : DivFrame para.diversityM 3.5
|
define df : DivFrame para.diversityM 3.5
|
||||||
set-width 0
|
set-width 0
|
||||||
include : df.markSet.(mk)
|
include : df.markSet.(mk)
|
||||||
set-mark-anchor 'cvDecompose' 0 0 0 0
|
set-mark-anchor 'cvDecompose' 0 0 0 0
|
||||||
include : AHalfShapeMask 1 df height fStraightBar skRight
|
include : AHalfShapeMask 1 df height bodyShape skRight
|
||||||
|
|
||||||
create-glyph "\(prefix)/AU/Left.\(suffix)" : glyph-proc
|
create-glyph "\(prefix)/AU/Left.\(suffix)" : glyph-proc
|
||||||
define df : include : DivFrame para.diversityM 3.5
|
define df : include : DivFrame para.diversityM 3.5
|
||||||
local { subDf shift } : SubDfAndShift 1 df
|
local { subDf shift } : SubDfAndShift 1 df
|
||||||
include : ABottomRightRemoved subDf fStraightBar slabKind CAP df.mvs
|
include : AShape.LetterBottomRightRemoved subDf bodyShape slabKind CAP df.mvs
|
||||||
create-glyph "\(prefix)/AU/LeftMask.\(suffix)" : glyph-proc
|
create-glyph "\(prefix)/AU/LeftMask.\(suffix)" : glyph-proc
|
||||||
define df : include : DivFrame para.diversityM 3.5
|
define df : include : DivFrame para.diversityM 3.5
|
||||||
local { subDf shift } : SubDfAndShift 1 df
|
local { subDf shift } : SubDfAndShift 1 df
|
||||||
include : union
|
include : union
|
||||||
MaskAbove : [ABarPosition slabKind CAP] - df.mvs
|
MaskAbove : [AShape.BarPos bodyShape slabKind CAP] - df.mvs
|
||||||
MaskLeft : subDf.width / 2
|
MaskLeft : subDf.width / 2
|
||||||
include : ABottomRightRemoved subDf fStraightBar slabKind CAP df.mvs
|
include : AShape.LetterBottomRightRemoved subDf bodyShape slabKind CAP df.mvs
|
||||||
|
|
||||||
select-variant "\(prefix)/Left" (follow -- 'A')
|
select-variant "\(prefix)/Left" (follow -- 'A')
|
||||||
select-variant "\(prefix)/LeftMask" (follow -- 'A')
|
select-variant "\(prefix)/LeftMask" (follow -- 'A')
|
||||||
|
|
|
@ -72,6 +72,15 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
|
||||||
corner eleft top
|
corner eleft top
|
||||||
corner eleft 0
|
corner eleft 0
|
||||||
|
|
||||||
|
define [AEAHalfRoundTop df top eleft sw] : glyph-proc
|
||||||
|
include : HBar.t df.leftSB eleft (XH / 2) sw
|
||||||
|
include : dispiro
|
||||||
|
widths.rhs sw
|
||||||
|
flat df.leftSB 0 [heading Upward]
|
||||||
|
curl pre@ (post@ <-> ArchDepthA)
|
||||||
|
arcvh
|
||||||
|
straight.right.end eleft top [heading Rightward]
|
||||||
|
|
||||||
define [AEAHalfSerifs df top slabKind] : glyph-proc
|
define [AEAHalfSerifs df top slabKind] : glyph-proc
|
||||||
define sw : Math.min df.mvs : AdviceStroke2 3 3 top df.div
|
define sw : Math.min df.mvs : AdviceStroke2 3 3 top df.div
|
||||||
define eleft : df.middle - [HSwToV : 0.25 * sw]
|
define eleft : df.middle - [HSwToV : 0.25 * sw]
|
||||||
|
@ -84,12 +93,13 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
|
||||||
[Just SLAB-A-TOP] : begin
|
[Just SLAB-A-TOP] : begin
|
||||||
include : HSerif.lt df.middle top [mix MidJutSide LongJut 0.5]
|
include : HSerif.lt df.middle top [mix MidJutSide LongJut 0.5]
|
||||||
|
|
||||||
define [AEAHalf df top straight slabKind] : glyph-proc
|
define [AEAHalf df bodyShape top slabKind] : glyph-proc
|
||||||
define sw : AESW df top
|
define sw : AESW df top
|
||||||
define eleft : df.middle - [HSwToV : 0.25 * sw]
|
define eleft : df.middle - [HSwToV : 0.25 * sw]
|
||||||
include : if straight
|
include : match bodyShape
|
||||||
AEAHalfStraight df top eleft sw
|
[Just 0] : AEAHalfCurly df top eleft sw
|
||||||
AEAHalfCurly df top eleft sw
|
[Just 1] : AEAHalfStraight df top eleft sw
|
||||||
|
[Just 2] : AEAHalfRoundTop df top eleft sw
|
||||||
include : AEAHalfSerifs df top slabKind
|
include : AEAHalfSerifs df top slabKind
|
||||||
|
|
||||||
define [AEEHalf df top slabKind] : glyph-proc
|
define [AEEHalf df top slabKind] : glyph-proc
|
||||||
|
@ -139,31 +149,33 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
|
||||||
eject-contour 'serifRT'
|
eject-contour 'serifRT'
|
||||||
|
|
||||||
define AConfig : object
|
define AConfig : object
|
||||||
straightSerifless { true SLAB-A-NONE }
|
straightSerifless { 1 SLAB-A-NONE }
|
||||||
curlySerifless { false SLAB-A-NONE }
|
curlySerifless { 0 SLAB-A-NONE }
|
||||||
straightTopSerifed { true SLAB-A-TOP }
|
roundTopSerifless { 2 SLAB-A-NONE }
|
||||||
curlyTopSerifed { false SLAB-A-TOP }
|
straightTopSerifed { 1 SLAB-A-TOP }
|
||||||
straightBaseSerifed { true SLAB-A-BASE }
|
curlyTopSerifed { 0 SLAB-A-TOP }
|
||||||
curlyBaseSerifed { false SLAB-A-BASE }
|
straightBaseSerifed { 1 SLAB-A-BASE }
|
||||||
straightTriSerifed { true SLAB-A-TRI }
|
curlyBaseSerifed { 0 SLAB-A-BASE }
|
||||||
curlyTriSerifed { false SLAB-A-TRI }
|
roundTopBaseSerifed { 2 SLAB-A-BASE }
|
||||||
|
straightTriSerifed { 1 SLAB-A-TRI }
|
||||||
|
curlyTriSerifed { 0 SLAB-A-TRI }
|
||||||
|
|
||||||
define EConfig : object
|
define EConfig : object
|
||||||
serifless { SLAB-E-NONE }
|
serifless { SLAB-E-NONE }
|
||||||
serifed { SLAB-E-ALL }
|
serifed { SLAB-E-ALL }
|
||||||
serifedCapped { SLAB-E-CAPPED }
|
serifedCapped { SLAB-E-CAPPED }
|
||||||
|
|
||||||
foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do
|
foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do
|
||||||
create-glyph "AE/AHalf.\(suffix)" : glyph-proc
|
create-glyph "AE/AHalf.\(suffix)" : glyph-proc
|
||||||
define df : include : DivFrame para.diversityM 3
|
define df : include : DivFrame para.diversityM 3
|
||||||
include : df.markSet.capital
|
include : df.markSet.capital
|
||||||
set-base-anchor 'cvDecompose' 0 0
|
set-base-anchor 'cvDecompose' 0 0
|
||||||
include : AEAHalf df CAP fStraightBar slabKind
|
include : AEAHalf df bodyShape CAP slabKind
|
||||||
create-glyph "smcpAE/AHalf.\(suffix)" : glyph-proc
|
create-glyph "smcpAE/AHalf.\(suffix)" : glyph-proc
|
||||||
define df : include : DivFrame para.diversityM 3
|
define df : include : DivFrame para.diversityM 3
|
||||||
include : df.markSet.e
|
include : df.markSet.e
|
||||||
set-base-anchor 'cvDecompose' 0 0
|
set-base-anchor 'cvDecompose' 0 0
|
||||||
include : AEAHalf df XH fStraightBar slabKind
|
include : AEAHalf df bodyShape XH slabKind
|
||||||
|
|
||||||
foreach { suffix { slabKind } } [Object.entries EConfig] : do
|
foreach { suffix { slabKind } } [Object.entries EConfig] : do
|
||||||
create-glyph "AE/EHalf.\(suffix)" : glyph-proc
|
create-glyph "AE/EHalf.\(suffix)" : glyph-proc
|
||||||
|
|
|
@ -15,34 +15,109 @@ glyph-block Letter-Latin-Upper-A : begin
|
||||||
glyph-block-import Letter-Shared-Shapes : SerifFrame
|
glyph-block-import Letter-Shared-Shapes : SerifFrame
|
||||||
glyph-block-import Letter-Latin-V : VShapeOutline VShape VCornerHalfWidth
|
glyph-block-import Letter-Latin-V : VShapeOutline VShape VCornerHalfWidth
|
||||||
|
|
||||||
|
define BODY-CURLY 0
|
||||||
|
define BODY-STRAIGHT 1
|
||||||
|
define BODY-ROUND-TOP 2
|
||||||
|
|
||||||
define SLAB-NONE 0
|
define SLAB-NONE 0
|
||||||
define SLAB-TOP 1
|
define SLAB-TOP 1
|
||||||
define SLAB-LEFT 2
|
define SLAB-LEFT 2
|
||||||
define SLAB-RIGHT 4
|
define SLAB-RIGHT 4
|
||||||
define SLAB-CYRL-BGR 8
|
define SLAB-CYRL-BGR 8
|
||||||
|
|
||||||
glyph-block-export AMaskShape
|
glyph-block-export AShape
|
||||||
define [AMaskShape] : with-params [df fBarStraight top sw] : new-glyph : glyph-proc
|
define AShape : namespace
|
||||||
include : VShapeOutline df fBarStraight top sw
|
export : define [BarPos bodyShape slabKind top] : begin
|
||||||
include : FlipAround (df.width / 2) (top / 2)
|
local fBaseSlabs : maskBits slabKind : bitOr SLAB-LEFT SLAB-RIGHT
|
||||||
|
return : mix [if fBaseSlabs Stroke 0] top : match bodyShape
|
||||||
|
[Just BODY-ROUND-TOP] : Math.min 0.5 (XH * 0.75 / CAP)
|
||||||
|
__ : XH / 2 / CAP
|
||||||
|
|
||||||
glyph-block-export ABarPosition
|
export : define [Mask df bodyShape top sw] : match bodyShape
|
||||||
define [ABarPosition slabKind top] : begin
|
([Just BODY-CURLY] || [Just BODY-STRAIGHT]) : new-glyph : glyph-proc
|
||||||
local fBaseSlabs : maskBits slabKind : bitOr SLAB-LEFT SLAB-RIGHT
|
include : VShapeOutline df bodyShape top sw
|
||||||
return : mix [if fBaseSlabs Stroke 0] top (XH / 2 / CAP)
|
include : FlipAround df.middle (top / 2)
|
||||||
|
[Just BODY-ROUND-TOP] : spiro-outline
|
||||||
|
corner df.leftSB 0
|
||||||
|
curl pre@ (post@ <-> ArchDepthA)
|
||||||
|
arch.rhs top (sw -- sw)
|
||||||
|
flat post@ (pre@ <-> ArchDepthB)
|
||||||
|
corner df.rightSB 0
|
||||||
|
|
||||||
glyph-block-export AConfig
|
export : define [Outer df bodyShape top sw] : match bodyShape
|
||||||
define AConfig : SuffixCfg.weave
|
([Just BODY-CURLY] || [Just BODY-STRAIGHT]) : new-glyph : glyph-proc
|
||||||
object
|
include : VShape df bodyShape top sw
|
||||||
straight true
|
include : FlipAround df.middle (top / 2)
|
||||||
curly false
|
[Just BODY-ROUND-TOP] : dispiro
|
||||||
|
widths.rhs sw
|
||||||
|
flat df.leftSB 0 [heading Upward]
|
||||||
|
curl pre@ (post@ <-> ArchDepthA)
|
||||||
|
arch.rhs top (sw -- sw)
|
||||||
|
flat post@ (pre@ <-> ArchDepthB)
|
||||||
|
curl df.rightSB 0 [heading Downward]
|
||||||
|
|
||||||
object
|
define [CrossBar df bodyShape top sw] : begin
|
||||||
serifless SLAB-NONE
|
define yBar : BarPos bodyShape slabKind top
|
||||||
topSerifed SLAB-TOP
|
return : tagged 'crossBar'
|
||||||
baseSerifed [bitOr SLAB-LEFT SLAB-RIGHT]
|
intersection [HBar.t 0 df.width yBar sw] [Mask df bodyShape top sw]
|
||||||
triSerifed [bitOr SLAB-TOP SLAB-LEFT SLAB-RIGHT]
|
export : define [Letter df bodyShape slabKind top sw] : new-glyph : glyph-proc
|
||||||
|
include : Outer df bodyShape top sw
|
||||||
|
include : CrossBar df bodyShape top sw
|
||||||
|
include : ASerifs df top sw slabKind
|
||||||
|
|
||||||
|
define [CuspBottomRightRemovedImpl df bodyShape slabKind top sw] : new-glyph : glyph-proc
|
||||||
|
define yBar : BarPos bodyShape slabKind top
|
||||||
|
include : VShape df bodyShape top sw
|
||||||
|
eject-contour 'strokeDown'
|
||||||
|
include : FlipAround df.middle (top / 2)
|
||||||
|
|
||||||
|
local rightStrokeKnots : begin
|
||||||
|
local s : Seg (df.middle + VCornerHalfWidth * sw / Stroke) top df.rightSB (yBar - sw)
|
||||||
|
list
|
||||||
|
s.z (-1) flat
|
||||||
|
s.z 0 flat
|
||||||
|
s.zz 0.55 [StrokeWidthBlend 0.48 0.45] [if bodyShape curl g4]
|
||||||
|
s.z 1 straight.down.end
|
||||||
|
|
||||||
|
include : intersection
|
||||||
|
MaskBelow top
|
||||||
|
MaskAbove (yBar - sw)
|
||||||
|
dispiro [widths.rhs sw] rightStrokeKnots
|
||||||
|
|
||||||
|
include : tagged 'crossBar'
|
||||||
|
intersection
|
||||||
|
HBar.t 0 df.width yBar sw
|
||||||
|
union
|
||||||
|
AShape.Mask df bodyShape top sw
|
||||||
|
intersection
|
||||||
|
MaskRight df.middle
|
||||||
|
MaskAbove (yBar - sw)
|
||||||
|
spiro-outline rightStrokeKnots
|
||||||
|
corner df.rightSB 0
|
||||||
|
corner 0 0
|
||||||
|
corner 0 top
|
||||||
|
|
||||||
|
include : ASerifs df top sw slabKind
|
||||||
|
eject-contour 'serifRB'
|
||||||
|
|
||||||
|
define [RoundTopBottomRightRemovedImpl df slabKind top sw] : new-glyph : glyph-proc
|
||||||
|
define yBar : BarPos BODY-ROUND-TOP slabKind top
|
||||||
|
include : difference
|
||||||
|
Outer df BODY-ROUND-TOP top sw
|
||||||
|
intersection
|
||||||
|
MaskRight df.middle
|
||||||
|
MaskBelow (yBar - sw)
|
||||||
|
include : CrossBar df BODY-ROUND-TOP top sw
|
||||||
|
include : ASerifs df top sw slabKind
|
||||||
|
eject-contour 'serifRB'
|
||||||
|
|
||||||
|
export : define [LetterBottomRightRemoved df bodyShape slabKind top sw] : match bodyShape
|
||||||
|
([Just BODY-CURLY] || [Just BODY-STRAIGHT]) : begin
|
||||||
|
return : CuspBottomRightRemovedImpl df bodyShape slabKind top sw
|
||||||
|
[Just BODY-ROUND-TOP] : begin
|
||||||
|
return : RoundTopBottomRightRemovedImpl df slabKind top sw
|
||||||
|
|
||||||
|
glyph-block-export ASerifs
|
||||||
define [ASerifs df top sw slabKind] : glyph-proc : begin
|
define [ASerifs df top sw slabKind] : glyph-proc : begin
|
||||||
local sf : SerifFrame.fromDf df top 0
|
local sf : SerifFrame.fromDf df top 0
|
||||||
if [maskBits slabKind SLAB-LEFT] : include
|
if [maskBits slabKind SLAB-LEFT] : include
|
||||||
|
@ -54,60 +129,20 @@ glyph-block Letter-Latin-Upper-A : begin
|
||||||
: then : HSerif.lt df.middle top (MidJutSide + [HSwToV : 0.25 * sw]) sf.swSerif
|
: then : HSerif.lt df.middle top (MidJutSide + [HSwToV : 0.25 * sw]) sf.swSerif
|
||||||
: else : HSerif.lt df.middle top [mix MidJutSide LongJut 0.5] sf.swSerif
|
: else : HSerif.lt df.middle top [mix MidJutSide LongJut 0.5] sf.swSerif
|
||||||
|
|
||||||
glyph-block-export ABottomRightRemoved
|
glyph-block-export AConfig
|
||||||
define [ABottomRightRemoved] : with-params [df fStraightBar slabKind top sw] : new-glyph : glyph-proc
|
define AConfig : SuffixCfg.weave
|
||||||
define yBar : ABarPosition slabKind top
|
object
|
||||||
include : VShape df fStraightBar top sw
|
straight BODY-STRAIGHT
|
||||||
eject-contour 'strokeDown'
|
curly BODY-CURLY
|
||||||
include : FlipAround df.middle (top / 2)
|
roundTop BODY-ROUND-TOP
|
||||||
|
|
||||||
local rightStrokeKnots : begin
|
object
|
||||||
local s : Seg (df.middle + VCornerHalfWidth * sw / Stroke) top df.rightSB (yBar - sw)
|
serifless SLAB-NONE
|
||||||
list
|
topSerifed SLAB-TOP
|
||||||
s.z (-1) flat
|
baseSerifed [bitOr SLAB-LEFT SLAB-RIGHT]
|
||||||
s.z 0 flat
|
triSerifed [bitOr SLAB-TOP SLAB-LEFT SLAB-RIGHT]
|
||||||
s.zz 0.55 [StrokeWidthBlend 0.48 0.45] [if fStraightBar curl g4]
|
|
||||||
s.z 1 straight.down.end
|
|
||||||
|
|
||||||
include : intersection
|
foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do
|
||||||
MaskBelow top
|
|
||||||
MaskAbove (yBar - sw)
|
|
||||||
dispiro [widths.rhs sw] rightStrokeKnots
|
|
||||||
|
|
||||||
include : tagged 'crossBar'
|
|
||||||
intersection
|
|
||||||
HBar.t 0 df.width yBar sw
|
|
||||||
union
|
|
||||||
AMaskShape df fStraightBar top sw
|
|
||||||
intersection
|
|
||||||
MaskRight df.middle
|
|
||||||
MaskAbove (yBar - sw)
|
|
||||||
spiro-outline rightStrokeKnots
|
|
||||||
corner df.rightSB 0
|
|
||||||
corner 0 0
|
|
||||||
corner 0 top
|
|
||||||
|
|
||||||
include : ASerifs df top sw slabKind
|
|
||||||
eject-contour 'serifRB'
|
|
||||||
|
|
||||||
return : yBar - sw
|
|
||||||
|
|
||||||
glyph-block-export ALetterShape
|
|
||||||
define [ALetterShape] : with-params [df fStraightBar slabKind top sw] : new-glyph : glyph-proc
|
|
||||||
include : VShape df fStraightBar top sw
|
|
||||||
include : FlipAround df.middle (top / 2)
|
|
||||||
define yBar : ABarPosition slabKind top
|
|
||||||
include : tagged 'crossBar'
|
|
||||||
intersection [HBar.t 0 df.width yBar sw] [AMaskShape df fStraightBar top sw]
|
|
||||||
include : ASerifs df top sw slabKind
|
|
||||||
|
|
||||||
glyph-block-export LambdaShape
|
|
||||||
define [LambdaShape] : with-params [df fBarStraight top sw slabKind] : glyph-proc
|
|
||||||
include : VShape df fBarStraight top sw
|
|
||||||
include : FlipAround df.middle (top / 2)
|
|
||||||
include : ASerifs df top sw slabKind
|
|
||||||
|
|
||||||
foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do
|
|
||||||
define [AShapeImpl mak top fGrek fOverlays] : glyph-proc
|
define [AShapeImpl mak top fGrek fOverlays] : glyph-proc
|
||||||
local df : DivFrame 1
|
local df : DivFrame 1
|
||||||
include : df.markSet.(mak)
|
include : df.markSet.(mak)
|
||||||
|
@ -115,15 +150,10 @@ glyph-block Letter-Latin-Upper-A : begin
|
||||||
if fGrek : include : SetGrekUpperTonos
|
if fGrek : include : SetGrekUpperTonos
|
||||||
(df.rightSB - df.leftSB) * [if [maskBits slabKind SLAB-TOP] 0 0.2]
|
(df.rightSB - df.leftSB) * [if [maskBits slabKind SLAB-TOP] 0 0.2]
|
||||||
|
|
||||||
include : ALetterShape
|
include : AShape.Letter df bodyShape slabKind top Stroke
|
||||||
df -- df
|
|
||||||
top -- top
|
|
||||||
sw -- Stroke
|
|
||||||
fStraightBar -- fStraightBar
|
|
||||||
slabKind -- slabKind
|
|
||||||
|
|
||||||
if fOverlays : begin
|
if fOverlays : begin
|
||||||
define yBar : ABarPosition slabKind top
|
define yBar : AShape.BarPos bodyShape slabKind top
|
||||||
eject-contour 'crossBar'
|
eject-contour 'crossBar'
|
||||||
include : HOverlayBar [mix 0 SB 0.5] [mix Width RightSB 0.5] (yBar - HalfStroke + 0.5 * OverlayStroke)
|
include : HOverlayBar [mix 0 SB 0.5] [mix Width RightSB 0.5] (yBar - HalfStroke + 0.5 * OverlayStroke)
|
||||||
include : HOverlayBar [mix 0 SB 0.5] [mix Width RightSB 0.5] [mix yBar top 0.25]
|
include : HOverlayBar [mix 0 SB 0.5] [mix Width RightSB 0.5] [mix yBar top 0.25]
|
||||||
|
@ -134,33 +164,6 @@ glyph-block Letter-Latin-Upper-A : begin
|
||||||
|
|
||||||
create-glyph "currency/australSign.\(suffix)" : AShapeImpl "capital" CAP false true
|
create-glyph "currency/australSign.\(suffix)" : AShapeImpl "capital" CAP false true
|
||||||
|
|
||||||
create-glyph "grek/Lambda.\(suffix)" : glyph-proc
|
|
||||||
include : MarkSet.capital
|
|
||||||
include : LambdaShape
|
|
||||||
df -- [DivFrame 1]
|
|
||||||
fBarStraight -- fStraightBar
|
|
||||||
top -- CAP
|
|
||||||
sw -- Stroke
|
|
||||||
slabKind -- slabKind
|
|
||||||
|
|
||||||
create-glyph "grek/smcpLambda.\(suffix)" : glyph-proc
|
|
||||||
include : MarkSet.e
|
|
||||||
include : LambdaShape
|
|
||||||
df -- [DivFrame 1]
|
|
||||||
fBarStraight -- fStraightBar
|
|
||||||
top -- XH
|
|
||||||
sw -- Stroke
|
|
||||||
slabKind -- slabKind
|
|
||||||
|
|
||||||
create-glyph "cyrl/el.BGR.\(suffix)" : glyph-proc
|
|
||||||
include : MarkSet.e
|
|
||||||
include : LambdaShape
|
|
||||||
df -- [DivFrame 1]
|
|
||||||
fBarStraight -- fStraightBar
|
|
||||||
top -- XH
|
|
||||||
sw -- Stroke
|
|
||||||
slabKind -- [bitOr slabKind SLAB-CYRL-BGR]
|
|
||||||
|
|
||||||
select-variant 'A' 'A'
|
select-variant 'A' 'A'
|
||||||
link-reduced-variant 'A/sansSerif' 'A' MathSansSerif
|
link-reduced-variant 'A/sansSerif' 'A' MathSansSerif
|
||||||
select-variant 'smcpA' 0x1D00 (follow -- 'A')
|
select-variant 'smcpA' 0x1D00 (follow -- 'A')
|
||||||
|
@ -170,88 +173,6 @@ glyph-block Letter-Latin-Upper-A : begin
|
||||||
alias 'cyrl/A' 0x410 'A'
|
alias 'cyrl/A' 0x410 'A'
|
||||||
CreateTurnedLetter 'turnA' 0x2C6F 'A' HalfAdvance (CAP / 2)
|
CreateTurnedLetter 'turnA' 0x2C6F 'A' HalfAdvance (CAP / 2)
|
||||||
|
|
||||||
select-variant 'grek/Lambda' 0x39B
|
|
||||||
link-reduced-variant 'grek/Lambda/sansSerif' 'grek/Lambda' MathSansSerif
|
|
||||||
select-variant 'grek/smcpLambda' 0x1D27 (follow -- 'grek/Lambda')
|
|
||||||
|
|
||||||
alias 'cyrl/El.BGR' null 'grek/Lambda'
|
|
||||||
select-variant 'cyrl/el.BGR' (follow -- 'grek/Lambda')
|
|
||||||
|
|
||||||
# Delta
|
|
||||||
glyph-block-export DeltaShape
|
|
||||||
define [DeltaShape] : with-params [df top sw fBarStraight] : union
|
|
||||||
LambdaShape
|
|
||||||
df -- df
|
|
||||||
fBarStraight -- fBarStraight
|
|
||||||
top -- top
|
|
||||||
sw -- sw
|
|
||||||
slab -- false
|
|
||||||
intersection
|
|
||||||
HBar.b 0 df.width 0 sw
|
|
||||||
AMaskShape df fBarStraight top sw
|
|
||||||
|
|
||||||
define DeltaConfig : object
|
|
||||||
straight true
|
|
||||||
curly false
|
|
||||||
|
|
||||||
foreach { suffix fBarStraight } [pairs-of DeltaConfig] : do
|
|
||||||
create-glyph "grek/Delta.\(suffix)" : glyph-proc
|
|
||||||
include : MarkSet.capital
|
|
||||||
include : DeltaShape
|
|
||||||
df -- [DivFrame 1]
|
|
||||||
fBarStraight -- fBarStraight
|
|
||||||
top -- CAP
|
|
||||||
sw -- Stroke
|
|
||||||
|
|
||||||
create-glyph "increment.\(suffix)" : glyph-proc
|
|
||||||
include : MarkSet.capital
|
|
||||||
include : DeltaShape
|
|
||||||
df -- [DivFrame 1]
|
|
||||||
fBarStraight -- fBarStraight
|
|
||||||
top -- CAP
|
|
||||||
sw -- OperatorStroke
|
|
||||||
|
|
||||||
create-glyph "increment.aplForm.\(suffix)" : glyph-proc
|
|
||||||
include : MarkSet.oper
|
|
||||||
define shapeHeight : OperTop - OperBot
|
|
||||||
include : DeltaShape
|
|
||||||
df -- [DivFrame 1]
|
|
||||||
fBarStraight -- fBarStraight
|
|
||||||
top -- shapeHeight
|
|
||||||
sw -- OperatorStroke
|
|
||||||
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
|
||||||
|
|
||||||
create-glyph "increment.aplThin.\(suffix)" : glyph-proc
|
|
||||||
include : MarkSet.oper
|
|
||||||
define shapeHeight : OperTop - OperBot
|
|
||||||
include : DeltaShape
|
|
||||||
df -- [DivFrame 1]
|
|
||||||
fBarStraight -- fBarStraight
|
|
||||||
top -- shapeHeight
|
|
||||||
sw -- [AdviceStroke 3.75]
|
|
||||||
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
|
||||||
|
|
||||||
define [CodeNonApl u] : if (para.variantSelector.__enableAplForm === 'enable') null u
|
|
||||||
define [CodeApl u] : if (para.variantSelector.__enableAplForm === 'enable') u null
|
|
||||||
|
|
||||||
select-variant 'grek/Delta' 0x394
|
|
||||||
select-variant 'increment' [CodeNonApl 0x2206] (follow -- 'grek/Delta')
|
|
||||||
select-variant 'increment.aplForm' [CodeApl 0x2206] (follow -- 'grek/Delta')
|
|
||||||
select-variant 'increment.aplThin' (follow -- 'grek/Delta')
|
|
||||||
|
|
||||||
CreateTurnedLetter 'nabla' [CodeNonApl 0x2207] 'increment' HalfAdvance (CAP / 2)
|
|
||||||
CreateTurnedLetter 'nabla.aplForm' [CodeApl 0x2207] 'increment.aplForm' HalfAdvance SymbolMid
|
|
||||||
CreateTurnedLetter 'nabla.aplThin' null 'increment.aplThin' HalfAdvance SymbolMid
|
|
||||||
|
|
||||||
derive-glyphs 'cyrl/De.BGR' null 'grek/Delta' : function [src gr] : glyph-proc
|
|
||||||
include [refer-glyph src] AS_BASE ALSO_METRICS
|
|
||||||
local descenderOverflow : if SLAB SideJut ((RightSB - SB) * 0.075)
|
|
||||||
local xCutLeft SB
|
|
||||||
local xCutRight RightSB
|
|
||||||
include : HBar.b (xCutLeft - descenderOverflow) (xCutRight + descenderOverflow) 0
|
|
||||||
include : VBar.l (xCutLeft - descenderOverflow) (-LongJut + HalfStroke) Stroke
|
|
||||||
include : VBar.r (xCutRight + descenderOverflow) (-LongJut + HalfStroke) Stroke
|
|
||||||
|
|
||||||
glyph-block-import Letter-Blackboard : BBS BBD
|
glyph-block-import Letter-Blackboard : BBS BBD
|
||||||
glyph-block-import Letter-Latin-V : BBVShape BBVInnerMaskShape
|
glyph-block-import Letter-Latin-V : BBVShape BBVInnerMaskShape
|
||||||
|
|
||||||
|
|
|
@ -7,8 +7,6 @@ glyph-module
|
||||||
glyph-block Symbol-Math-Letter-Like : begin
|
glyph-block Symbol-Math-Letter-Like : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Letter-Latin-Upper-A : DeltaShape
|
|
||||||
glyph-block-import Letter-Latin-Upper-E : RevEShape
|
|
||||||
glyph-block-import Digits-Zero : OvalShapeT
|
glyph-block-import Digits-Zero : OvalShapeT
|
||||||
|
|
||||||
turned 'forall' 0x2200 'A.straightSerifless' Middle (CAP / 2)
|
turned 'forall' 0x2200 'A.straightSerifless' Middle (CAP / 2)
|
||||||
|
|
|
@ -567,6 +567,13 @@ selectorAffix.A = "curly"
|
||||||
selectorAffix."A/sansSerif" = "curly"
|
selectorAffix."A/sansSerif" = "curly"
|
||||||
selectorAffix.AE = "curly"
|
selectorAffix.AE = "curly"
|
||||||
|
|
||||||
|
[prime.capital-a.variants-buildup.stages.body.round-top]
|
||||||
|
rank = 3
|
||||||
|
descriptionAffix = "round top"
|
||||||
|
selectorAffix.A = "roundTop"
|
||||||
|
selectorAffix."A/sansSerif" = "roundTop"
|
||||||
|
selectorAffix.AE = "curly"
|
||||||
|
|
||||||
[prime.capital-a.variants-buildup.stages.serifs.serifless]
|
[prime.capital-a.variants-buildup.stages.serifs.serifless]
|
||||||
rank = 1
|
rank = 1
|
||||||
descriptionAffix = "serifs"
|
descriptionAffix = "serifs"
|
||||||
|
@ -578,6 +585,7 @@ selectorAffix.AE = ""
|
||||||
[prime.capital-a.variants-buildup.stages.serifs.top-serifed]
|
[prime.capital-a.variants-buildup.stages.serifs.top-serifed]
|
||||||
rank = 2
|
rank = 2
|
||||||
descriptionAffix = "serifs at top"
|
descriptionAffix = "serifs at top"
|
||||||
|
enableIf = [{ body = "NOT round-top" }]
|
||||||
selectorAffix.A = "topSerifed"
|
selectorAffix.A = "topSerifed"
|
||||||
selectorAffix."A/sansSerif" = "serifless"
|
selectorAffix."A/sansSerif" = "serifless"
|
||||||
selectorAffix.AE = ""
|
selectorAffix.AE = ""
|
||||||
|
@ -592,6 +600,7 @@ selectorAffix.AE = ""
|
||||||
[prime.capital-a.variants-buildup.stages.serifs.tri-serifed]
|
[prime.capital-a.variants-buildup.stages.serifs.tri-serifed]
|
||||||
rank = 4
|
rank = 4
|
||||||
descriptionAffix = "serifs at both top and base"
|
descriptionAffix = "serifs at both top and base"
|
||||||
|
enableIf = [{ body = "NOT round-top" }]
|
||||||
selectorAffix.A = "triSerifed"
|
selectorAffix.A = "triSerifed"
|
||||||
selectorAffix."A/sansSerif" = "serifless"
|
selectorAffix."A/sansSerif" = "serifless"
|
||||||
selectorAffix.AE = ""
|
selectorAffix.AE = ""
|
||||||
|
@ -9812,6 +9821,7 @@ tag = "ss10"
|
||||||
description = "Envy Code R Style"
|
description = "Envy Code R Style"
|
||||||
|
|
||||||
[composite.ss10.design]
|
[composite.ss10.design]
|
||||||
|
capital-a = "round-top-serifless"
|
||||||
capital-i = "serifed"
|
capital-i = "serifed"
|
||||||
capital-j = "serifless"
|
capital-j = "serifless"
|
||||||
capital-k = "symmetric-touching-serifless"
|
capital-k = "symmetric-touching-serifless"
|
||||||
|
@ -9852,6 +9862,7 @@ pilcrow = "low"
|
||||||
micro-sign = "toothless-rounded-serifless"
|
micro-sign = "toothless-rounded-serifless"
|
||||||
|
|
||||||
[composite.ss10.italic]
|
[composite.ss10.italic]
|
||||||
|
capital-a = "straight-serifless"
|
||||||
a = "single-storey-tailed"
|
a = "single-storey-tailed"
|
||||||
i = "serifed-flat-tailed"
|
i = "serifed-flat-tailed"
|
||||||
j = "serifed"
|
j = "serifed"
|
||||||
|
@ -9860,6 +9871,7 @@ cyrl-a = "single-storey-tailed"
|
||||||
cyrl-u = "cursive-flat-hook-serifless"
|
cyrl-u = "cursive-flat-hook-serifless"
|
||||||
|
|
||||||
[composite.ss10.slab-override.design]
|
[composite.ss10.slab-override.design]
|
||||||
|
capital-a = "round-top-base-serifed"
|
||||||
capital-j = "serifed"
|
capital-j = "serifed"
|
||||||
capital-k = "symmetric-touching-serifed"
|
capital-k = "symmetric-touching-serifed"
|
||||||
capital-w = "straight-vertical-sides-serifed"
|
capital-w = "straight-vertical-sides-serifed"
|
||||||
|
@ -9882,6 +9894,7 @@ seven = "straight-serifed"
|
||||||
micro-sign = "toothless-rounded-serifed"
|
micro-sign = "toothless-rounded-serifed"
|
||||||
|
|
||||||
[composite.ss10.slab-override.italic]
|
[composite.ss10.slab-override.italic]
|
||||||
|
capital-a = "straight-base-serifed"
|
||||||
g = "single-storey-flat-hook-serifless"
|
g = "single-storey-flat-hook-serifless"
|
||||||
i = "serifed-flat-tailed"
|
i = "serifed-flat-tailed"
|
||||||
k = "symmetric-connected-top-left-and-bottom-right-serifed"
|
k = "symmetric-connected-top-left-and-bottom-right-serifed"
|
||||||
|
|
|
@ -1386,7 +1386,7 @@ const CompiledJsFromPtl = file.make(
|
||||||
await target.need(MacroPtlFiles, sfu(ptl));
|
await target.need(MacroPtlFiles, sfu(ptl));
|
||||||
|
|
||||||
echo.action(echo.hl.command("Compile Script"), ptl);
|
echo.action(echo.hl.command("Compile Script"), ptl);
|
||||||
await Promise.all([rm(oldOutPath), rm(out.full)]); // Remove old output file
|
await rm(oldOutPath); // Remove old output file
|
||||||
await target.need(de(Path.dirname(out.full))); // Create output directory
|
await target.need(de(Path.dirname(out.full))); // Create output directory
|
||||||
await silently.run(PATEL_C, "--strict", "--esm", ptl, "-o", out.full);
|
await silently.run(PATEL_C, "--strict", "--esm", ptl, "-o", out.full);
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue