Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why don't more/all of Unicode's right and left arrows match (in particular the "Black" arrows)?

Tags:

unicode

Unicode has a bunch of arrows, but many of them don't have matching right and left versions. In particular, the "Black" arrows, which seem the most obvious (to me) for use in navigation-related tasks, don't have a left and right version that generally "match:" ➡ doesn't usually look like ⬅.

There is clearly discretion left up to fonts, here: for some fonts, they do match. But even the pages at FileFormat.info show the characters as looking different: compare right arrow against left arrow.

Any idea what gives? It seems pretty obvious (to me) that you'd want matches (in all four cardinal directions, in fact) for any arrow included in Unicode. For this specific kind of arrow, the up and down arrows match. There are even matching arrows for the "corners."

Note: I posted a related comment on this related question: can't find a unicode right arrow

like image 649
M. Anthony Aiello Avatar asked Feb 28 '12 22:02

M. Anthony Aiello


People also ask

What do the black arrows mean?

A black arrow means : -pressing direction. -enter next input. -release input. -release direction.


2 Answers

The right arrow, along with all the other Dingbats, was introduced in Unicode 1.1.0. It had plenty of time to become "customized" as a "dingbat" enough to not match the left arrow, introduced in 4.0.0. Should they match? Sure. But not all symbol fonts cover both Dingbats and Miscellaneous Symbols and Arrows.

like image 168
Ignacio Vazquez-Abrams Avatar answered Nov 11 '22 17:11

Ignacio Vazquez-Abrams


Note that the Unicode NamesList file has these comments:

 ➡  27A1        BLACK RIGHTWARDS ARROW
        * fonts may harmonize this glyph with the style for other black arrows
        x (leftwards black arrow - 2B05)
 ⬅  2B05        LEFTWARDS BLACK ARROW
        x (black rightwards arrow - 27A1)

So that says that fonts are welcome to, but not required to, make that look like the other black arrows. Here’s how to check all the black arrows using the uninames script:

$ uninames BLACK WARDS ARROW
 ➡  27A1        BLACK RIGHTWARDS ARROW
        * fonts may harmonize this glyph with the style for other black arrows
        x (leftwards black arrow - 2B05)
 ➤  27A4        BLACK RIGHTWARDS ARROWHEAD
 ➥  27A5        HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW
 ➦  27A6        HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW
 ➧  27A7        SQUAT BLACK RIGHTWARDS ARROW
 ➨  27A8        HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW
 ➵  27B5        BLACK-FEATHERED RIGHTWARDS ARROW
 ➸  27B8        HEAVY BLACK-FEATHERED RIGHTWARDS ARROW
 ⤝  291D        LEFTWARDS ARROW TO BLACK DIAMOND
 ⤞  291E        RIGHTWARDS ARROW TO BLACK DIAMOND
 ⤟  291F        LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND
 ⤠  2920        RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND
 ⬅  2B05        LEFTWARDS BLACK ARROW
        x (black rightwards arrow - 27A1)
 ⬆  2B06        UPWARDS BLACK ARROW
 ⬇  2B07        DOWNWARDS BLACK ARROW

Note also that these code points are not marked as bidi-mirrored. They do not occur in the BidiMirroring file, which has only these:

$ grep ARROW BidiMirroring.txt
# 29A8; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
# 29A9; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
# 29AA; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
# 29AB; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
# 29AC; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
# 29AD; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
# 29AE; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
# 29AF; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
# 2A17; INTEGRAL WITH LEFTWARDS ARROW WITH HOOK

If you check these two code points’ properties using the uniprops script, you’ll see where they differ ever so slightly:

$ uniprops -a 27A1 2B05
U+27A1 ‹➡› \N{BLACK RIGHTWARDS ARROW}
    \pS \p{So}
    All Any Assigned InDingbats Common Zyyy Dingbats So S Gr_Base Grapheme_Base Graph GrBase Other_Symbol Pat_Syn Pattern_Syntax PatSyn Print Symbol
       X_POSIX_Graph X_POSIX_Print
    Age=1.1 Bidi_Class=ON Bidi_Class=Other_Neutral BC=ON Block=Dingbats Canonical_Combining_Class=0 Canonical_Combining_Class=Not_Reordered CCC=NR
       Canonical_Combining_Class=NR Script=Common Decomposition_Type=None DT=None East_Asian_Width=Neutral Grapheme_Cluster_Break=Other GCB=XX
       Grapheme_Cluster_Break=XX Hangul_Syllable_Type=NA Hangul_Syllable_Type=Not_Applicable HST=NA Joining_Group=No_Joining_Group JG=NoJoiningGroup
       Joining_Type=Non_Joining JT=U Joining_Type=U Line_Break=AL Line_Break=Alphabetic LB=AL Numeric_Type=None NT=None Numeric_Value=NaN NV=NaN
       Present_In=1.1 IN=1.1 Present_In=2.0 IN=2.0 Present_In=2.1 IN=2.1 Present_In=3.0 IN=3.0 Present_In=3.1 IN=3.1 Present_In=3.2 IN=3.2 Present_In=4.0
       IN=4.0 Present_In=4.1 IN=4.1 Present_In=5.0 IN=5.0 Present_In=5.1 IN=5.1 Present_In=5.2 IN=5.2 Present_In=6.0 IN=6.0 SC=Zyyy Script=Zyyy
       Sentence_Break=Other SB=XX Sentence_Break=XX Word_Break=Other WB=XX Word_Break=XX
U+2B05 ‹⬅› \N{LEFTWARDS BLACK ARROW}
    \pS \p{So}
    All Any Assigned InMiscellaneousSymbolsAndArrows Common Zyyy So S Gr_Base Grapheme_Base Graph GrBase Miscellaneous_Symbols_And_Arrows Other_Symbol
       Pat_Syn Pattern_Syntax PatSyn Print Symbol X_POSIX_Graph X_POSIX_Print
    Age=4.0 Bidi_Class=ON Bidi_Class=Other_Neutral BC=ON Block=Miscellaneous_Symbols_And_Arrows Canonical_Combining_Class=0
       Canonical_Combining_Class=Not_Reordered CCC=NR Canonical_Combining_Class=NR Script=Common Decomposition_Type=None DT=None East_Asian_Width=Neutral
       Grapheme_Cluster_Break=Other GCB=XX Grapheme_Cluster_Break=XX Hangul_Syllable_Type=NA Hangul_Syllable_Type=Not_Applicable HST=NA
       Joining_Group=No_Joining_Group JG=NoJoiningGroup Joining_Type=Non_Joining JT=U Joining_Type=U Line_Break=AL Line_Break=Alphabetic LB=AL
       Numeric_Type=None NT=None Numeric_Value=NaN NV=NaN Present_In=4.0 IN=4.0 Present_In=4.1 IN=4.1 Present_In=5.0 IN=5.0 Present_In=5.1 IN=5.1
       Present_In=5.2 IN=5.2 Present_In=6.0 IN=6.0 SC=Zyyy Script=Zyyy Sentence_Break=Other SB=XX Sentence_Break=XX Word_Break=Other WB=XX Word_Break=XX
like image 29
tchrist Avatar answered Nov 11 '22 17:11

tchrist