This commit is contained in:
be5invis 2023-03-30 20:40:35 -07:00
parent 6004b74c65
commit fd8317d0dd
10 changed files with 138 additions and 103 deletions

View file

@ -7,39 +7,47 @@ glyph-module
glyph-block Letter-Cyrillic-E : begin glyph-block Letter-Cyrillic-E : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Letter-Latin-C : CLetter glyph-block-import Letter-Latin-C : CLetterForm CConfig
glyph-block-import Letter-Cyrillic-Iotified-A : Iotified glyph-block-import Letter-Cyrillic-Iotified-A : Iotified
foreach { suffix { sty styBot } } [Object.entries CLetter.Config] : do foreach { suffix { sty styBot } } [Object.entries CConfig] : do
create-glyph "cyrl/E.\(suffix)" : glyph-proc create-glyph "cyrl/E.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : CLetter.Shape [DivFrame 1] sty styBot CAP 0 ArchDepthA ArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot CAP 0
include : HBar.m [mix SB RightSB 0.35] RightSB (CAP / 2) include : lf.revFull
include : HBar.m [mix SB RightSB 0.35] RightSB (CAP / 2) [AdviceStroke2 2 3 CAP]
create-glyph "cyrl/e.\(suffix)" : glyph-proc create-glyph "cyrl/e.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
set-base-anchor 'cvDecompose' 0 0 set-base-anchor 'cvDecompose' 0 0
include : CLetter.Shape [DivFrame 1] sty styBot XH 0 SmallArchDepthA SmallArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot XH 0
include : HBar.m [mix SB RightSB 0.35] RightSB (XH / 2) ada -- SmallArchDepthA
adb -- SmallArchDepthB
include : lf.revFull
include : HBar.m [mix SB RightSB 0.35] RightSB (XH / 2) [AdviceStroke2 2 3 XH]
create-glyph "cyrl/Ye.\(suffix)" : glyph-proc create-glyph "cyrl/Ye.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : CLetter.RevShape [DivFrame 1] sty styBot CAP 0 ArchDepthA ArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot CAP 0
include : HBar.m SB [mix RightSB SB 0.35] (CAP / 2) [AdviceStroke2 2 4 CAP] include : lf.full
include : HBar.m SB [mix RightSB SB 0.35] (CAP / 2) [AdviceStroke2 2 3 CAP]
create-glyph "cyrl/ye.\(suffix)" : glyph-proc create-glyph "cyrl/ye.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
set-base-anchor 'cvDecompose' 0 0 set-base-anchor 'cvDecompose' 0 0
include : CLetter.RevShape [DivFrame 1] sty styBot XH 0 SmallArchDepthA SmallArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot XH 0
include : HBar.m SB [mix RightSB SB 0.35] (XH / 2) [AdviceStroke2 2 4 XH] ada -- SmallArchDepthA
adb -- SmallArchDepthB
include : lf.full
include : HBar.m SB [mix RightSB SB 0.35] (XH / 2) [AdviceStroke2 2 3 XH]
define [IotifiedEShape fCapital df top ada adb] : glyph-proc define [IotifiedEShape fCapital df top ada adb] : glyph-proc
local gap : 0.25 * (df.width - 2 * df.leftSB - 2.5 * df.mvs) local gap : 0.25 * (df.width - 2 * df.leftSB - 2.5 * df.mvs)
define divSub : (df.width - gap - df.mvs) / Width define divSub : (df.width - gap - df.mvs) / Width
define dfSub : DivFrame divSub 2 define dfSub : DivFrame divSub 2
include : CLetter.Shape dfSub sty styBot top 0 ada adb Hook df.mvs
include : Translate (Width * (df.div - divSub)) 0 local lf : CLetterForm dfSub sty styBot top 0 (ada -- ada) (adb -- adb) (sw -- df.mvs)
include : WithTransform [ApparentTranslate (Width * (df.div - divSub)) 0] : lf.full
local useItalicShape : [not fCapital] && para.isItalic local useItalicShape : [not fCapital] && para.isItalic
include : Iotified.full df top include : Iotified.full df top

View file

@ -17,12 +17,12 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
glyph-block-export Iotified glyph-block-export Iotified
define Iotified : namespace define Iotified : namespace
export : define [Shape] : params [df top hBarRight [hBarY (top / 2)] slabTop slabBottom swSerif] : glyph-proc export : define [Shape] : params [df top hBarRight [hBarY (top / 2)] [slabTop false] [slabBottom false] [swSerif Stroke]] : glyph-proc
include : VBar.l df.leftSB 0 top df.mvs include : VBar.l df.leftSB 0 top df.mvs
if (hBarRight > 0) if (hBarRight > 0)
include : HBar.m df.leftSB hBarRight hBarY df.mvs include : HBar.m df.leftSB hBarRight hBarY df.mvs
local sf : SerifFrame.fromDf df top 0 swSerif local sf : SerifFrame.fromDf df top 0 (swSerif -- swSerif)
if SLAB : begin if SLAB : begin
include : tagged "serifLT" : match slabTop include : tagged "serifLT" : match slabTop
[Just SLAB-FULL] : begin sf.lt.full [Just SLAB-FULL] : begin sf.lt.full
@ -34,7 +34,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
__ : glyph-proc __ : glyph-proc
# "Default" version # "Default" version
export : define [full] : params [df top hBarRight hBarY fCapital swSerif] : begin export : define [full] : params [df top hBarRight hBarY [fCapital false] [swSerif Stroke]] : begin
local useItalicShape : [not fCapital] && para.isItalic local useItalicShape : [not fCapital] && para.isItalic
Shape Shape
df -- df df -- df
@ -46,7 +46,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
swSerif -- swSerif swSerif -- swSerif
# Outwards only # Outwards only
export : define [outer] : params [df top hBarRight hBarY fCapital swSerif] : begin export : define [outer] : params [df top hBarRight hBarY [fCapital false] [swSerif Stroke]] : begin
local useItalicShape : [not fCapital] && para.isItalic local useItalicShape : [not fCapital] && para.isItalic
Shape Shape
df -- df df -- df
@ -58,7 +58,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
swSerif -- swSerif swSerif -- swSerif
# Iotified A-shaped glyphs # Iotified A-shaped glyphs
export : define [A] : params [df top hBarRight hBarY fCapital swSerif] : begin export : define [A] : params [df top hBarRight hBarY [fCapital false] [swSerif Stroke]] : begin
local useItalicShape : [not fCapital] && para.isItalic local useItalicShape : [not fCapital] && para.isItalic
Shape Shape
df -- df df -- df
@ -101,7 +101,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
ALetterShape subDf CAP df.mvs fStraightBar slabKind ALetterShape subDf CAP df.mvs fStraightBar slabKind
include : difference include : difference
Iotified.A df CAP [mix df.leftSB df.rightSB (3 / 4)] (CAP / 2) true df.mvs Iotified.A df CAP [mix df.leftSB df.rightSB (3 / 4)] (CAP / 2) (fCapital -- true)
WithTransform [ApparentTranslate shift 0] [AMaskShape subDf CAP df.mvs fStraightBar slabKind] WithTransform [ApparentTranslate shift 0] [AMaskShape subDf CAP df.mvs fStraightBar slabKind]
do "iotified a" do "iotified a"
@ -123,7 +123,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
include : WithTransform [ApparentTranslate shift 0] [body subDf df.mvs] include : WithTransform [ApparentTranslate shift 0] [body subDf df.mvs]
include : difference include : difference
Iotified.full df XH [mix df.leftSB df.rightSB (3 / 4)] (XH / 2) false Iotified.full df XH [mix df.leftSB df.rightSB (3 / 4)] (XH / 2)
WithTransform [ApparentTranslate shift 0] [DoubleStorey.GetMask body df df.mvs] WithTransform [ApparentTranslate shift 0] [DoubleStorey.GetMask body df df.mvs]
do "iotified e" do "iotified e"
@ -144,7 +144,7 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
local { subDf shift } : SubDfAndShift 1 df OX local { subDf shift } : SubDfAndShift 1 df OX
include : WithTransform [ApparentTranslate shift 0] [body subDf XH df.mvs] include : WithTransform [ApparentTranslate shift 0] [body subDf XH df.mvs]
include : Iotified.full df XH df.middle (XH / 2) false include : Iotified.full df XH df.middle (XH / 2)
select-variant 'cyrl/AIotified' 0xA656 (follow -- 'A') select-variant 'cyrl/AIotified' 0xA656 (follow -- 'A')
select-variant 'cyrl/aIotified' 0xA657 (follow -- 'a/turnABase') select-variant 'cyrl/aIotified' 0xA657 (follow -- 'a/turnABase')

View file

@ -25,7 +25,11 @@ glyph-block Letter-Cyrillic-Yu : begin
local slabTop : if (slabType === SLAB-BULGARIAN || useItalicShape) SLAB-OUTWARD SLAB-FULL local slabTop : if (slabType === SLAB-BULGARIAN || useItalicShape) SLAB-OUTWARD SLAB-FULL
local slabBottom : if useItalicShape SLAB-NONE SLAB-FULL local slabBottom : if useItalicShape SLAB-NONE SLAB-FULL
include : Iotified.Shape df xtop xm (top / 2) slabTop slabBottom include : Iotified.Shape df xtop
hBarRight -- xm
yBarY -- (top / 2)
slabTop -- slabTop
slabBottom -- slabBottom
create-glyph 'cyrl/Yu' 0x42E : glyph-proc create-glyph 'cyrl/Yu' 0x42E : glyph-proc
local df : DivFrame para.diversityM 3 local df : DivFrame para.diversityM 3

View file

@ -142,17 +142,21 @@ glyph-block Letter-Latin-Lower-AE-OE : begin
include : ueUPart df fSlab include : ueUPart df fSlab
do "open o subglyphs" do "open o subglyphs"
glyph-block-import Letter-Latin-C : CLetter glyph-block-import Letter-Latin-C : CLetterForm CConfig
define [openOShape df sty styBot] : new-glyph : glyph-proc define [openOShape df sty styBot] : new-glyph : glyph-proc
local { subDf } : SubDfAndShift 0 df OX local { subDf } : SubDfAndShift 0 df OX
local ada : subDf.archDepthA SmallArchDepth df.mvs local ada : subDf.archDepthA SmallArchDepth df.mvs
local adb : subDf.archDepthB SmallArchDepth df.mvs local adb : subDf.archDepthB SmallArchDepth df.mvs
include : CLetter.Shape subDf sty styBot XH 0 ada adb Hook df.mvs local lf : CLetterForm subDf sty styBot XH 0
ada -- [subDf.archDepthA SmallArchDepth df.mvs]
adb -- [subDf.archDepthB SmallArchDepth df.mvs]
sw -- df.mvs
include : lf.full
include : FlipAround (subDf.width / 2) (XH / 2) include : FlipAround (subDf.width / 2) (XH / 2)
foreach { suffix { sty styBot } } [Object.entries CLetter.Config] : do foreach { suffix { sty styBot } } [Object.entries CConfig] : do
create-glyph "oeOpenO/left.\(suffix)" : glyph-proc create-glyph "oeOpenO/left.\(suffix)" : glyph-proc
local df : DivFrame para.diversityM 3 local df : DivFrame para.diversityM 3
set-width df.width set-width df.width

View file

@ -20,7 +20,7 @@ glyph-block Letter-Latin-Sakha-Yat : begin
jut -- jut jut -- jut
set-width df.width set-width df.width
include : Iotified.outer df top (df.middle + df.mvs / 2 * HVContrast) (top - df.mvs * 0.5) false include : Iotified.outer df top (df.middle + df.mvs / 2 * HVContrast) (top - df.mvs * 0.5)
define YerConfig : object define YerConfig : object
corner { CyrlYeriUprightShape } corner { CyrlYeriUprightShape }

View file

@ -19,6 +19,7 @@ glyph-block Letter-Latin-C : begin
glyph-block-import Letter-Shared-Shapes : ArcEndInwardSerifL ArcEndInwardSerifR glyph-block-import Letter-Shared-Shapes : ArcEndInwardSerifL ArcEndInwardSerifR
glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart_RtlLhs glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart_RtlLhs
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook RetroflexHook glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook RetroflexHook
glyph-block-import Letter-Shared-Shapes : ArcStartSerifWidth ArcStartSerifDepth
glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Blackboard : BBS BBD
define SLAB-NONE 0 define SLAB-NONE 0
@ -114,19 +115,27 @@ glyph-block Letter-Latin-C : begin
arcvh arcvh
CurlyTail fine rinner m1 0 RightSB x2 y2 CurlyTail fine rinner m1 0 RightSB x2 y2
glyph-block-export CLetter glyph-block-export CLetterForm
define CLetter : namespace define [CLetterForm] : params [df sty styBot top bot [ada ArchDepthA] [adb ArchDepthB] [hook Hook] [sw Stroke] [ob nothing]] : namespace
export : define [Shape df sty styBot top bot ada adb hook sw ob] : glyph-proc export : define [base] : CShapeT dispiro 0 df sty styBot top bot ada adb hook sw ob
include : CShapeT dispiro 0 df sty styBot top bot ada adb hook sw ob export : define [topSerif] : AutoStartSerifR df sty top hook sw
include : AutoStartSerifR df sty top hook sw export : define [botSerif] : AutoStartSerifRB df styBot bot hook sw
include : AutoStartSerifRB df styBot bot hook sw
export : define [RevShape df sty styBot top bot ada adb hook sw ob] : glyph-proc export : define [revBase] : RevCShapeT dispiro 0 df sty styBot top bot ada adb hook sw ob
include : RevCShapeT dispiro 0 df sty styBot top bot ada adb hook sw ob export : define [revTopSerif] : AutoStartSerifL df sty top hook sw
include : AutoStartSerifR df sty top hook sw export : define [revBotSerif] : AutoStartSerifLB df styBot bot hook sw
include : AutoStartSerifRB df styBot bot hook sw
export : define Config : object export : define [hookTop] : ArcStartHookTop df.rightSB top sw (HookX * hook / Hook) hook
# Used by Cyrillic Koppa
export : define [baseTopOnly] : CShapeT dispiro 0 df sty SLAB-NONE top bot ada adb hook sw ob
export : define [descBase] : CShapeT dispiro 0 df sty (styBot || SLAB-CLASSICAL) top bot ada adb hook sw ob
export : define [full] : composite-proc [base] [topSerif] [botSerif]
export : define [revFull] : composite-proc [revBase] [revTopSerif] [revBotSerif]
glyph-block-export CConfig
define CConfig : object
serifless { SLAB-NONE SLAB-NONE } serifless { SLAB-NONE SLAB-NONE }
bottomSerifed { SLAB-NONE SLAB-CLASSICAL } bottomSerifed { SLAB-NONE SLAB-CLASSICAL }
unilateralSerifed { SLAB-CLASSICAL SLAB-NONE } unilateralSerifed { SLAB-CLASSICAL SLAB-NONE }
@ -135,7 +144,7 @@ glyph-block Letter-Latin-C : begin
bilateralInwardSerifed { SLAB-INWARD SLAB-INWARD } bilateralInwardSerifed { SLAB-INWARD SLAB-INWARD }
hybridSerifed1 { SLAB-INWARD SLAB-CLASSICAL } hybridSerifed1 { SLAB-INWARD SLAB-CLASSICAL }
foreach { suffix { sty styBot } } [Object.entries CLetter.Config] : do foreach { suffix { sty styBot } } [Object.entries CConfig] : do
define [cShape df top bot ada adb hook sw ob] define [cShape df top bot ada adb hook sw ob]
CShapeT dispiro 0 df sty styBot top bot ada adb hook sw ob CShapeT dispiro 0 df sty styBot top bot ada adb hook sw ob
define [cShapeTopOnly df top bot ada adb hook sw ob] define [cShapeTopOnly df top bot ada adb hook sw ob]
@ -145,57 +154,55 @@ glyph-block Letter-Latin-C : begin
create-glyph "C.\(suffix)" : glyph-proc create-glyph "C.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : cShape [DivFrame 1] CAP 0 ArchDepthA ArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot CAP 0
include : AutoStartSerifR [DivFrame 1] sty CAP include : lf.full
include : AutoStartSerifRB [DivFrame 1] styBot 0
create-glyph "smcpC.\(suffix)" : glyph-proc create-glyph "smcpC.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
include : cShape [DivFrame 1] XH 0 ArchDepthA ArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot XH 0
include : AutoStartSerifR [DivFrame 1] sty XH include : lf.full
include : AutoStartSerifRB [DivFrame 1] styBot 0
create-glyph "revC.\(suffix)" : glyph-proc create-glyph "revC.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : revCShape [DivFrame 1] CAP 0 ArchDepthA ArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot CAP 0
include : AutoStartSerifL [DivFrame 1] sty CAP include : lf.revFull
include : AutoStartSerifLB [DivFrame 1] styBot 0
create-glyph "CHookTop.\(suffix)" : glyph-proc create-glyph "CHookTop.\(suffix)" : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : cShape [DivFrame 1] CAP 0 ArchDepthA ArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot CAP 0
include : ArcStartHookTop RightSB CAP Stroke HookX Hook include : union [lf.base] [lf.hookTop] [lf.botSerif]
include : AutoStartSerifRB [DivFrame 1] styBot 0
create-glyph "c.\(suffix)" : glyph-proc create-glyph "c.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
set-base-anchor 'cvDecompose' 0 0 set-base-anchor 'cvDecompose' 0 0
include : cShape [DivFrame 1] XH 0 SmallArchDepthA SmallArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot XH 0
include : AutoStartSerifR [DivFrame 1] sty XH ada -- SmallArchDepthA
include : AutoStartSerifRB [DivFrame 1] styBot 0 adb -- SmallArchDepthB
include : lf.full
create-glyph "revSmallC.\(suffix)" : glyph-proc create-glyph "revSmallC.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
include : revCShape [DivFrame 1] XH 0 SmallArchDepthA SmallArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot XH 0
include : AutoStartSerifL [DivFrame 1] sty XH ada -- SmallArchDepthA
include : AutoStartSerifLB [DivFrame 1] styBot 0 adb -- SmallArchDepthB
include : lf.revFull
create-glyph "revSmallCSideways.\(suffix)" : glyph-proc create-glyph "revSmallCSideways.\(suffix)" : glyph-proc
local df : DivFrame (XH / Width) 2 (XH * 0.1 / SB) local df : DivFrame (XH / Width) 2 (XH * 0.1 / SB)
local top : Width - SB local top : Width - SB
local p : mix 1 (Width / UPM) 0.5 local p : mix 1 (Width / UPM) 0.5
include : PointingTo Width XH Width 0 : function [] : glyph-proc include : PointingTo Width XH Width 0 : function [] : glyph-proc
include : cShape df top 0 ArchDepthA ArchDepthB (Hook * p) Stroke local lf : CLetterForm df sty styBot top 0 (hook -- Hook * p)
include : AutoStartSerifR df sty top (Hook * p) include : lf.revFull
include : AutoStartSerifRB df styBot 0 (Hook * p)
include : FlipAround df.middle (top / 2) include : FlipAround df.middle (top / 2)
include : Translate 0 (SB / 2) include : Translate 0 (SB / 2)
create-glyph "cHookTop.\(suffix)" : glyph-proc create-glyph "cHookTop.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
include : cShape [DivFrame 1] XH 0 SmallArchDepthA SmallArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot XH 0
include : ArcStartHookTop RightSB XH Stroke HookX Hook ada -- SmallArchDepthA
include : AutoStartSerifRB [DivFrame 1] styBot 0 adb -- SmallArchDepthB
include : union [lf.base] [lf.hookTop] [lf.botSerif]
create-glyph "cCurlyTail.\(suffix)" : glyph-proc create-glyph "cCurlyTail.\(suffix)" : glyph-proc
include : MarkSet.e include : MarkSet.e
@ -204,16 +211,8 @@ glyph-block Letter-Latin-C : begin
create-glyph "stretchedC.\(suffix)" : glyph-proc create-glyph "stretchedC.\(suffix)" : glyph-proc
include : MarkSet.p include : MarkSet.p
include : cShape [DivFrame 1] XH Descender ArchDepthA ArchDepthB Hook Stroke local lf : CLetterForm [DivFrame 1] sty styBot XH Descender
include : AutoStartSerifR [DivFrame 1] sty XH include : lf.full
include : AutoStartSerifRB [DivFrame 1] styBot Descender
create-glyph "romanSixLateForm.\(suffix)" : glyph-proc
include : MarkSet.capDesc
include : revCShape [DivFrame 1] CAP 0 ArchDepthA ArchDepthB Hook Stroke
include : AutoStartSerifLB [DivFrame 1] styBot 0
include : FlipAround Middle (CAP / 2)
include : VBar.r RightSB Descender (Hook - O * 2)
define [KoppaShapeT styTop styBot top base] : union define [KoppaShapeT styTop styBot top base] : union
VBar.r (Middle + Stroke * HVContrast) Descender (Stroke / 2) VBar.r (Middle + Stroke * HVContrast) Descender (Stroke / 2)
@ -224,19 +223,39 @@ glyph-block Letter-Latin-C : begin
create-glyph "cyrl/Koppa.\(suffix)" : glyph-proc create-glyph "cyrl/Koppa.\(suffix)" : glyph-proc
include : MarkSet.capDesc include : MarkSet.capDesc
include : KoppaShapeT sty styBot CAP : union local lf : CLetterForm [DivFrame 1] sty styBot CAP 0
cShapeTopOnly [DivFrame 1] CAP 0 ArchDepthA ArchDepthB Hook Stroke include : KoppaShapeT sty styBot CAP : union [lf.baseTopOnly] [lf.topSerif]
AutoStartSerifR [DivFrame 1] sty CAP
create-glyph "cyrl/koppa.\(suffix)" : glyph-proc create-glyph "cyrl/koppa.\(suffix)" : glyph-proc
include : MarkSet.p include : MarkSet.p
include : KoppaShapeT sty styBot XH : union local lf : CLetterForm [DivFrame 1] sty styBot XH 0
cShapeTopOnly [DivFrame 1] XH 0 SmallArchDepthA SmallArchDepthB Hook Stroke ada -- SmallArchDepthA
AutoStartSerifR [DivFrame 1] sty XH adb -- SmallArchDepthB
include : KoppaShapeT sty styBot XH : union [lf.baseTopOnly] [lf.topSerif]
create-glyph "C/descBase.\(suffix)" : glyph-proc
include : MarkSet.capDesc
local lf : CLetterForm [DivFrame 1] sty styBot CAP 0
include : union [lf.descBase] [lf.topSerif]
include : VBar.r RightSB 0 [ArcStartSerifDepth Hook] [ArcStartSerifWidth Stroke]
create-glyph "c/descBase.\(suffix)" : glyph-proc
include : MarkSet.capDesc
local lf : CLetterForm [DivFrame 1] sty styBot XH 0
ada -- SmallArchDepthA
adb -- SmallArchDepthB
include : union [lf.descBase] [lf.topSerif]
include : VBar.r RightSB 0 [ArcStartSerifDepth Hook] [ArcStartSerifWidth Stroke]
create-glyph "romanSixLateForm.\(suffix)" : glyph-proc
include : MarkSet.capDesc
local lf : CLetterForm [DivFrame 1] sty styBot CAP 0
include : union [lf.descBase] [lf.topSerif]
include : VBar.r RightSB Descender [ArcStartSerifDepth Hook] [ArcStartSerifWidth Stroke]
if styBot : let [sf : SerifFrame.fromDf [DivFrame 1] CAP Descender] : include sf.rb.full
select-variant 'C' 'C' select-variant 'C' 'C'
link-reduced-variant 'C/sansSerif' 'C' MathSansSerif link-reduced-variant 'C/sansSerif' 'C' MathSansSerif
link-reduced-variant 'C/descBase' 'C'
select-variant 'revC' 0x2183 (follow -- 'C') select-variant 'revC' 0x2183 (follow -- 'C')
alias 'cyrl/Es' 0x421 'C' alias 'cyrl/Es' 0x421 'C'
alias 'grek/lunateSigma' 0x3F9 'C' alias 'grek/lunateSigma' 0x3F9 'C'
@ -244,12 +263,10 @@ glyph-block Letter-Latin-C : begin
select-variant 'CTopSerifOnly' (shapeFrom -- 'C') select-variant 'CTopSerifOnly' (shapeFrom -- 'C')
select-variant 'CHookTop' 0x187 select-variant 'CHookTop' 0x187
select-variant 'romanSixLateForm' 0x2185
select-variant 'smcpC' 0x1D04 (follow -- 'C') select-variant 'smcpC' 0x1D04 (follow -- 'C')
select-variant 'c' 'c' select-variant 'c' 'c'
link-reduced-variant 'c/sansSerif' 'c' MathSansSerif link-reduced-variant 'c/sansSerif' 'c' MathSansSerif
link-reduced-variant 'c/descBase' 'c'
link-reduced-variant 'c/turnDescBase' 'c' link-reduced-variant 'c/turnDescBase' 'c'
select-variant 'revSmallC' 0x2184 (follow -- 'c') select-variant 'revSmallC' 0x2184 (follow -- 'c')
alias 'cyrl/es' 0x441 'c' alias 'cyrl/es' 0x441 'c'
@ -265,6 +282,10 @@ glyph-block Letter-Latin-C : begin
select-variant 'cyrl/Koppa' 0x480 (follow -- 'C') select-variant 'cyrl/Koppa' 0x480 (follow -- 'C')
select-variant 'cyrl/koppa' 0x481 (follow -- 'c') select-variant 'cyrl/koppa' 0x481 (follow -- 'c')
select-variant 'C/descBase'
select-variant 'c/descBase'
select-variant 'romanSixLateForm' 0x2185 (follow -- 'C/descBase')
create-glyph 'mathbb/C' 0x2102 : glyph-proc create-glyph 'mathbb/C' 0x2102 : glyph-proc
include : MarkSet.capital include : MarkSet.capital
include : CShapeT dispiro 0 [DivFrame 1] SLAB-NONE SLAB-NONE CAP 0 ArchDepthA ArchDepthB Hook BBS include : CShapeT dispiro 0 [DivFrame 1] SLAB-NONE SLAB-NONE CAP 0 ArchDepthA ArchDepthB Hook BBS

View file

@ -10,7 +10,7 @@ glyph-block Letter-Latin-Lower-A : begin
glyph-block-import Common-Derivatives glyph-block-import Common-Derivatives
glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Mark-Shared-Metrics : markHalfStroke
glyph-block-import Letter-Shared : CreateAccentedComposition CreateOgonekComposition glyph-block-import Letter-Shared : CreateAccentedComposition CreateOgonekComposition
glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight
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 glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend RetroflexHook
@ -81,7 +81,7 @@ glyph-block Letter-Latin-Lower-A : begin
Arc df 0 nothing nothing sw Arc df 0 nothing nothing sw
export : define [Serifed df sw] : union export : define [Serifed df sw] : union
Serifless df sw Serifless df sw
HSerif.rb df.rightSB 0 SideJut sw begin [SerifFrame.fromDf df XH 0].rb.outer
export : define [Tailed df sw] : union export : define [Tailed df sw] : union
HookAndBar df (XH - [ADoubleStoreySmoothB df] + O) sw HookAndBar df (XH - [ADoubleStoreySmoothB df] + O) sw
Arc df 0 nothing nothing sw Arc df 0 nothing nothing sw
@ -152,7 +152,7 @@ glyph-block Letter-Latin-Lower-A : begin
mask height mask height
export : define [SerifedBar height mask] : glyph-proc export : define [SerifedBar height mask] : glyph-proc
include : SeriflessBar height mask include : SeriflessBar height mask
include : tagged 'serifRB' : HSerif.rb RightSB 0 SideJut include [SerifFrame.fromDf [DivFrame 1] XH 0].rb.outer
export : define [TailedBar height mask] : glyph-proc export : define [TailedBar height mask] : glyph-proc
set-base-anchor 'trailing' (RightSB + SideJut) 0 set-base-anchor 'trailing' (RightSB + SideJut) 0
include : difference include : difference
@ -162,7 +162,7 @@ glyph-block Letter-Latin-Lower-A : begin
set SeriflessBar.inv SeriflessBar set SeriflessBar.inv SeriflessBar
set SerifedBar.inv : function [height mask] : glyph-proc set SerifedBar.inv : function [height mask] : glyph-proc
include : SeriflessBar height mask include : SeriflessBar height mask
include : tagged 'serifRT' : HSerif.rt RightSB height SideJut include [SerifFrame.fromDf [DivFrame 1] height 0].rt.outer
set TailedBar.inv : function [height mask] : glyph-proc set TailedBar.inv : function [height mask] : glyph-proc
set-base-anchor 'trailing' (RightSB + SideJut) 0 set-base-anchor 'trailing' (RightSB + SideJut) 0
include : difference include : difference

View file

@ -38,13 +38,13 @@ glyph-block Letter-Latin-Upper-A : begin
curlyTriSerifed { false [bitOr SLAB-TOP SLAB-LEFT SLAB-RIGHT] } curlyTriSerifed { false [bitOr SLAB-TOP SLAB-LEFT SLAB-RIGHT] }
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 sw local sf : SerifFrame.fromDf df top 0
if [maskBits slabKind SLAB-LEFT] : include sf.lb.full if [maskBits slabKind SLAB-LEFT] : include sf.lb.full
if [maskBits slabKind SLAB-RIGHT] : include sf.rb.full if [maskBits slabKind SLAB-RIGHT] : include sf.rb.full
if [maskBits slabKind SLAB-TOP] : include : intersection [MaskLeft df.middle] if [maskBits slabKind SLAB-TOP] : include : intersection [MaskLeft df.middle]
if [maskBits slabKind : bitOr SLAB-LEFT SLAB-RIGHT] if [maskBits slabKind : bitOr SLAB-LEFT SLAB-RIGHT]
: then : HSerif.lt df.middle top (MidJutSide + sw * HVContrast * 0.25) sw : then : HSerif.lt df.middle top (MidJutSide + sw * HVContrast * 0.25) sf.swSerif
: else : HSerif.lt df.middle top [mix MidJutSide LongJut 0.5] sw : else : HSerif.lt df.middle top [mix MidJutSide LongJut 0.5] sf.swSerif
glyph-block-export ALetterShape glyph-block-export ALetterShape
define [ALetterShape] : params [df top sw fStraightBar slabKind] : new-glyph : glyph-proc define [ALetterShape] : params [df top sw fStraightBar slabKind] : new-glyph : glyph-proc

View file

@ -469,6 +469,9 @@ glyph-block Letter-Shared-Shapes : begin
glyph-block-export ArcStartSerifWidth glyph-block-export ArcStartSerifWidth
define [ArcStartSerifWidth stroke] : Math.max (stroke * 0.875) VJutStroke define [ArcStartSerifWidth stroke] : Math.max (stroke * 0.875) VJutStroke
glyph-block-export ArcStartSerifDepth
define [ArcStartSerifDepth hook] : hook - O * 2
glyph-block-export ArcStartSerifR glyph-block-export ArcStartSerifR
define [ArcStartSerifR cx cy stroke hook overflow] : begin define [ArcStartSerifR cx cy stroke hook overflow] : begin
return : VBar.r cx (cy - hook + O * 2) (cy + [fallback overflow 0]) [ArcStartSerifWidth stroke] return : VBar.r cx (cy - hook + O * 2) (cy + [fallback overflow 0]) [ArcStartSerifWidth stroke]
@ -635,10 +638,10 @@ glyph-block Letter-Shared-Shapes : begin
return : new CSerifFrame this.top this.bot l1 r1 this.swRef this.swSerif this.div (r - l + 1) return : new CSerifFrame this.top this.bot l1 r1 this.swRef this.swSerif this.div (r - l + 1)
glyph-block-export SerifFrame glyph-block-export SerifFrame
define [SerifFrame] : params [top bot left right [swRef Stroke] [swSerif Stroke] [div 1] [hSplit 2]] : begin define [SerifFrame] : params [top bot left right [swRef Stroke] [swSerif swRef] [div 1] [hSplit 2]] : begin
return : new CSerifFrame top bot left right swRef swSerif div hSplit return : new CSerifFrame top bot left right swRef swSerif div hSplit
define SerifFrame.fromDf : function [] : params [df top bot [swSerif Stroke]] : begin define SerifFrame.fromDf : function [] : params [df top bot [swSerif df.mvs]] : begin
return : SerifFrame top bot df.leftSB df.rightSB return : SerifFrame top bot df.leftSB df.rightSB
sw -- df.mvs sw -- df.mvs
div -- df.div div -- df.div

View file

@ -159,10 +159,9 @@ tag = "cv03"
rank = 1 rank = 1
description = "Serifless `C`" description = "Serifless `C`"
selector.C = "serifless" selector.C = "serifless"
selector."C/descBase" = "bottomSerifed" selector."C/descBase" = "serifless"
selector."C/sansSerif" = "serifless" selector."C/sansSerif" = "serifless"
selector.CHookTop = "unilateralSerifed" selector.CHookTop = "unilateralSerifed"
selector.romanSixLateForm = "unilateralSerifed"
selector.CTopSerifOnly = "serifless" selector.CTopSerifOnly = "serifless"
[prime.capital-c.variants.unilateral-serifed] [prime.capital-c.variants.unilateral-serifed]
@ -172,7 +171,6 @@ selector.C = "unilateralSerifed"
selector."C/descBase" = "bilateralSerifed" selector."C/descBase" = "bilateralSerifed"
selector."C/sansSerif" = "serifless" selector."C/sansSerif" = "serifless"
selector.CHookTop = "unilateralSerifed" selector.CHookTop = "unilateralSerifed"
selector.romanSixLateForm = "bilateralSerifed"
selector.CTopSerifOnly = "unilateralSerifed" selector.CTopSerifOnly = "unilateralSerifed"
[prime.capital-c.variants.bilateral-serifed] [prime.capital-c.variants.bilateral-serifed]
@ -182,7 +180,6 @@ selector.C = "bilateralSerifed"
selector."C/descBase" = "bilateralSerifed" selector."C/descBase" = "bilateralSerifed"
selector."C/sansSerif" = "serifless" selector."C/sansSerif" = "serifless"
selector.CHookTop = "bilateralSerifed" selector.CHookTop = "bilateralSerifed"
selector.romanSixLateForm = "bilateralSerifed"
selector.CTopSerifOnly = "unilateralSerifed" selector.CTopSerifOnly = "unilateralSerifed"
[prime.capital-c.variants.unilateral-inward-serifed] [prime.capital-c.variants.unilateral-inward-serifed]
@ -192,7 +189,6 @@ selector.C = "unilateralInwardSerifed"
selector."C/descBase" = "hybridSerifed1" selector."C/descBase" = "hybridSerifed1"
selector."C/sansSerif" = "serifless" selector."C/sansSerif" = "serifless"
selector.CHookTop = "unilateralInwardSerifed" selector.CHookTop = "unilateralInwardSerifed"
selector.romanSixLateForm = "bilateralInwardSerifed"
selector.CTopSerifOnly = "unilateralInwardSerifed" selector.CTopSerifOnly = "unilateralInwardSerifed"
[prime.capital-c.variants.bilateral-inward-serifed] [prime.capital-c.variants.bilateral-inward-serifed]
@ -202,7 +198,6 @@ selector.C = "bilateralInwardSerifed"
selector."C/descBase" = "bilateralInwardSerifed" selector."C/descBase" = "bilateralInwardSerifed"
selector."C/sansSerif" = "serifless" selector."C/sansSerif" = "serifless"
selector.CHookTop = "bilateralInwardSerifed" selector.CHookTop = "bilateralInwardSerifed"
selector.romanSixLateForm = "bilateralInwardSerifed"
selector.CTopSerifOnly = "unilateralInwardSerifed" selector.CTopSerifOnly = "unilateralInwardSerifed"
@ -1982,7 +1977,7 @@ rank = 1
description = "Serifless `c`" description = "Serifless `c`"
selector.c = "serifless" selector.c = "serifless"
selector."c/sansSerif" = "serifless" selector."c/sansSerif" = "serifless"
selector."c/descBase" = "bottomSerifed" selector."c/descBase" = "serifless"
selector."c/turnDescBase" = "unilateralSerifed" selector."c/turnDescBase" = "unilateralSerifed"
selector.cCurlyTail = "serifless" selector.cCurlyTail = "serifless"
selector.cHookTop = "unilateralSerifed" selector.cHookTop = "unilateralSerifed"