Add LONG LEFTWARDS ARROW FROM BAR (U+27FB), LONG RIGHTWARDS ARROW FROM BAR (U+27FC) (#1251)

This commit is contained in:
be5invis 2021-11-11 20:48:05 -08:00
parent 3ea5454045
commit b378a95153
3 changed files with 23 additions and 4 deletions

View file

@ -1,3 +1,5 @@
* Add characters
- MODIFIER LETTER CHINESE TONE YIN PING .. MODIFIER LETTER CHINESE TONE YANG RU (`U+A700` .. `U+A707`) (#1249)
- LONG LEFTWARDS ARROW FROM BAR (`U+27FB`), LONG RIGHTWARDS ARROW FROM BAR (`U+27FC`) (#1251)
* Fix serif of Cyrillic capital Ya under italics (#1250).

View file

@ -54,6 +54,8 @@ Inside the plan, top-level properties include:
- As a consequence, the following characters will be **removed**:
- `U+27F5` LONG LEFTWARDS ARROW
- `U+27F6` LONG RIGHTWARDS ARROW
- `U+27FB` LONG LEFTWARDS ARROW FROM BAR
- `U+27FC` LONG RIGHTWARDS ARROW FROM BAR
- `fixed`: Apply `fontconfig-mono` changes and further remove ligations.
* `serifs`: Optional, String, configures style of serifs.
- When set to `slab`, the font will be converted into slab-serif.

View file

@ -27,6 +27,8 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
define doubleArrowStemWidth : arrowHeadSize * 1.1
define waveArrowAmplitude : (Width - SB) * DesignParameters.arrow_size * 1.1
define kLongArrowSB : [DivFrame MosaicWidthScalar 4].leftSB / [DivFrame MosaicWidthScalar 2].leftSB
# Diagonal arrow params
define diagPropX : 1 / [Math.pow 2 (1 / 4)]
define diagPropY : 1 / [Math.pow 2 (1 / 4)]
@ -287,10 +289,11 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
MkArrow ArrowShape [MangleName 'arrowDownLeft'] [MangleUnicode 0x2199] arrowDiagRSB arrowDiagTop arrowDiagSB arrowDiagBot
# These arrows are always wide. In force-monospace variants they will be deleted
if (MosaicWidthScalar > 1 && !para.forceMonospace) : begin
define kLong 0.5
MkArrow ArrowShape 'longArrowLeft' 0x27F5 [mix MosaicWidth arrowRSB kLong] SymbolMid [mix 0 arrowSB kLong] SymbolMid
MkArrow ArrowShape 'longArrowRight' 0x27F6 [mix 0 arrowSB kLong] SymbolMid [mix MosaicWidth arrowRSB kLong] SymbolMid
if (MosaicWidthScalar > 1 && !para.forceMonospace) : do
define l : mix 0 arrowSB kLongArrowSB
define r : mix MosaicWidth arrowRSB kLongArrowSB
MkArrow ArrowShape 'longArrowLeft' 0x27F5 r SymbolMid l SymbolMid
MkArrow ArrowShape 'longArrowRight' 0x27F6 l SymbolMid r SymbolMid
do "Dash Straight Arrow"
MkArrow DashArrowShape [MangleName 'dashArrowLeft'] [MangleUnicode 0x21E0] arrowRSB SymbolMid arrowSB SymbolMid
@ -544,6 +547,18 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1
refer-glyph : MangleName 'arrowDownSK'
HBar (arrowMidX - arrowHeadSize) (arrowMidX + arrowHeadSize) arrowTop fine
if (MosaicWidthScalar > 1 && !para.forceMonospace) : do
define l : mix 0 arrowSB kLongArrowSB
define r : mix MosaicWidth arrowRSB kLongArrowSB
MkArrow ArrowShape 'longArrowLeftSK' null (r - fine / 2) SymbolMid l SymbolMid
MkArrow ArrowShape 'longArrowRightSK' null (l + fine / 2) SymbolMid r SymbolMid
create-glyph 'longBarArrowLeft' 0x27FB : composite-proc
refer-glyph 'longArrowLeftSK'
VBar r (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine
create-glyph 'longBarArrowRight' 0x27FC : composite-proc
refer-glyph 'longArrowRightSK'
VBar l (SymbolMid - arrowHeadSize) (SymbolMid + arrowHeadSize) fine
do "Double-headed Arrows"
DoubleArrow ArrowShape [MangleName 'arrowLeftRight'] [MangleUnicode 0x2194] arrowSB SymbolMid arrowRSB SymbolMid
DoubleArrow ArrowShape [MangleName 'arrowUpDown'] [MangleUnicode 0x2195] arrowMidX arrowTop arrowMidX arrowBot