diff --git a/changes/29.0.0.md b/changes/29.0.0.md index bf4048929a..ad0d35c69a 100644 --- a/changes/29.0.0.md +++ b/changes/29.0.0.md @@ -22,17 +22,19 @@ - RIGHT VERTICAL RULER SEGMENT (`U+1CC06`) (Purposed for Unicode 16; L2/21-235). - LOWER RIGHT RULER SEGMENT (`U+1CC07`) (Purposed for Unicode 16; L2/21-235). - BOX DRAWINGS LIGHT HORIZONTAL AND UPPER RIGHT (`U+1CC1B`) ... BOX DRAWINGS LIGHT BOTTOM AND LOWER LEFT (`U+1CC1E`) (Purposed for Unicode 16; L2/21-235). - - BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT (`U+1FBD8`) ... BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO LOWER LEFT (`U+1FBDB`) (Purposed for Unicode 16; L2/21-235). - SEPARATED BLOCK QUADRANT-1 (`U+1CC21`) ... SEPARATED BLOCK QUADRANT-1234 (`U+1CC2F`) (Purposed for Unicode 16; L2/21-235). - BLACK NEUTRAL FACE (`U+1CC6F`) (Purposed for Unicode 16; L2/21-235). - VERTICAL LINE WITH FOUR TICK MARKS (`U+1CC90`) (Purposed for Unicode 16; L2/21-235). - HORIZONTAL LINE WITH FOUR TICK MARKS (`U+1CC91`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS DOUBLE DIAGONAL LOWER LEFT TO MIDDLE CENTRE TO LOWER RIGHT (`U+1CE09`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS DOUBLE DIAGONAL UPPER LEFT TO MIDDLE CENTRE TO UPPER RIGHT (`U+1CE0A`) (Purposed for Unicode 16; L2/21-235). - SEPARATED BLOCK SEXTANT-1 (`U+1CE51`) ... SEPARATED BLOCK SEXTANT-123456 (`U+1CE8F`) (Purposed for Unicode 16; L2/21-235). - UPPER LEFT ONE SIXTEENTH BLOCK (`U+1CE90`) ... LOWER HALF RIGHT ONE QUARTER BLOCK (`U+1CEAF`) (Purposed for Unicode 16; L2/21-235). - FOLDER (`U+1F5C0`) (#2181). - - NEGATIVE SQUARED LEFTWARDS ARROW (`U+1F8B4`) ... NEGATIVE SQUARED DOWNWARDS ARROW (`U+1F8B7`) (Purposed for Unicode 16; L2/21-235). + - DOWNWARDS BLACK ARROW TO BAR (`U+1F8B3`) ... SOUTH WEST ARROW FROM BAR (`U+1F8BB`) (Purposed for Unicode 16; L2/21-235). - LEFT TWO THIRDS BLOCK (`U+1FBCE`) (Purposed for Unicode 16; L2/21-235). - LEFT ONE THIRD BLOCK (`U+1FBCF`) (Purposed for Unicode 16; L2/21-235). + - BOX DRAWINGS LIGHT DIAGONAL MIDDLE RIGHT TO LOWER LEFT (`U+1FBD0`) ... BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO MIDDLE RIGHT TO LOWER LEFT (`U+1FBDF`) (Purposed for Unicode 16; L2/21-235). - UPPER CENTRE ONE QUARTER BLOCK (`U+1FBE4`) ... MIDDLE RIGHT ONE QUARTER BLOCK (`U+1FBE7`) (Purposed for Unicode 16; L2/21-235). * Fix a disjoint stroke of Outlined Curly `Z` under some weights (#2195). * Unify diagonal box drawings' angles (#2197). diff --git a/packages/font-glyphs/src/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl index e2261c4f66..e9849bcda1 100644 --- a/packages/font-glyphs/src/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -179,6 +179,22 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : ArrowHead x1 y1 x2 y2 size include : ArrowBar x1 y1 x2 y2 halfArrowSw + define [ArrowTailBarShape x1 y1 x2 y2 size sw] : begin + return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin + dispiro + widths.rhs sw + flat mag size + curl mag (-size) + + define [ArrowFromBarShape x1 y1 x2 y2 size] : glyph-proc + local width : Math.abs (x1 - x2) + local height : Math.abs (y1 - y2) + local barShrink : size * [Math.min (width / height) (height / width)] + local p : barShrink / [Math.hypot width height] + include : ArrowHead x1 y1 x2 y2 size + include : ArrowBar [mix x1 x2 p] [mix y1 y2 p] x2 y2 halfArrowSw + include : ArrowTailBarShape [mix x1 x2 p] [mix y1 y2 p] x2 y2 size fine + define [ThinArrowShape x1 y1 x2 y2 size] : glyph-proc include : ArrowHead x1 y1 x2 y2 size include : ArrowBar x1 y1 x2 y2 (0.5 * [mix fine terminal 0.5]) @@ -933,12 +949,18 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 MkArrow ArrowShape [MangleName 'arrowRightK'] null arrowSB SymbolMid (arrowRSB - fine) SymbolMid MkArrow ArrowShape [MangleName 'arrowUpK'] null arrowMidX arrowBot arrowMidX (arrowTop - fine) MkArrow ArrowShape [MangleName 'arrowDownK'] null arrowMidX arrowTop arrowMidX (arrowBot + fine) - MkArrow ArrowShape [MangleName 'arrowLeftSK'] null (arrowRSB - fine / 2) SymbolMid arrowSB SymbolMid - MkArrow ArrowShape [MangleName 'arrowRightSK'] null (arrowSB + fine / 2) SymbolMid arrowRSB SymbolMid - MkArrow ArrowShape [MangleName 'arrowUpSK'] null arrowMidX (arrowBot + fine / 2) arrowMidX arrowTop - MkArrow ArrowShape [MangleName 'arrowDownSK'] null arrowMidX (arrowTop - fine / 2) arrowMidX arrowBot + MkArrow [ThickArrowShape 'black'] [MangleName 'blackArrowDownK'] null arrowMidX arrowTop arrowMidX (arrowBot + fine) MkArrow ArrowShape [MangleName 'arrowUpLeftTK'] null arrowRSB arrowBot arrowSB (arrowTop - [Math.max (arrowWidth / 8) (fine * 1.5)]) + MkArrow ArrowFromBarShape [MangleName 'barArrowLeft'] [MangleUnicode 0x21A4] arrowRSB SymbolMid arrowSB SymbolMid + MkArrow ArrowFromBarShape [MangleName 'barArrowUp'] [MangleUnicode 0x21A5] arrowMidX arrowBot arrowMidX arrowTop + MkArrow ArrowFromBarShape [MangleName 'barArrowRight'] [MangleUnicode 0x21A6] arrowSB SymbolMid arrowRSB SymbolMid + MkArrow ArrowFromBarShape [MangleName 'barArrowDown'] [MangleUnicode 0x21A7] arrowMidX arrowTop arrowMidX arrowBot + MkArrow ArrowFromBarShape [MangleName 'barArrowUpLeft'] [MangleUnicode 0x1F8B8] arrowDiagRSB arrowDiagBot arrowDiagSB arrowDiagTop + MkArrow ArrowFromBarShape [MangleName 'barArrowUpRight'] [MangleUnicode 0x1F8B9] arrowDiagSB arrowDiagBot arrowDiagRSB arrowDiagTop + MkArrow ArrowFromBarShape [MangleName 'barArrowDownRight'] [MangleUnicode 0x1F8BA] arrowDiagSB arrowDiagTop arrowDiagRSB arrowDiagBot + MkArrow ArrowFromBarShape [MangleName 'barArrowDownLeft'] [MangleUnicode 0x1F8BB] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot + create-glyph [MangleName 'arrowBarLeft'] [MangleUnicode 0x21E4] : composite-proc refer-glyph : MangleName 'arrowLeftK' VBar.m arrowSB (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine @@ -951,18 +973,9 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 create-glyph [MangleName 'arrowBarDown'] [MangleUnicode 0x2913] : composite-proc refer-glyph : MangleName 'arrowDownK' HBar.m (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowBot fine - create-glyph [MangleName 'barArrowLeft'] [MangleUnicode 0x21A4] : composite-proc - refer-glyph : MangleName 'arrowLeftSK' - VBar.m arrowRSB (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine - create-glyph [MangleName 'barArrowRight'] [MangleUnicode 0x21A6] : composite-proc - refer-glyph : MangleName 'arrowRightSK' - VBar.m arrowSB (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine - create-glyph [MangleName 'barArrowUp'] [MangleUnicode 0x21A5] : composite-proc - refer-glyph : MangleName 'arrowUpSK' + create-glyph [MangleName 'blackArrowBarDown'] [MangleUnicode 0x1F8B3] : composite-proc + refer-glyph : MangleName 'blackArrowDownK' HBar.m (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowBot fine - create-glyph [MangleName 'barArrowDown'] [MangleUnicode 0x21A7] : composite-proc - refer-glyph : MangleName 'arrowDownSK' - HBar.m (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowTop fine MkArrow [HalfArrowShape RHSHalfArrowHead] [MangleName 'arrowLeftHRK'] null arrowRSB SymbolMid (arrowSB + fine) SymbolMid MkArrow [HalfArrowShape LHSHalfArrowHead] [MangleName 'arrowLeftHLK'] null arrowRSB SymbolMid (arrowSB + fine) SymbolMid diff --git a/packages/font-glyphs/src/symbol/geometric/plain.ptl b/packages/font-glyphs/src/symbol/geometric/plain.ptl index 02593460c3..1c84eaff0b 100644 --- a/packages/font-glyphs/src/symbol/geometric/plain.ptl +++ b/packages/font-glyphs/src/symbol/geometric/plain.ptl @@ -217,7 +217,7 @@ glyph-block Symbol-Geometric-Plain : for-width-kinds WideWidth1 local offsetY : space * 0.45 include : union with-transform [Translate (-offsetX) (-offsetY)] : refer-glyph : MangleName [if square1 'blackMediumSquare' 'whiteMediumSquare'] - with-transform [Translate offsetX offsetY] : refer-glyph : MangleName [if square2 'blackMediumSquare' 'whiteMediumSquare'] + with-transform [Translate offsetX offsetY] : refer-glyph : MangleName [if square2 'blackMediumSquare' 'whiteMediumSquare'] SquareOverlap 'overlapWWSquareRev' 0x29C9 1 0 0 SquareOverlap 'overlapWWSquare' 0x2BBA 0 0 0 diff --git a/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl b/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl index 5059ef9895..1f5cea93c7 100644 --- a/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/box-drawing.ptl @@ -431,27 +431,76 @@ glyph-block Symbol-Mosaic-Box-Drawing : begin DiamondBoxDrawing 0x1FBAD 1 1 1 0 DiamondBoxDrawing 0x1FBAE 1 1 1 1 + create-glyph [MangleName : NameUni 0x1CE09] [MangleUnicode 0x1CE09] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x1FBA7 + include : refer-glyph : MangleName : NameUni 0x1FBDA - create-glyph [MangleName : NameUni 0x1FBBD] [MangleUnicode 0x1FBBD] : glyph-proc + create-glyph [MangleName : NameUni 0x1CE0A] [MangleUnicode 0x1CE0A] : glyph-proc set-width MosaicWidth include : ForceUpright - include : difference - glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588 - glyph-proc : include : refer-glyph : MangleName : NameUni 0x2573 + include : refer-glyph : MangleName : NameUni 0x1FBA6 + include : refer-glyph : MangleName : NameUni 0x1FBD8 - create-glyph [MangleName : NameUni 0x1FBBE] [MangleUnicode 0x1FBBE] : glyph-proc + # Corner-to-Edge Diagonal + define [VDiagonal unicode sx sy] : begin + local fUpwards : sy === bottom + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : intersection + if fUpwards [MaskBelow top] [MaskAbove bottom] + dispiro + widths.center light + flat sx sy + curl [mix sx midx 1.5] [mix sy [if fUpwards top bottom] 1.5] + + define [HDiagonal unicode sx sy] : begin + local fRightwards : sx === left + create-glyph [MangleName : NameUni unicode] [MangleUnicode unicode] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : intersection + if fRightwards [MaskLeft right] [MaskRight left] + dispiro + widths.center light + flat sx sy + curl [mix sx [if fRightwards right left] 1.5] [mix sy midy 1.5] + + HDiagonal 0x1FBD0 left bottom + HDiagonal 0x1FBD1 right top + HDiagonal 0x1FBD2 left top + HDiagonal 0x1FBD3 right bottom + VDiagonal 0x1FBD4 left top + VDiagonal 0x1FBD5 right bottom + VDiagonal 0x1FBD6 right top + VDiagonal 0x1FBD7 left bottom + + create-glyph [MangleName : NameUni 0x1FBDC] [MangleUnicode 0x1FBDC] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x1FBD4 + include : refer-glyph : MangleName : NameUni 0x1FBD6 + + create-glyph [MangleName : NameUni 0x1FBDD] [MangleUnicode 0x1FBDD] : glyph-proc set-width MosaicWidth include : ForceUpright - include : difference - glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588 - glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBA3 + include : refer-glyph : MangleName : NameUni 0x1FBD1 + include : refer-glyph : MangleName : NameUni 0x1FBD3 - create-glyph [MangleName : NameUni 0x1FBBF] [MangleUnicode 0x1FBBF] : glyph-proc + create-glyph [MangleName : NameUni 0x1FBDE] [MangleUnicode 0x1FBDE] : glyph-proc set-width MosaicWidth include : ForceUpright - include : difference - glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588 - glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBAE + include : refer-glyph : MangleName : NameUni 0x1FBD5 + include : refer-glyph : MangleName : NameUni 0x1FBD7 + + create-glyph [MangleName : NameUni 0x1FBDF] [MangleUnicode 0x1FBDF] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : refer-glyph : MangleName : NameUni 0x1FBD0 + include : refer-glyph : MangleName : NameUni 0x1FBD2 + create-glyph [MangleName : NameUni 0x1FBAF] [MangleUnicode 0x1FBAF] : glyph-proc set-width MosaicWidth diff --git a/packages/font-glyphs/src/symbol/mosaic/inverted.ptl b/packages/font-glyphs/src/symbol/mosaic/inverted.ptl index f6f5c68343..19cb96eeba 100644 --- a/packages/font-glyphs/src/symbol/mosaic/inverted.ptl +++ b/packages/font-glyphs/src/symbol/mosaic/inverted.ptl @@ -32,8 +32,9 @@ glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1 create-glyph [MangleName : NameUni 0x25D9] [MangleUnicode 0x25D9] : glyph-proc set-width MosaicWidth - include : refer-glyph : MangleName : NameUni 0x25DA - include : refer-glyph : MangleName : NameUni 0x25DB + include : difference + refer-glyph : MangleName : NameUni 0x2588 + refer-glyph : MangleName 'whiteCircle' # create-glyph [MangleName 'uni1CC8D'] [MangleUnicode 0x1CC8D] : glyph-proc # set-width MosaicWidth @@ -75,3 +76,25 @@ glyph-block Symbol-Geometric-Mosaic-Inverted : for-width-kinds WideWidth1 include : difference refer-glyph : MangleName : NameUni 0x2588 refer-glyph : MangleName 'arrowDown' + + # Box Drawing + create-glyph [MangleName : NameUni 0x1FBBD] [MangleUnicode 0x1FBBD] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : difference + glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588 + glyph-proc : include : refer-glyph : MangleName : NameUni 0x2573 + + create-glyph [MangleName : NameUni 0x1FBBE] [MangleUnicode 0x1FBBE] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : difference + glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588 + glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBA3 + + create-glyph [MangleName : NameUni 0x1FBBF] [MangleUnicode 0x1FBBF] : glyph-proc + set-width MosaicWidth + include : ForceUpright + include : difference + glyph-proc : include : refer-glyph : MangleName : NameUni 0x2588 + glyph-proc : include : refer-glyph : MangleName : NameUni 0x1FBAE