为什么Unicode的所有左右箭头都不匹配(尤其是"黑色"箭头)?

M. *_*llo 16 unicode

Unicode有一堆箭头,但其中许多都没有匹配的左右版本.特别是,对于导航相关任务来说,似乎最明显(对我而言)的"黑色"箭头没有左右版本,通常"匹配:"➡通常看起来不像⬅.

字体有明显的自由裁量权,这里:对于某些字体,它们确实匹配.但即使是FileFormat.info上的页面也显示出不同的字符:将右箭头左箭头进行比较.

知道是什么给出的吗?对我来说,对于Unicode中包含的任何箭头,你想要匹配(实际上在所有四个主要方向上)似乎是非常明显的.对于这种特定类型的箭头,向上向下箭头匹配."拐角"甚至还有匹配的箭头.

注意:我在此相关问题上发布了相关评论:找不到unicode右箭头

Ign*_*ams 7

Unicode 1.1.0中引入了右箭头以及所有其他标志.它有足够的时间成为"定制"作为"dingbat",足以与4.0.0中引入的左箭头不匹配.他们应该匹配吗?当然.但并非所有符号字体都涵盖了标志杂项符号和箭头.

  • 所以,如果他们应该匹配,为什么没有"权力"引入匹配的右箭头?名称(黑色向右箭头v.向左黑色箭头)甚至不一致.就好像他们计划引入一个匹配的向右箭头然后只是......没有. (2认同)

tch*_*ist 7

请注意,Unicode NamesList文件包含以下注释:

 ?  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)
Run Code Online (Sandbox Code Playgroud)

所以说欢迎使用字体,但不要求使其看起来像其他黑色箭头.以下是使用uninames脚本检查所有黑色箭头的方法:

$ 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
Run Code Online (Sandbox Code Playgroud)

另请注意,这些代码点未标记为bidi-mirrored.它们不会出现在BidiMirroring文件中,该文件只包含以下内容:

$ 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
Run Code Online (Sandbox Code Playgroud)

如果使用uniprops脚本检查这两个代码点的属性,您将会看到它们之间的差异:

$ 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
Run Code Online (Sandbox Code Playgroud)

  • 有趣.我想最初的想法是,字形的用户只是在软件中镜像它们?(似乎违反了针对常见情况进行优化的原则.)但我仍然不明白为什么,如果添加左,上和下箭头,则不会添加(强制的)"协调"权利.这似乎是一个明显的疏忽. (3认同)