diff --git a/changes/33.2.2.md b/changes/33.2.2.md index 60c33a451..aaa326914 100644 --- a/changes/33.2.2.md +++ b/changes/33.2.2.md @@ -4,6 +4,9 @@ - CYRILLIC CAPITAL LETTER KOMI DZJE (`U+0506`). - CYRILLIC SMALL LETTER KOMI DZJE (`U+0507`). - THERE DOES NOT EXIST (`U+2204`). + - CYRILLIC CAPITAL LETTER IOTIFIED A (`U+A656`). + - CYRILLIC CAPITAL LETTER IOTIFIED CLOSED LITTLE YUS (`U+A65C`). + - CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS (`U+A65D`). - LATIN CAPITAL LETTER VOLAPUK UE (`U+A79E`). - LATIN SMALL LETTER VOLAPUK UE (`U+A79F`). - MODIFIER LETTER SMALL CAPITAL G WITH HOOK (`U+10794`). diff --git a/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl b/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl index d8329f618..e18b3c1df 100644 --- a/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl @@ -100,17 +100,12 @@ glyph-block Letter-Cyrillic-BigYus : begin define divSub : (df.width - gap - df.mvs) / Width define dfSub : DivFrame divSub 3 include : CyrBigYusShape dfSub top yp df.mvs - eject-contour 'serifRB' include : Translate (Width * (df.adws - divSub)) 0 include : Iotified.outer df top hBarRight -- [mix df.leftSB df.rightSB (2 / 3)] - hBarY -- (top * yp - df.mvs * 0.5) - fCapital -- fCapital - - if SLAB : begin - local sf : SerifFrame.fromDf df top 0 (swSerif -- df.mvs) - include sf.rb.outer + hBarY -- (top * yp - df.mvs * 0.5) + fCapital -- fCapital create-glyph 'cyrl/BigYusIotified' 0x46C : glyph-proc local df : include : DivFrame (para.advanceScaleM ** 2) 4.25 diff --git a/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl b/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl index dbe80a50b..1963c6999 100644 --- a/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl @@ -55,75 +55,75 @@ glyph-block Letter-Cyrillic-Iotified-A : begin export : define [full] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin local useItalicShape : [not fCapital] && para.isItalic Shape - df -- df - top -- top - hBarRight -- hBarRight - hBarY -- hBarY - slabTop -- [if useItalicShape SLAB-OUTWARD SLAB-FULL] + df -- df + top -- top + hBarRight -- hBarRight + hBarY -- hBarY + slabTop -- [if useItalicShape SLAB-OUTWARD SLAB-FULL] slabBottom -- [if useItalicShape SLAB-NONE SLAB-FULL] - swSerif -- swSerif + swSerif -- swSerif # Outwards only export : define [outer] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin local useItalicShape : [not fCapital] && para.isItalic Shape - df -- df - top -- top - hBarRight -- hBarRight - hBarY -- hBarY - slabTop -- SLAB-OUTWARD + df -- df + top -- top + hBarRight -- hBarRight + hBarY -- hBarY + slabTop -- SLAB-OUTWARD slabBottom -- [if useItalicShape SLAB-NONE SLAB-OUTWARD] - swSerif -- swSerif + swSerif -- swSerif # Iotified A-shaped glyphs export : define [A] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin local useItalicShape : [not fCapital] && para.isItalic Shape - df -- df - top -- top - hBarRight -- hBarRight - hBarY -- hBarY - slabTop -- [if useItalicShape SLAB-OUTWARD SLAB-FULL] + df -- df + top -- top + hBarRight -- hBarRight + hBarY -- hBarY + slabTop -- [if useItalicShape SLAB-OUTWARD SLAB-FULL] slabBottom -- [if useItalicShape SLAB-NONE SLAB-OUTWARD] - swSerif -- swSerif + swSerif -- swSerif # Used for Bulgarian Lower Yu export : define [ascender] : with-params [df top hBarRight hBarY [fCapital false] [swSerif df.mvs]] : begin local useItalicShape : [not fCapital] && para.isItalic Shape - df -- df - top -- top - hBarRight -- hBarRight - hBarY -- hBarY - slabTop -- SLAB-OUTWARD + df -- df + top -- top + hBarRight -- hBarRight + hBarY -- hBarY + slabTop -- SLAB-OUTWARD slabBottom -- [if useItalicShape SLAB-NONE SLAB-FULL] - swSerif -- swSerif + swSerif -- swSerif do "iotified A" glyph-block-import Letter-Latin-Upper-A : AShape AConfig - foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do + foreach { suffix { bodyShape slabKind } } [Object.entries AConfig] : do create-glyph "cyrl/AIotified.\(suffix)" : glyph-proc define df : include : DivFrame para.advanceScaleM 3.5 include : df.markSet.capital local gap : (df.width - 2 * df.leftSB - 3 * df.mvs) / 3 local divSub : (df.width - gap - df.mvs) / Width - local subDf : DivFrame divSub 2 (df.leftSB / SB) df.mvs 0 + local subDf : DivFrame divSub 2 local shift : Width * (df.adws - divSub) local xIotifiedBarRight : df.leftSB + [HSwToV 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 with-transform [ApparentTranslate shift 0] - AShape.Letter subDf fStraightBar slabKind CAP df.mvs + AShape.Letter subDf bodyShape slabKind CAP df.mvs intersection [MaskBelow df.mvs] MaskLeft : mix xIotifiedBarRight [Math.min (subDf.leftSB + shift) (xIotifiedBarRight + botGap)] 0.5 include : difference Iotified.A df CAP [mix df.leftSB df.rightSB (3 / 4)] (CAP / 2) (fCapital -- true) with-transform [ApparentTranslate shift 0] - AShape.Mask subDf fStraightBar CAP df.mvs + AShape.Mask subDf bodyShape CAP df.mvs do "iotified a" glyph-block-import Letter-Latin-Lower-A : DoubleStorey DoubleStoreyConfig SingleStorey SingleStoreyConfig @@ -183,8 +183,8 @@ glyph-block Letter-Cyrillic-Iotified-A : begin include : with-transform [ApparentTranslate shift 0] body subDf XH stroke -- df.mvs - ada -- (SmallArchDepthA * 0.7 * df.adws) - adb -- (SmallArchDepthB * 0.7 * df.adws) + ada -- (SmallArchDepthA * 0.7 * df.adws) + adb -- (SmallArchDepthB * 0.7 * df.adws) include : Iotified.full df XH (shift + subDf.leftSB + [HSwToV : 0.5 * df.mvs]) (XH / 2) diff --git a/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl b/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl index 8693b6986..284f125ad 100644 --- a/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl @@ -15,11 +15,11 @@ glyph-block Letter-Cyrillic-SmallYus : begin define [CyrSmallYusShape df top straightBar _fine] : glyph-proc local fine : fallback _fine : AdviceStroke 3.3 df.adws include : LambdaShape - df -- df + df -- df fBarStraight -- straightBar - slabKind -- 0 - top -- top - sw -- fine + slabKind -- 0 + top -- top + sw -- fine include : intersection HBar.t df.leftSB df.rightSB (top / 2) fine AShape.Mask df [if straightBar 1 0] top fine @@ -35,11 +35,11 @@ glyph-block Letter-Cyrillic-SmallYus : begin define [CyrClosedSmallYusShape df top straightBar _fine] : glyph-proc local fine : fallback _fine : AdviceStroke 2.75 df.adws include : DeltaShape - df -- df - top -- top - sw -- fine + df -- df + top -- top + sw -- fine fBarStraight -- straightBar - slab -- false + slab -- false include : intersection HBar.t df.leftSB df.rightSB (top / 2) fine AShape.Mask df [if straightBar 1 0] top fine @@ -79,23 +79,24 @@ glyph-block Letter-Cyrillic-SmallYus : begin select-variant 'cyrl/smallYusClosed' 0xA659 (follow -- 'grek/Delta') define [CyrIotifiedSmallYusShape fClosed fCapital df top straightBar] : glyph-proc - local gap : (df.width - 2 * df.leftSB - 4 * df.mvs) / 3 + local gap : (df.width - 2 * df.leftSB - [if fClosed 3 4] * df.mvs) / 3 define divSub : (df.width - gap - df.mvs) / Width - define dfSub : DivFrame divSub 3 - if fClosed - include : CyrClosedSmallYusShape dfSub top straightBar df.mvs - include : CyrSmallYusShape dfSub top straightBar df.mvs - eject-contour 'serifRB' - include : Translate (Width * (df.adws - divSub)) 0 + define dfSub : DivFrame divSub : if fClosed 2 3 + local shift : Width * (df.adws - divSub) + local xIotifiedBarRight : df.leftSB + [HSwToV df.mvs] + local botGap : Math.max ((df.rightSB - df.leftSB) * 0.08) : AdviceStroke 6 + include : difference + with-transform [ApparentTranslate shift 0] : if fClosed + CyrClosedSmallYusShape dfSub top straightBar df.mvs + CyrSmallYusShape dfSub top straightBar df.mvs + intersection [MaskBelow df.mvs] + MaskLeft : mix xIotifiedBarRight [Math.min (dfSub.leftSB + shift) (xIotifiedBarRight + botGap)] 0.5 + include : Iotified.A df top hBarRight -- [mix df.leftSB df.rightSB (2 / 3)] - hBarY -- (top / 2 - df.mvs * 0.5) - fCapital -- fCapital - - if SLAB : begin - local sf : SerifFrame.fromDf df top 0 (swSerif -- df.mvs) - include sf.rb.outer + hBarY -- (top / 2 - df.mvs * 0.5) + fCapital -- fCapital create-glyph : glyph-proc local df : include : DivFrame (para.advanceScaleM ** 2) 4.25 @@ -114,7 +115,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin CyrIotifiedSmallYusShape false false df XH false create-glyph : glyph-proc - local df : include : DivFrame para.advanceScaleM 4.25 + local df : include : DivFrame para.advanceScaleM 3.5 include : df.markSet.capital create-forked-glyph 'cyrl/SmallYusClosedIotified.straight' CyrIotifiedSmallYusShape true true df CAP true @@ -122,7 +123,7 @@ glyph-block Letter-Cyrillic-SmallYus : begin CyrIotifiedSmallYusShape true true df CAP false create-glyph : glyph-proc - local df : include : DivFrame para.advanceScaleM 4.25 + local df : include : DivFrame para.advanceScaleM 3.5 include : df.markSet.e create-forked-glyph 'cyrl/smallYusClosedIotified.straight' CyrIotifiedSmallYusShape true false df XH true diff --git a/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl b/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl index b72275f8f..f766249a9 100644 --- a/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-lambda-delta.ptl @@ -141,11 +141,11 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin glyph-block-export DeltaShape define [DeltaShape] : with-params [df top sw fBarStraight] : union LambdaShape - df -- df + df -- df fBarStraight -- fBarStraight - slabKind -- 0 - top -- top - sw -- sw + slabKind -- 0 + top -- top + sw -- sw intersection HBar.b 0 df.width 0 sw LambdaMask df fBarStraight top sw @@ -158,37 +158,37 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin create-glyph "grek/Delta.\(suffix)" : glyph-proc include : MarkSet.capital include : DeltaShape - df -- [DivFrame 1] + df -- [DivFrame 1] fBarStraight -- fBarStraight - top -- CAP - sw -- Stroke + top -- CAP + sw -- Stroke create-glyph "increment.\(suffix)" : glyph-proc include : MarkSet.capital include : DeltaShape - df -- [DivFrame 1] + df -- [DivFrame 1] fBarStraight -- fBarStraight - top -- CAP - sw -- OperatorStroke + top -- CAP + sw -- OperatorStroke create-glyph "increment.aplForm.\(suffix)" : glyph-proc include : MarkSet.oper define shapeHeight : OperTop - OperBot include : DeltaShape - df -- [DivFrame 1] + df -- [DivFrame 1] fBarStraight -- fBarStraight - top -- shapeHeight - sw -- OperatorStroke + 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] + df -- [DivFrame 1] fBarStraight -- fBarStraight - top -- shapeHeight - sw -- [AdviceStroke 3.75] + top -- shapeHeight + sw -- [AdviceStroke 3.75] include : ApparentTranslate 0 (SymbolMid - shapeHeight / 2) define [CodeNonApl u] : if (para.variantSelector.__enableAplForm === 'enable') null u @@ -209,6 +209,6 @@ glyph-block Letter-Latin-Upper-Lambda-Delta : begin local xCutLeft SB local xCutRight RightSB include : HBar.b (xCutLeft - descenderOverflow) (xCutRight + descenderOverflow) 0 - include : VBar.l (xCutLeft - descenderOverflow) (-LongVJut + HalfStroke) Stroke - include : VBar.r (xCutRight + descenderOverflow) (-LongVJut + HalfStroke) Stroke + include : VBar.l (xCutLeft - descenderOverflow) ((-LongVJut) + QuarterStroke) Stroke + include : VBar.r (xCutRight + descenderOverflow) ((-LongVJut) + QuarterStroke) Stroke