The problem, mentionned first, with Bidi can be summarized in the two following situations. Sometime you have two (inline) different directional runs, A and B say, which are logically adjacent (thus to be displayed B after A), but:
By UBA, a 1st part of B, the same directional run, sticks to A, the adjacent (previous) directional run.
example-2): A is "
and B is "
In LTR context
PIZZA - 3 review
3 - AZZIP review
- 3" (part of entity B) sticks to "
(A). However, You want "
not to separate from the rest of B.
The problem here is:
Some directional run breaks in two, and shouldn't.
Yes, you can argue that one may consider "
- 3" as part of directional run A, so there is no
B to break. This falls in
the second situation just bellow.
By UBA, B is displayed at once, continuously. Let A be "
ABC" and B be "
Example: In RTL context, you want "
ABC def ghi"
to be displayed
ghi def CBA
instead of actually
def ghi CBA
i.e., where "
ghi" sticks to it's (original) directional run.
The problem here is:
Some directional run should break in two, and it doesn't.
The visual display becomes a bit complicated, when punctuation or mirrored symbols interfere with the affair.
ABC (def] ghi" results "
def] ghi) CBA"
Examples 3 and 4 fall in this categories. Example 4 is a little
more subtle, since the
> sign falls in between the two
same directional runs
that we want to separate.
1- Some directional run "breaks" in two parts, and shouldn't. Consider a LTR context.
B1 A B2
<=== <------- ====>
2- Some directional run should "break" in two parts, and it doesn't. Consider a RTL context.
B2 B1 A
====> ====> <--------
what you get:
B1 B2 A
I found that the notion of "self-contained entity" SCE is what gives some semantic to the notion of "directional run" DR.
In the first example above, there is clearly a SCE, which is "
3 review", and thus should be
kept joined into one and same DR. And in the second above, there are
two SCEs in the same DR, which are "
def" and "
should give rise to two DRs to be displayed one after the other in the context of the base
Hence the current solution to add LRM / RLM such that: