Proposing new arrow characters with Bidi_Mirrored=Yes

Peter Constable pgcon6 at msn.com
Sat Apr 12 01:55:42 CDT 2025


Why is the directionality being determined by the directionality of the two replacement strings rather than the directionality of the matrix UI display language?


Peter

-----Original Message-----
From: Unicode <unicode-bounces at corp.unicode.org> On Behalf Of Nitai Sasson via Unicode
Sent: Thursday, April 10, 2025 3:04 PM
To: Doug Ewell <doug at ewellic.org>
Cc: unicode at corp.unicode.org
Subject: RE: RE: Proposing new arrow characters with Bidi_Mirrored=Yes






On Friday, 11 April 2025 at 00:27, Doug Ewell via Unicode <unicode at corp.unicode.org> wrote:

> OK, so just to be clear, you’re talking about a mechanism where the user enters:
>
> U+05D0 HEBREW LETTER ALEF
> U+0020 SPACE
> U+002D HYPHEN-MINUS
> U+002D HYPHEN-MINUS
> U+003E GREATER-THAN SIGN
> U+05D1 HEBREW LETTER BET
>
> (where the entire sequence --> is mirrored to look like <-- when surrounded by strong RTL characters) and have it replaced by:
>
>
> U+2192 RIGHTWARDS ARROW
>
> except that the arrow is visually mirrored depending on the directionality of the surrounding characters.
>
> From my casual reading, it feels like two separate topics are being discussed — glyph mirroring, and replacement of Basic Latin fallback input with true arrow characters — and I want to make sure I understand the use case.

That is 100% correct. Including the bit about these being two topics.

The replacement of Basic Latin fallback input with true arrow characters is an example use case of the proposed solution.

Here is another example use case: a string template "%s → %s" where the input strings are of unknown directionality, and the intention is for the arrow to point "forwards" from the first argument to the second argument. For the sake of argument, both strings are guaranteed to have the same directionality throughout.

Glyph mirroring is the solution to these example use cases, and already works for other characters.

For example, the template: "%s ⊸ %s" will always have the line next to the first string and the dot next to the second string. The operator character is U+22B8 MULTIMAP https://util.unicode.org/UnicodeJsps/character.jsp?a=22B8

Demonstration:

one ⊸ two
אחד ⊸ שתיים

Results may depend on your system, but on my screen the operator points in opposite directions between these two lines.

The discussion is about making this behavior available for arrow characters.





More information about the Unicode mailing list