Add Characters:
- CYRILLIC SMALL LETTER UNBLENDED UK (`U+1C88`) (#1517). - CYRILLIC CAPITAL LETTER MONOGRAPH UK (`U+A64A`) (#1517). - CYRILLIC SMALL LETTER MONOGRAPH UK (`U+A64B`) (#1517).
This commit is contained in:
parent
27c894be11
commit
2874d1ad86
11 changed files with 168 additions and 64 deletions
|
@ -6,6 +6,7 @@ end_of_line = lf
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
indent_style = tab
|
indent_style = tab
|
||||||
indent_size = 4
|
indent_size = 4
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
[*.{js,jsx,ts,tsx}]
|
[*.{js,jsx,ts,tsx}]
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
|
@ -16,7 +17,6 @@ block_comment_end = */
|
||||||
[*.md]
|
[*.md]
|
||||||
indent_style = space
|
indent_style = space
|
||||||
indent_size = 2
|
indent_size = 2
|
||||||
insert_final_newline = true
|
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
# The indent size used in the `package.json` file cannot be changed
|
# The indent size used in the `package.json` file cannot be changed
|
||||||
|
|
4
changes/22.1.3.md
Normal file
4
changes/22.1.3.md
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
Add Characters:
|
||||||
|
- CYRILLIC SMALL LETTER UNBLENDED UK (`U+1C88`) (#1517).
|
||||||
|
- CYRILLIC CAPITAL LETTER MONOGRAPH UK (`U+A64A`) (#1517).
|
||||||
|
- CYRILLIC SMALL LETTER MONOGRAPH UK (`U+A64B`) (#1517).
|
|
@ -24,6 +24,7 @@ export : define [apply] : begin
|
||||||
run-glyph-module "./cyrillic/te-midhook.mjs"
|
run-glyph-module "./cyrillic/te-midhook.mjs"
|
||||||
run-glyph-module "./cyrillic/tse.mjs"
|
run-glyph-module "./cyrillic/tse.mjs"
|
||||||
run-glyph-module "./cyrillic/tshe.mjs"
|
run-glyph-module "./cyrillic/tshe.mjs"
|
||||||
|
run-glyph-module "./cyrillic/lower-uk.mjs"
|
||||||
run-glyph-module "./cyrillic/yat.mjs"
|
run-glyph-module "./cyrillic/yat.mjs"
|
||||||
run-glyph-module "./cyrillic/yeri.mjs"
|
run-glyph-module "./cyrillic/yeri.mjs"
|
||||||
run-glyph-module "./cyrillic/yu.mjs"
|
run-glyph-module "./cyrillic/yu.mjs"
|
||||||
|
|
|
@ -114,12 +114,15 @@ glyph-block Letter-Cyrillic-Iotified-A : begin
|
||||||
local xIotifiedBarRight : df.leftSB + HVContrast * df.mvs
|
local xIotifiedBarRight : df.leftSB + HVContrast * df.mvs
|
||||||
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
|
||||||
WithTransform [ApparentTranslate shift 0] : ALetterShape subDf CAP df.mvs fStraightBar slabKind
|
WithTransform [ApparentTranslate shift 0]
|
||||||
intersection [MaskBelow df.mvs] [MaskLeft : mix xIotifiedBarRight [Math.min (subDf.leftSB + shift) (xIotifiedBarRight + botGap)] 0.5]
|
ALetterShape subDf fStraightBar slabKind CAP df.mvs
|
||||||
|
intersection [MaskBelow df.mvs]
|
||||||
|
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)
|
||||||
WithTransform [ApparentTranslate shift 0] [AMaskShape subDf CAP df.mvs fStraightBar slabKind]
|
WithTransform [ApparentTranslate shift 0]
|
||||||
|
AMaskShape subDf fStraightBar CAP df.mvs
|
||||||
|
|
||||||
do "iotified a"
|
do "iotified a"
|
||||||
glyph-block-import Letter-Latin-Lower-A : DoubleStorey
|
glyph-block-import Letter-Latin-Lower-A : DoubleStorey
|
||||||
|
|
37
font-src/glyphs/letter/cyrillic/lower-uk.ptl
Normal file
37
font-src/glyphs/letter/cyrillic/lower-uk.ptl
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
$$include '../../../meta/macros.ptl'
|
||||||
|
|
||||||
|
import [mix linreg clamp fallback] from"../../../support/utils.mjs"
|
||||||
|
|
||||||
|
glyph-module
|
||||||
|
|
||||||
|
glyph-block Letter-Cyrillic-Lower-Blended-Uk : begin
|
||||||
|
glyph-block-import CommonShapes
|
||||||
|
glyph-block-import Common-Derivatives
|
||||||
|
|
||||||
|
create-glyph 'cyrl/uk' 0xA64B : glyph-proc
|
||||||
|
include : MarkSet.b
|
||||||
|
|
||||||
|
local kLeftX 0.8
|
||||||
|
local kLeftY 0.875
|
||||||
|
local kRightX 1
|
||||||
|
local kRightY 1
|
||||||
|
local yCross : mix 0 Ascender 0.45
|
||||||
|
|
||||||
|
local stress : AdviceStroke 2.75
|
||||||
|
local fine : AdviceStroke 3
|
||||||
|
|
||||||
|
local smallRingRadius : (0.25 * (RightSB - SB)) + 0.5 * fine
|
||||||
|
local subDf : DivFrame ((2 * smallRingRadius + 2 * SB) / Width)
|
||||||
|
local ada : ArchDepthAOf smallRingRadius subDf.width
|
||||||
|
local adb : ArchDepthBOf smallRingRadius subDf.width
|
||||||
|
|
||||||
|
include : dispiro
|
||||||
|
g4.down.start [mix Middle SB kLeftX] [mix 0 Ascender kLeftY] [widths.lhs.heading stress Downward]
|
||||||
|
g4 Middle yCross [widths.center stress]
|
||||||
|
g4 (Middle + smallRingRadius - OX) ada [widths.rhs fine]
|
||||||
|
arcvh
|
||||||
|
g4 (Middle + CorrectionOMidX * fine) O
|
||||||
|
archv
|
||||||
|
g4 (Middle - smallRingRadius + OX) adb
|
||||||
|
g4 Middle yCross [widths.center stress]
|
||||||
|
g4.up.mid [mix Middle RightSB kRightX] [mix 0 Ascender kRightY] [widths.lhs.heading stress Upward]
|
|
@ -8,16 +8,20 @@ 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-V : VShape
|
|
||||||
glyph-block-import Letter-Latin-Upper-A : LambdaShape DeltaShape AMaskShape
|
glyph-block-import Letter-Latin-Upper-A : LambdaShape DeltaShape AMaskShape
|
||||||
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
|
||||||
local fine : fallback _fine : AdviceStroke 3.3 df.div
|
local fine : fallback _fine : AdviceStroke 3.3 df.div
|
||||||
include : LambdaShape df top fine straightBar (slab -- false)
|
include : LambdaShape
|
||||||
|
df -- df
|
||||||
|
fBarStraight -- straightBar
|
||||||
|
top -- top
|
||||||
|
sw -- fine
|
||||||
|
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 top fine straightBar
|
AMaskShape df straightBar 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
|
||||||
|
@ -28,11 +32,16 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
include : tagged 'serifMB' sf.mb.full
|
include : tagged 'serifMB' sf.mb.full
|
||||||
|
|
||||||
define [CyrClosedSmallYusShape df top straightBar _fine] : glyph-proc
|
define [CyrClosedSmallYusShape df top straightBar _fine] : glyph-proc
|
||||||
local fine : fallback _fine : AdviceStroke 3.3 df.div
|
local fine : fallback _fine : AdviceStroke 2.75 df.div
|
||||||
include : DeltaShape df top fine straightBar (slab -- false)
|
include : DeltaShape
|
||||||
|
df -- df
|
||||||
|
top -- top
|
||||||
|
sw -- fine
|
||||||
|
fBarStraight -- straightBar
|
||||||
|
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 top fine straightBar
|
AMaskShape df straightBar 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)
|
||||||
|
@ -54,14 +63,14 @@ glyph-block Letter-Cyrillic-SmallYus : begin
|
||||||
create-forked-glyph 'cyrl/smallYus.curly' : CyrSmallYusShape df XH false
|
create-forked-glyph 'cyrl/smallYus.curly' : CyrSmallYusShape df XH false
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
create-glyph : glyph-proc
|
||||||
local df : DivFrame para.diversityM 3
|
local df : DivFrame 1
|
||||||
set-width df.width
|
set-width df.width
|
||||||
include : df.markSet.capital
|
include : df.markSet.capital
|
||||||
create-forked-glyph 'cyrl/SmallYusClosed.straight' : CyrClosedSmallYusShape df CAP true
|
create-forked-glyph 'cyrl/SmallYusClosed.straight' : CyrClosedSmallYusShape df CAP true
|
||||||
create-forked-glyph 'cyrl/SmallYusClosed.curly' : CyrClosedSmallYusShape df CAP false
|
create-forked-glyph 'cyrl/SmallYusClosed.curly' : CyrClosedSmallYusShape df CAP false
|
||||||
|
|
||||||
create-glyph : glyph-proc
|
create-glyph : glyph-proc
|
||||||
local df : DivFrame 1 3
|
local df : DivFrame 1
|
||||||
set-width df.width
|
set-width df.width
|
||||||
include : df.markSet.e
|
include : df.markSet.e
|
||||||
create-forked-glyph 'cyrl/smallYusClosed.straight' : CyrClosedSmallYusShape df XH true
|
create-forked-glyph 'cyrl/smallYusClosed.straight' : CyrClosedSmallYusShape df XH true
|
||||||
|
|
|
@ -16,12 +16,12 @@ glyph-block Letter-Latin-Upper-AE-OE : begin
|
||||||
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 : WithTransform [ApparentTranslate shift 0]
|
return : WithTransform [ApparentTranslate shift 0]
|
||||||
ALetterShape subDf top df.mvs fStraightBar slabKind
|
ALetterShape 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 : WithTransform [ApparentTranslate shift 0]
|
return : WithTransform [ApparentTranslate shift 0]
|
||||||
AMaskShape subDf top df.mvs fStraightBar
|
AMaskShape subDf fStraightBar top df.mvs
|
||||||
|
|
||||||
define SLAB-NONE 0
|
define SLAB-NONE 0
|
||||||
define SLAB-TOP 1
|
define SLAB-TOP 1
|
||||||
|
|
|
@ -13,7 +13,6 @@ glyph-block Letter-Latin-Upper-A : begin
|
||||||
glyph-block-import Letter-Shared : SetGrekUpperTonos CreateOgonekComposition
|
glyph-block-import Letter-Shared : SetGrekUpperTonos CreateOgonekComposition
|
||||||
glyph-block-import Letter-Shared-Shapes : SerifFrame
|
glyph-block-import Letter-Shared-Shapes : SerifFrame
|
||||||
glyph-block-import Letter-Latin-V : VShapeOutline VShape
|
glyph-block-import Letter-Latin-V : VShapeOutline VShape
|
||||||
glyph-block-export LambdaShape AMaskShape DeltaShape
|
|
||||||
|
|
||||||
define SLAB-NONE 0
|
define SLAB-NONE 0
|
||||||
define SLAB-TOP 1
|
define SLAB-TOP 1
|
||||||
|
@ -21,9 +20,9 @@ glyph-block Letter-Latin-Upper-A : begin
|
||||||
define SLAB-RIGHT 4
|
define SLAB-RIGHT 4
|
||||||
|
|
||||||
glyph-block-export AMaskShape
|
glyph-block-export AMaskShape
|
||||||
define [AMaskShape df top sw barStraight] : new-glyph : glyph-proc
|
define [AMaskShape] : params [df fBarStraight top sw] : new-glyph : glyph-proc
|
||||||
include : VShapeOutline df top sw barStraight
|
include : VShapeOutline df fBarStraight top sw
|
||||||
include : FlipAround ([DivFrame df.div].width / 2) (top / 2)
|
include : FlipAround (df.width / 2) (top / 2)
|
||||||
|
|
||||||
define [ABarPosition fBaseSlabs top] : mix [if fBaseSlabs Stroke 0] top (XH / 2 / CAP)
|
define [ABarPosition fBaseSlabs top] : mix [if fBaseSlabs Stroke 0] top (XH / 2 / CAP)
|
||||||
|
|
||||||
|
@ -48,12 +47,12 @@ glyph-block Letter-Latin-Upper-A : begin
|
||||||
: 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 ALetterShape
|
glyph-block-export ALetterShape
|
||||||
define [ALetterShape] : params [df top sw fStraightBar slabKind] : new-glyph : glyph-proc
|
define [ALetterShape] : params [df fStraightBar slabKind top sw] : new-glyph : glyph-proc
|
||||||
include : VShape df top sw fStraightBar
|
include : VShape df fStraightBar top sw
|
||||||
include : FlipAround df.middle (top / 2)
|
include : FlipAround df.middle (top / 2)
|
||||||
define yBar : ABarPosition [maskBits slabKind : bitOr SLAB-LEFT SLAB-RIGHT] top
|
define yBar : ABarPosition [maskBits slabKind : bitOr SLAB-LEFT SLAB-RIGHT] top
|
||||||
include : tagged 'crossBar'
|
include : tagged 'crossBar'
|
||||||
intersection [HBar.t 0 df.width yBar] [AMaskShape df top sw fStraightBar]
|
intersection [HBar.t 0 df.width yBar] [AMaskShape df fStraightBar top sw]
|
||||||
include : ASerifs df top sw slabKind
|
include : ASerifs df top sw slabKind
|
||||||
|
|
||||||
foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do
|
foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do
|
||||||
|
@ -93,36 +92,51 @@ glyph-block Letter-Latin-Upper-A : begin
|
||||||
turned 'turnA' 0x2C6F 'A' Middle (CAP / 2)
|
turned 'turnA' 0x2C6F 'A' Middle (CAP / 2)
|
||||||
|
|
||||||
# Lambda
|
# Lambda
|
||||||
define [LambdaShape] : params [df top sw barStraight [slab SLAB]] : glyph-proc
|
glyph-block-export LambdaShape
|
||||||
include : VShape df top sw barStraight
|
define [LambdaShape] : params [df fBarStraight top sw [slab SLAB]] : glyph-proc
|
||||||
|
include : VShape df fBarStraight top sw
|
||||||
include : FlipAround df.middle (top / 2)
|
include : FlipAround df.middle (top / 2)
|
||||||
local sf : SerifFrame.fromDf df top 0
|
local sf : SerifFrame.fromDf df top 0
|
||||||
include : NeedSlab slab : composite-proc sf.lb.full sf.rb.full
|
include : NeedSlab slab : composite-proc sf.lb.full sf.rb.full
|
||||||
|
|
||||||
create-glyph 'grek/Lambda.straight' : composite-proc [MarkSet.capital]
|
create-glyph 'grek/Lambda.straight' : composite-proc [MarkSet.capital]
|
||||||
LambdaShape [DivFrame 1] CAP Stroke true
|
LambdaShape [DivFrame 1] true CAP Stroke
|
||||||
create-glyph 'grek/Lambda.curly' : composite-proc [MarkSet.capital]
|
create-glyph 'grek/Lambda.curly' : composite-proc [MarkSet.capital]
|
||||||
LambdaShape [DivFrame 1] CAP Stroke false
|
LambdaShape [DivFrame 1] false CAP Stroke
|
||||||
create-glyph 'grek/smcpLambda.straight' : composite-proc [MarkSet.e]
|
create-glyph 'grek/smcpLambda.straight' : composite-proc [MarkSet.e]
|
||||||
LambdaShape [DivFrame 1] XH Stroke true
|
LambdaShape [DivFrame 1] true XH Stroke
|
||||||
create-glyph 'grek/smcpLambda.curly' : composite-proc [MarkSet.e]
|
create-glyph 'grek/smcpLambda.curly' : composite-proc [MarkSet.e]
|
||||||
LambdaShape [DivFrame 1] XH Stroke false
|
LambdaShape [DivFrame 1] false XH Stroke
|
||||||
|
|
||||||
select-variant 'grek/Lambda' 0x39B
|
select-variant 'grek/Lambda' 0x39B
|
||||||
select-variant 'grek/smcpLambda' 0x1D27 (follow -- 'grek/Lambda')
|
select-variant 'grek/smcpLambda' 0x1D27 (follow -- 'grek/Lambda')
|
||||||
alias 'latinLambda' 0x245 'grek/Lambda'
|
alias 'latinLambda' 0x245 'grek/Lambda'
|
||||||
|
|
||||||
# Delta
|
# Delta
|
||||||
define [DeltaShape df top sw barStraight] : union
|
glyph-block-export DeltaShape
|
||||||
LambdaShape df top sw barStraight (slab -- false)
|
define [DeltaShape] : params [df top sw fBarStraight] : union
|
||||||
|
LambdaShape
|
||||||
|
df -- df
|
||||||
|
fBarStraight -- fBarStraight
|
||||||
|
top -- top
|
||||||
|
sw -- sw
|
||||||
|
slab -- false
|
||||||
intersection
|
intersection
|
||||||
HBar.b 0 df.width 0 sw
|
HBar.b 0 df.width 0 sw
|
||||||
AMaskShape df top sw barStraight
|
AMaskShape df fBarStraight top sw
|
||||||
|
|
||||||
create-glyph 'grek/Delta.straight' : composite-proc [MarkSet.capital]
|
create-glyph 'grek/Delta.straight' : composite-proc [MarkSet.capital]
|
||||||
DeltaShape [DivFrame 1] CAP Stroke true
|
DeltaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- true
|
||||||
|
top -- CAP
|
||||||
|
sw -- Stroke
|
||||||
create-glyph 'grek/Delta.curly' : composite-proc [MarkSet.capital]
|
create-glyph 'grek/Delta.curly' : composite-proc [MarkSet.capital]
|
||||||
DeltaShape [DivFrame 1] CAP Stroke false
|
DeltaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- false
|
||||||
|
top -- CAP
|
||||||
|
sw -- Stroke
|
||||||
|
|
||||||
select-variant 'grek/Delta' 0x394
|
select-variant 'grek/Delta' 0x394
|
||||||
|
|
||||||
|
|
|
@ -37,11 +37,11 @@ glyph-block Letter-Latin-Upper-Y : begin
|
||||||
local maskLT : slabType == SLAB-ALL || slabType == SLAB-MOTION
|
local maskLT : slabType == SLAB-ALL || slabType == SLAB-MOTION
|
||||||
local maskRT : slabType == SLAB-ALL
|
local maskRT : slabType == SLAB-ALL
|
||||||
|
|
||||||
include : tagged 'strokeLT' : WithSerifOverflowMask maskLT CAP 0 SB RightSB
|
include : tagged 'strokeLT' : WithSerifOverflowMask maskLT top bot SB RightSB
|
||||||
HalfXStrand bodyType SLAB SB top Middle cross 0.1 0.4 0.28
|
HalfXStrand bodyType SLAB SB top Middle cross 0.1 0.4 0.28
|
||||||
include : tagged 'strokeRT' : WithSerifOverflowMask maskRT CAP 0 SB RightSB
|
include : tagged 'strokeRT' : WithSerifOverflowMask maskRT top bot SB RightSB
|
||||||
HalfXStrand bodyType SLAB RightSB top Middle cross 0.1 0.4 0.28
|
HalfXStrand bodyType SLAB RightSB top Middle cross 0.1 0.4 0.28
|
||||||
include : VBar.m Middle bot (cross + HalfStroke)
|
include : tagged 'strokeVMid' : VBar.m Middle bot (cross + HalfStroke)
|
||||||
set-base-anchor 'overlay' Middle cross
|
set-base-anchor 'overlay' Middle cross
|
||||||
|
|
||||||
define [YenOverlayShape slabType] : glyph-proc
|
define [YenOverlayShape slabType] : glyph-proc
|
||||||
|
|
|
@ -24,18 +24,18 @@ glyph-block Letter-Latin-V : begin
|
||||||
define StraightSbShrink : mix 1 (DesignParameters.straightVShapeSbShrink * [StrokeWidthBlend 1 0.75]) : if SLAB 0.75 1
|
define StraightSbShrink : mix 1 (DesignParameters.straightVShapeSbShrink * [StrokeWidthBlend 1 0.75]) : if SLAB 0.75 1
|
||||||
define [VShapeTopFlat top] : if SLAB [Math.min (top - Stroke) (top * 0.9)] (top * 0.9)
|
define [VShapeTopFlat top] : if SLAB [Math.min (top - Stroke) (top * 0.9)] (top * 0.9)
|
||||||
|
|
||||||
define [VShapeOutline] : params [df top [sw Stroke] barStraight] : glyph-proc
|
define [VShapeOutline] : params [df fBarStraight top [sw Stroke]] : glyph-proc
|
||||||
define cornerHW : VCornerHalfWidth * sw / Stroke
|
define cornerHW : VCornerHalfWidth * sw / Stroke
|
||||||
define dgCor : DiagCor top (Width / 2) 0 (sw * 2)
|
define dgCor : DiagCor top (Width / 2) 0 (sw * 2)
|
||||||
define clearance : 0 - OX
|
define clearance : 0 - OX
|
||||||
|
|
||||||
local sbScale : if barStraight StraightSbShrink 1
|
local sbScale : if fBarStraight StraightSbShrink 1
|
||||||
define vxStartL : df.leftSB * sbScale + clearance
|
define vxStartL : df.leftSB * sbScale + clearance
|
||||||
define vxEndL : df.middle - cornerHW + clearance
|
define vxEndL : df.middle - cornerHW + clearance
|
||||||
define vxStartR : df.width - df.leftSB * sbScale - clearance
|
define vxStartR : df.width - df.leftSB * sbScale - clearance
|
||||||
define vxEndR : df.middle + cornerHW - clearance
|
define vxEndR : df.middle + cornerHW - clearance
|
||||||
|
|
||||||
if barStraight : do
|
if fBarStraight : do
|
||||||
include : spiro-outline
|
include : spiro-outline
|
||||||
flat [mix vxStartL vxEndL 0] [mix top 0 0]
|
flat [mix vxStartL vxEndL 0] [mix top 0 0]
|
||||||
curl [mix vxStartL vxEndL pInktrap] [mix top 0 pInktrap]
|
curl [mix vxStartL vxEndL pInktrap] [mix top 0 pInktrap]
|
||||||
|
@ -54,25 +54,25 @@ glyph-block Letter-Latin-V : begin
|
||||||
flat vxStartR [VShapeTopFlat top]
|
flat vxStartR [VShapeTopFlat top]
|
||||||
curl vxStartR top
|
curl vxStartR top
|
||||||
|
|
||||||
define [VBottomCapShape df barStraight sw] : begin
|
define [VBottomCapShape df fBarStraight sw] : begin
|
||||||
define cornerHW : VCornerHalfWidth * sw / Stroke
|
define cornerHW : VCornerHalfWidth * sw / Stroke
|
||||||
return : spiro-outline
|
return : spiro-outline
|
||||||
corner (df.middle + cornerHW) 0
|
corner (df.middle + cornerHW) 0
|
||||||
corner (df.middle - cornerHW) 0
|
corner (df.middle - cornerHW) 0
|
||||||
corner df.middle [Math.min sw : if barStraight VShapeFineStraight VShapeFine]
|
corner df.middle [Math.min sw : if fBarStraight VShapeFineStraight VShapeFine]
|
||||||
|
|
||||||
define [VShape] : params [df top [sw Stroke] barStraight] : glyph-proc
|
define [VShape] : params [df fBarStraight top [sw Stroke]] : glyph-proc
|
||||||
define cornerHW : VCornerHalfWidth * (sw / Stroke)
|
define cornerHW : VCornerHalfWidth * (sw / Stroke)
|
||||||
define fine : Math.min sw : [if barStraight VShapeFineStraight VShapeFine] * (sw / Stroke)
|
define fine : Math.min sw : [if fBarStraight VShapeFineStraight VShapeFine] * (sw / Stroke)
|
||||||
define dgCor : DiagCor (2 * top) Width 0 (2 * sw)
|
define dgCor : DiagCor (2 * top) Width 0 (2 * sw)
|
||||||
|
|
||||||
local sbScale : if barStraight StraightSbShrink 1
|
local sbScale : if fBarStraight StraightSbShrink 1
|
||||||
define vxStartL : df.leftSB * sbScale
|
define vxStartL : df.leftSB * sbScale
|
||||||
define vxEndL : df.middle - cornerHW
|
define vxEndL : df.middle - cornerHW
|
||||||
define vxStartR : df.width - df.leftSB * sbScale
|
define vxStartR : df.width - df.leftSB * sbScale
|
||||||
define vxEndR : df.middle + cornerHW
|
define vxEndR : df.middle + cornerHW
|
||||||
|
|
||||||
if barStraight : do
|
if fBarStraight : do
|
||||||
define midSW : dgCor * VShapeMiddleWidth / Stroke * sw
|
define midSW : dgCor * VShapeMiddleWidth / Stroke * sw
|
||||||
include : tagged 'strokeDown' : dispiro
|
include : tagged 'strokeDown' : dispiro
|
||||||
widths.lhs (sw * dgCor)
|
widths.lhs (sw * dgCor)
|
||||||
|
@ -99,7 +99,7 @@ glyph-block Letter-Latin-V : begin
|
||||||
g4 vxEndR 0 [widths.rhs fine]
|
g4 vxEndR 0 [widths.rhs fine]
|
||||||
|
|
||||||
#bottom cap
|
#bottom cap
|
||||||
include : VBottomCapShape df barStraight sw
|
include : VBottomCapShape df fBarStraight sw
|
||||||
|
|
||||||
define [VCursiveShapeBarPos k] : mix SB RightSB k
|
define [VCursiveShapeBarPos k] : mix SB RightSB k
|
||||||
define [VCursiveShape] : params [k top [sw Stroke]] : glyph-proc
|
define [VCursiveShape] : params [k top [sw Stroke]] : glyph-proc
|
||||||
|
@ -125,10 +125,10 @@ glyph-block Letter-Latin-V : begin
|
||||||
mix xArcMidBottom xArcRight 0.5
|
mix xArcMidBottom xArcRight 0.5
|
||||||
mix O yArcRight : archv.yFromX 0.5 2
|
mix O yArcRight : archv.yFromX 0.5 2
|
||||||
|
|
||||||
define [VHooktopShape df barStraight top] : glyph-proc
|
define [VHooktopShape df fBarStraight top] : glyph-proc
|
||||||
include : VShape df top Stroke barStraight
|
include : VShape df fBarStraight top Stroke
|
||||||
eject-contour 'strokeUp'
|
eject-contour 'strokeUp'
|
||||||
include : VBottomCapShape df barStraight Stroke
|
include : VBottomCapShape df fBarStraight Stroke
|
||||||
include : dispiro
|
include : dispiro
|
||||||
widths.rhs
|
widths.rhs
|
||||||
straight.left.start (RightSB + HookX / 3) (top - Stroke)
|
straight.left.start (RightSB + HookX / 3) (top - Stroke)
|
||||||
|
@ -136,14 +136,14 @@ glyph-block Letter-Latin-V : begin
|
||||||
quadControls 0.4 0.75 64 unimportant
|
quadControls 0.4 0.75 64 unimportant
|
||||||
g4 (Middle + VCornerHalfWidth) 0 [widths.rhs VShapeFine]
|
g4 (Middle + VCornerHalfWidth) 0 [widths.rhs VShapeFine]
|
||||||
|
|
||||||
define [VSerifs df top barStraight] : begin
|
define [VSerifs df fBarStraight top] : begin
|
||||||
local sbScale : if barStraight StraightSbShrink 1
|
local sbScale : if fBarStraight StraightSbShrink 1
|
||||||
local sbOffset : if barStraight (OX * [StrokeWidthBlend 1 2]) 0
|
local sbOffset : if fBarStraight (OX * [StrokeWidthBlend 1 2]) 0
|
||||||
local sf : SerifFrame top 0 (df.leftSB * sbScale - sbOffset) (df.width - df.leftSB * sbScale + sbOffset)
|
local sf : SerifFrame top 0 (df.leftSB * sbScale - sbOffset) (df.width - df.leftSB * sbScale + sbOffset)
|
||||||
return : NeedSlab SLAB : composite-proc sf.lt.full sf.rt.full
|
return : NeedSlab SLAB : composite-proc sf.lt.full sf.rt.full
|
||||||
define [VMotionSerifs df top barStraight] : begin
|
define [VMotionSerifs df fBarStraight top] : begin
|
||||||
local sbScale : if barStraight StraightSbShrink 1
|
local sbScale : if fBarStraight StraightSbShrink 1
|
||||||
local sbOffset : if barStraight (OX * [StrokeWidthBlend 1 2]) 0
|
local sbOffset : if fBarStraight (OX * [StrokeWidthBlend 1 2]) 0
|
||||||
local sf : SerifFrame top 0 (df.leftSB * sbScale - sbOffset) (df.width - df.leftSB * sbScale + sbOffset)
|
local sf : SerifFrame top 0 (df.leftSB * sbScale - sbOffset) (df.width - df.leftSB * sbScale + sbOffset)
|
||||||
return : composite-proc sf.lt.outer
|
return : composite-proc sf.lt.outer
|
||||||
|
|
||||||
|
@ -156,26 +156,47 @@ glyph-block Letter-Latin-V : begin
|
||||||
foreach { suffix { Serifs fStraightBar }} [Object.entries VStandardConfig] : do
|
foreach { suffix { Serifs fStraightBar }} [Object.entries VStandardConfig] : do
|
||||||
create-glyph "V.\(suffix)" : glyph-proc
|
create-glyph "V.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : VShape [DivFrame 1] CAP Stroke fStraightBar
|
include : VShape [DivFrame 1] fStraightBar CAP Stroke
|
||||||
include : Serifs [DivFrame 1] CAP fStraightBar
|
include : Serifs [DivFrame 1] fStraightBar CAP
|
||||||
|
|
||||||
create-glyph "v.\(suffix)" : glyph-proc
|
create-glyph "v.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.e
|
include : MarkSet.e
|
||||||
include : VShape [DivFrame 1] XH Stroke fStraightBar
|
include : VShape [DivFrame 1] fStraightBar XH Stroke
|
||||||
include : Serifs [DivFrame 1] XH fStraightBar
|
include : Serifs [DivFrame 1] fStraightBar XH
|
||||||
|
|
||||||
create-glyph "VHookTop.\(suffix)" : glyph-proc
|
create-glyph "VHookTop.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : VHooktopShape [DivFrame 1] fStraightBar CAP
|
include : VHooktopShape [DivFrame 1] fStraightBar CAP
|
||||||
include : Serifs [DivFrame 1] CAP fStraightBar
|
include : Serifs [DivFrame 1] fStraightBar CAP
|
||||||
eject-contour 'serifRT'
|
eject-contour 'serifRT'
|
||||||
|
|
||||||
create-glyph "vHookTop.\(suffix)" : glyph-proc
|
create-glyph "vHookTop.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.e
|
include : MarkSet.e
|
||||||
include : VHooktopShape [DivFrame 1] fStraightBar XH
|
include : VHooktopShape [DivFrame 1] fStraightBar XH
|
||||||
include : Serifs [DivFrame 1] XH fStraightBar
|
include : Serifs [DivFrame 1] fStraightBar XH
|
||||||
eject-contour 'serifRT'
|
eject-contour 'serifRT'
|
||||||
|
|
||||||
|
create-glyph "cyrl/Uk.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.capital
|
||||||
|
local vPartHeight : CAP * 0.45 + HalfStroke
|
||||||
|
include : WithTransform [ApparentTranslate 0 (CAP - vPartHeight)] : glyph-proc
|
||||||
|
include : VHooktopShape [DivFrame 1] fStraightBar vPartHeight
|
||||||
|
include : Serifs [DivFrame 1] fStraightBar vPartHeight
|
||||||
|
eject-contour 'serifRT'
|
||||||
|
|
||||||
|
local oHeight : CAP - vPartHeight + Stroke + O
|
||||||
|
include : OShape oHeight 0 SB RightSB [AdviceStroke 2.75]
|
||||||
|
include : VBar.m Middle (0.5 * oHeight) oHeight [AdviceStroke 4]
|
||||||
|
|
||||||
|
create-glyph "cyrl/ukUnblended.\(suffix)" : glyph-proc
|
||||||
|
include : MarkSet.e
|
||||||
|
local vPartHeight : Ascender * 0.45 + HalfStroke
|
||||||
|
include : WithTransform [ApparentTranslate 0 (Ascender - vPartHeight)] : glyph-proc
|
||||||
|
include : VHooktopShape [DivFrame 1] fStraightBar vPartHeight
|
||||||
|
include : Serifs [DivFrame 1] fStraightBar vPartHeight
|
||||||
|
eject-contour 'serifRT'
|
||||||
|
include : OShape (Ascender - vPartHeight + Stroke + O) 0 SB RightSB
|
||||||
|
|
||||||
create-glyph "vPalatalHook.\(suffix)" : glyph-proc
|
create-glyph "vPalatalHook.\(suffix)" : glyph-proc
|
||||||
include [refer-glyph "v.\(suffix)"] AS_BASE ALSO_METRICS
|
include [refer-glyph "v.\(suffix)"] AS_BASE ALSO_METRICS
|
||||||
include : PalatalHook.r
|
include : PalatalHook.r
|
||||||
|
@ -214,7 +235,10 @@ glyph-block Letter-Latin-V : begin
|
||||||
select-variant "vPalatalHook" 0x1D8C (follow -- 'v')
|
select-variant "vPalatalHook" 0x1D8C (follow -- 'v')
|
||||||
|
|
||||||
select-variant 'vHookTop' 0x2C71 (follow -- 'v/nonCursive')
|
select-variant 'vHookTop' 0x2C71 (follow -- 'v/nonCursive')
|
||||||
|
select-variant 'cyrl/ukUnblended' 0x1C88 (follow -- 'v/nonCursive')
|
||||||
|
|
||||||
select-variant 'cyrl/Izhitsa' 0x474 (follow -- 'VHookTop') (shapeFrom -- 'VHookTop')
|
select-variant 'cyrl/Izhitsa' 0x474 (follow -- 'VHookTop') (shapeFrom -- 'VHookTop')
|
||||||
|
select-variant 'cyrl/Uk' 0xA64A (follow -- 'VHookTop')
|
||||||
alias 'cyrl/izhitsa' 0x475 'vHookTop'
|
alias 'cyrl/izhitsa' 0x475 'vHookTop'
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ 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 : LambdaShape AMaskShape DeltaShape
|
glyph-block-import Letter-Latin-Upper-A : DeltaShape
|
||||||
glyph-block-import Letter-Latin-Upper-E : RevEShape
|
glyph-block-import Letter-Latin-Upper-E : RevEShape
|
||||||
|
|
||||||
turned 'forall' 0x2200 'A.straightSerifless' Middle (CAP / 2)
|
turned 'forall' 0x2200 'A.straightSerifless' Middle (CAP / 2)
|
||||||
|
@ -27,18 +27,30 @@ glyph-block Symbol-Math-Letter-Like : begin
|
||||||
|
|
||||||
create-glyph 'increment' [CodeNonApl 0x2206] : glyph-proc
|
create-glyph 'increment' [CodeNonApl 0x2206] : glyph-proc
|
||||||
include : MarkSet.capital
|
include : MarkSet.capital
|
||||||
include : DeltaShape [DivFrame 1] CAP OperatorStroke true
|
include : DeltaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- true
|
||||||
|
top -- CAP
|
||||||
|
sw -- OperatorStroke
|
||||||
|
|
||||||
create-glyph 'increment.aplForm' [CodeApl 0x2206] : glyph-proc
|
create-glyph 'increment.aplForm' [CodeApl 0x2206] : glyph-proc
|
||||||
include : MarkSet.oper
|
include : MarkSet.oper
|
||||||
define shapeHeight : OperTop - OperBot
|
define shapeHeight : OperTop - OperBot
|
||||||
include : DeltaShape [DivFrame 1] shapeHeight OperatorStroke true
|
include : DeltaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- true
|
||||||
|
top -- shapeHeight
|
||||||
|
sw -- OperatorStroke
|
||||||
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
||||||
|
|
||||||
create-glyph 'increment.aplThin' : glyph-proc
|
create-glyph 'increment.aplThin' : glyph-proc
|
||||||
include : MarkSet.oper
|
include : MarkSet.oper
|
||||||
define shapeHeight : OperTop - OperBot
|
define shapeHeight : OperTop - OperBot
|
||||||
include : DeltaShape [DivFrame 1] shapeHeight [AdviceStroke 3.75] true
|
include : DeltaShape
|
||||||
|
df -- [DivFrame 1]
|
||||||
|
fBarStraight -- true
|
||||||
|
top -- shapeHeight
|
||||||
|
sw -- [AdviceStroke 3.75]
|
||||||
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2)
|
||||||
|
|
||||||
turned 'nabla' [CodeNonApl 0x2207] 'increment' Middle (CAP / 2)
|
turned 'nabla' [CodeNonApl 0x2207] 'increment' Middle (CAP / 2)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue