diff --git a/changes/28.0.0.md b/changes/28.0.0.md index 1d3735902..24823b193 100644 --- a/changes/28.0.0.md +++ b/changes/28.0.0.md @@ -25,7 +25,9 @@ - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). + - COMBINING DOUBLE CIRCUMFLEX ABOVE (`U+1DCD`). - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). + - COMBINING DELETION MARK (`U+1DFB`). - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). - TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279D`). - LONG RIGHTWARDS SQUIGGLE ARROW (`U+27FF`). diff --git a/packages/font-glyphs/src/marks/above.ptl b/packages/font-glyphs/src/marks/above.ptl index 87238aa90..71bf28aad 100644 --- a/packages/font-glyphs/src/marks/above.ptl +++ b/packages/font-glyphs/src/marks/above.ptl @@ -170,10 +170,12 @@ glyph-block Mark-Above : begin flat (df.middle - HalfStroke * 1.1 * asciiMarkZoomX * [Math.sqrt df.div]) [mix aboveMarkMid aboveMarkBot asciiMarkZoomY] [widths.center : Stroke * 0.9] curl (df.middle + markExtend * asciiMarkZoomX * [Math.sqrt df.div]) [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] [widths.center : Stroke * 1.1] + glyph-block-export CaretCaronWidth CaretCaronMidSw CaretCaronTerminalSw define CaretCaronWidth : 2 * markExtend + markStress define CaretCaronMidSw : [StrokeWidthBlend 1.375 1.25] * markStroke define CaretCaronTerminalSw : AdviceStroke 5 + glyph-block-export CaretShape define [CaretLeftShape] : with-params [top bottom xMiddle width swEnd swMid] : dispiro flat (xMiddle - 0.5 * width) bottom [widths.center swEnd] curl xMiddle top [widths.center.heading swMid Upward] @@ -575,7 +577,7 @@ glyph-block Mark-Above : begin create-glyph 'tripleAcuteAbove' 0x1ACB : glyph-proc set-width 0 - include : StdAnchors.impl 'above' 0 1.5 + include : StdAnchors.extraWide local fine : 0.5 * [AdviceStroke 6] local stress : 1.2 * fine @@ -731,7 +733,7 @@ glyph-block Mark-Above : begin include : StdAnchors.mediumWide select-variant 'candrabinduAbove' 0x310 (follow -- 'diacriticDot') - turned 'turncandrabinduAbove' 0x352 'candrabinduAbove' markMiddle aboveMarkMid + turned 'fermataAbove' 0x352 'candrabinduAbove' markMiddle aboveMarkMid alias 'graveToneAbove' 0x340 'graveAbove' alias 'acuteToneAbove' 0x341 'acuteAbove' @@ -938,6 +940,7 @@ glyph-block Mark-Above : begin alias 'cyrlDasiaAbove' 0x485 'revCommaAbove' alias 'cyrlPsiliAbove' 0x486 'commaAbove' + create-glyph 'cyrlPalatilizationAbove' 0x484 : glyph-proc set-width 0 include : StdAnchors.wide @@ -951,6 +954,7 @@ glyph-block Mark-Above : begin g2.left.mid markMiddle (aboveMarkTop - markHalfStroke) [heading Leftward] alsoThru.g2 0.5 0.5 g2.left.end leftEnd ([mix aboveMarkBot aboveMarkTop 0.5] - markHalfStroke) [heading Leftward] + create-glyph 'cyrlPokrytieAbove' 0x487 : glyph-proc set-width 0 include : StdAnchors.wide @@ -1124,6 +1128,29 @@ glyph-block Mark-Above : begin include : VBar.m markMiddle aboveMarkBot aboveMarkTop (markFine * 2) include : HBar.t (markMiddle - markExtend) (markMiddle + markExtend) aboveMarkTop (markFine * 2) + create-glyph 'deletionMarkAbove' 0x1DFB : glyph-proc + set-width 0 + include : StdAnchors.medium + + local wide : markExtend * 0.3 + local d : markExtend * 0.7 + + local fine : 0.5 * [Math.min ([AdviceStroke 3.5] / Stroke * markStroke) (markExtend / 3)] + local stress : 1.2 * fine + + include : dispiro + widths.center (stress * 2) + flat (markMiddle - d + wide) aboveMarkTop [heading Downward] + curl (markMiddle - d - wide) aboveMarkBot [widths.heading fine fine Downward] + include : dispiro + widths.center (stress * 2) + flat (markMiddle + wide) aboveMarkTop [heading Downward] + curl (markMiddle - wide) aboveMarkBot [widths.heading fine fine Downward] + include : dispiro + widths.center (stress * 2) + flat (markMiddle + d + wide) aboveMarkTop [heading Downward] + curl (markMiddle + d - wide) aboveMarkBot [widths.heading fine fine Downward] + # Scaled-down glyphs for Vietnamese's secondary mark define [VNSecondaryMark s kx ky d] : glyph-proc include : ScaleAround markMiddle aboveMarkMid s s diff --git a/packages/font-glyphs/src/marks/tie.ptl b/packages/font-glyphs/src/marks/tie.ptl index 2b04c5d01..d9176d4cb 100644 --- a/packages/font-glyphs/src/marks/tie.ptl +++ b/packages/font-glyphs/src/marks/tie.ptl @@ -13,7 +13,8 @@ glyph-block Mark-Tie : begin glyph-block-import Mark-Shared-Metrics : markExtend markHalfStroke markStress markFine glyph-block-import Mark-Shared-Metrics : markMiddle markDotsRadius glyph-block-import Mark-Above : aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack - glyph-block-import Mark-Above : TildeShape + glyph-block-import Mark-Above : TildeShape CaretShape CaretCaronWidth + glyph-block-import Mark-Above : CaretCaronMidSw CaretCaronTerminalSw glyph-block-import Mark-Below : belowMarkBot belowMarkTop belowMarkMid define aboveTieBase : aboveMarkStack - AccentClearance @@ -127,3 +128,18 @@ glyph-block Mark-Tie : begin leftEnd -- tieLeft rightEnd -- tieRight hs -- markHalfStroke + + create-glyph 'circumflexTieAbove' 0x1DCD : glyph-proc + set-width 0 + set-mark-anchor 'tieAbove' 0 aboveTieBase 0 aboveTieTop + set-base-anchor 'aboveBraceL' (0 - 0.5 * markExtend) aboveTieMid + set-base-anchor 'aboveBraceR' (0 + 0.5 * markExtend) aboveTieMid + + TieGlyph.set currentGlyph + include : CaretShape + xMiddle -- 0 + width -- CaretCaronWidth + top -- aboveTieTop + markFine * 0.7 + bottom -- aboveTieBottom + markStress - markFine + swEnd -- CaretCaronTerminalSw + swMid -- CaretCaronMidSw