* Add Heavy Black Curved Upwards And Rightwards Arrow (U+27A6) for Agnoster compatibility.

* Add characters:
   - Commercial Minus Sign (`U+2052`).
   - Precedes Under Relation (`U+22B0`) and Succeeds Under Relation (`U+22B1`)
   - Heavy Black Curved Downwards And Rightwards Arrow (`U+27A5`)
This commit is contained in:
be5invis 2021-03-01 22:02:49 -08:00
parent 4cee9a70bc
commit 217e66d95f
4 changed files with 79 additions and 17 deletions

5
changes/5.0.5.md Normal file
View file

@ -0,0 +1,5 @@
* Add Heavy Black Curved Upwards And Rightwards Arrow (`U+27A6`) for Agnoster compatibility.
* Add characters:
- Commercial Minus Sign (`U+2052`).
- Precedes Under Relation (`U+22B0`) and Succeeds Under Relation (`U+22B1`)
- Heavy Black Curved Downwards And Rightwards Arrow (`U+27A5`)

View file

@ -26,6 +26,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
define halfArrowSw : arrowSw / 2
define fine : AdviceStroke 3.5
define terminal : AdviceStroke 5
define halfTerminal : terminal / 2
define doubleArrowStemWidth : arrowHeadSize * 1.1
define waveArrowAmplitude : (Width - SB) * DesignParameters.arrow_size * 1.1
@ -67,6 +68,15 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
flat (mag - [Math.abs s] / 2) 0
curl [mix mag 0 p] 0
define [SemiHookArrowBar x1 y1 x2 y2 halfSw halfFine s w] : begin
return : PointingTo x1 y1 x2 y2 : lambda [mag] : begin
local p : (mag - o - halfSw * [fallback w 1.1]) / mag
dispiro
straight.[if (s > 0) 'down' 'up'].start (mag - O) s [widths.center (halfFine * 2)]
arcvh
flat (mag - [Math.abs s] / 2) 0 [widths.center (halfSw * 2)]
curl [mix mag 0 p] 0
define [ArrowHead x1 y1 x2 y2 _size] : union
LHSHalfArrowHead x1 y1 x2 y2 0 _size
RHSHalfArrowHead x1 y1 x2 y2 0 _size
@ -164,25 +174,34 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
local x1CoA : mix x1 x2 (-0.05)
local y1CoA : mix y1 y2 (-0.05)
if (color == "white") : return : difference
union
TriangleArrowHead x1 y1 x2 y2 headWidth headLen
ArrowBar x1 y1 x2 y2 (halfBarWidth + fine / 2) 2
union
TriangleArrowHead x1a y1a x2a y2a (headWidth - innerHeaderLengthShrink * headWidth / headLen) (headLen - innerHeaderLengthShrink)
ArrowBar x1a y1a x2a y2a (halfBarWidth - fine / 2) 2
return : match color
[Just 'white'] : difference
union
TriangleArrowHead x1 y1 x2 y2 headWidth headLen
ArrowBar x1 y1 x2 y2 (halfBarWidth + fine / 2) 2
union
TriangleArrowHead x1a y1a x2a y2a (headWidth - innerHeaderLengthShrink * headWidth / headLen) (headLen - innerHeaderLengthShrink)
ArrowBar x1a y1a x2a y2a (halfBarWidth - fine / 2) 2
if (color == "white-open") : return : difference
union
TriangleArrowHead x1 y1 x2 y2 headWidth headLen
ArrowBar x1 y1 x2 y2 (halfBarWidth + fine / 2) 2
union
TriangleArrowHead x1CoA y1CoA x2a y2a (headWidth - innerHeaderLengthShrink * headWidth / headLen) (headLen - innerHeaderLengthShrink)
ArrowBar x1CoA y1CoA x2a y2a (halfBarWidth - fine / 2) 2
[Just "white-open"] : difference
union
TriangleArrowHead x1 y1 x2 y2 headWidth headLen
ArrowBar x1 y1 x2 y2 (halfBarWidth + fine / 2) 2
union
TriangleArrowHead x1CoA y1CoA x2a y2a (headWidth - innerHeaderLengthShrink * headWidth / headLen) (headLen - innerHeaderLengthShrink)
ArrowBar x1CoA y1CoA x2a y2a (halfBarWidth - fine / 2) 2
if (color == "black") : return : union
TriangleArrowHead x1 y1 x2 y2 headWidth headLen
ArrowBar x1 y1 x2 y2 halfBarWidth 2
[Just "black"] : union
TriangleArrowHead x1 y1 x2 y2 headWidth headLen
ArrowBar x1 y1 x2 y2 halfBarWidth 2
[Just "blackSemiHookR"] : union
TriangleArrowHead x1 y1 x2 y2 headWidth headLen
SemiHookArrowBar x1 y1 x2 y2 halfBarWidth halfTerminal headWidth 2
[Just "blackSemiHookL"] : union
TriangleArrowHead x1 y1 x2 y2 headWidth headLen
SemiHookArrowBar x1 y1 x2 y2 halfBarWidth halfTerminal (-headWidth) 2
define [BarbArrowHead x1 y1 x2 y2 width length thickness] : new-glyph : glyph-proc
include : PointingTo x1 y1 x2 y2 : lambda [mag] : begin
@ -438,6 +457,9 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
DoubleArrow [ThickArrowShape 'black'] [MangleName 'uni2B0C'] [MangleUnicode 0x2B0C] arrowSB SymbolMid arrowRSB SymbolMid
DoubleArrow [ThickArrowShape 'black'] [MangleName 'uni2B0D'] [MangleUnicode 0x2B0D] arrowMidX arrowBot arrowMidX arrowTop
MkArrow [ThickArrowShape 'blackSemiHookL'] [MangleName 'uni27A5'] [MangleUnicode 0x27A5] arrowSB SymbolMid arrowRSB SymbolMid
MkArrow [ThickArrowShape 'blackSemiHookR'] [MangleName 'uni27A6'] [MangleUnicode 0x27A6] arrowSB SymbolMid arrowRSB SymbolMid
do "Barb arrows"
define BarbHeavyWideHeaded : BarbArrowShape 0.25 : UnicodeWeightGrade 9 MosaicWidthScalar
MkArrow BarbHeavyWideHeaded [MangleName 'uni2794'] [MangleUnicode 0x2794] arrowSB SymbolMid arrowRSB SymbolMid

View file

@ -238,6 +238,8 @@ glyph-block Symbol-Math-Relation : begin
define [NormalSupersetShape top bot l r s] : LigationGreaterShape top bot l r s s 0
# Sym parameters
local approxDist : EqualHalfSpace * 1.75
local symMag : (OperTop - SymbolMid) * 0.17
@ -450,6 +452,34 @@ glyph-block Symbol-Math-Relation : begin
turned 'turnSucceedsEqSlant' 0x22DE 'succeedsEqSlant' Middle SymbolMid
turned 'turnPrecedesEqSlant' 0x22DF 'precedesEqSlant' Middle SymbolMid
define [PrecedesUnderRelationShape t b l r s] : glyph-proc
local yBias : s * 0.375
local fine : s * CThin
local hookDepth : Math.max ((r - l) / 4) (s * 2)
local hookWidth : Math.max ((t - b) / 6) (s * 1.25)
include : dispiro
straight.right.start (r - hookDepth) (t - O + yBias) [widths.rhs.heading s Rightward]
archv
g4.down.mid r (t - hookWidth + yBias) [heading Downward]
arcvh
straight.left.end l ([mix t b 0.5] + s / 2 - fine) [widths.rhs.heading fine Leftward]
include : dispiro
straight.right.start (r - hookDepth) (b + O - yBias) [widths.lhs.heading s Rightward]
archv
g4.up.mid r (b + hookWidth - yBias) [heading Upward]
arcvh
straight.left.end l ([mix t b 0.5] - s / 2 + fine) [widths.lhs.heading fine Leftward]
define [SucceedsUnderRelationShape t b l r s] : new-glyph : glyph-proc
include : PrecedesUnderRelationShape t b l r s
include : FlipAround [mix l r 0.5] [mix t b 0.5]
create-glyph 'precedesUnderRelation' 0x22B0 : AsRadical : PrecedesUnderRelationShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB OperatorStroke
create-glyph 'succeedsUnderRelation' 0x22B1 : AsRadical : SucceedsUnderRelationShape (SymbolMid + dH) (SymbolMid - dH) SB RightSB OperatorStroke
create-glyph 'sym' 0x223C : symWave SymbolMid 1
create-glyph 'flipSym' 0x223D : symWave SymbolMid (-1)

View file

@ -1472,6 +1472,11 @@ glyph-block Symbol-Punctuation-Percentages : begin
include : VBarLeft SB [mix CAP 0 0.3] CAP dotwidth
include : VBarRight RightSB 0 [mix 0 CAP 0.3] dotwidth
create-glyph 'commercialMinusSign' 0x2052 : glyph-proc
include : PercentBarShape [DivFrame 1] Stroke
include : DotAt (SB + PeriodRadius) (CAP - PeriodRadius) PeriodRadius
include : DotAt (RightSB - PeriodRadius) (0 + PeriodRadius) PeriodRadius
create-glyph 'permille.NWID.dots' : glyph-proc
define df : DivFrame para.diversityM
set-width df.width