From: Philippe Verdy (firstname.lastname@example.org)
Date: Sun May 16 2004 - 04:47:34 CDT
"Mark E. Shoulson" <email@example.com> wrote:
> I thought a lot of the hassle of the bidi algorithm was to handle
> interactions between RTL and LTR when they occur together (where do you
> break lines, etc).
I fully adhere to this view.
BiDi control is just there to manage the case where characters, in their normal
logical encoded ordering, will not be rendered in a uninterupted row, meaning
that the visual ordering will need contextual handling. This occurs mostly
because of characters that can be used both in RTL and LTR contexts (notably
mirrored characters such as parentheses), and for which there's a need to
describe how they logically associate with surrounding characters.
All the rest is presentation specific and left to the renderer.
The Bidi algorithm describes the relations between the logical and visual
ordering (both are identical if you just consider LTR scripts alone, or RTL
scripts alone, as the left or right alignment to the margin is not relevant for
the Bidi algorithm which does not need to know how rendered text rows should be
aligned, but just to describe where there are directionality breaks to split
text into fragments that have their own directionality and where the renderer is
allowed and recommanded to change the visual ordering to keep the characters
Whever the text will be finally rendered with horizontal or vertical rows, or
with rows aligned to the right or left or top or bottom, or whever rows will be
laid out from top to bottom or other directions is not relevant in the BiDi
algorithm. All what is meant in the Bidi is not the absolute direction or
orientation of text, but only breaks in the text where the main writing
direction will need to be reversed.
That's a preliminary step that occurs BEFORE even rendering the text, and that
guides some encoding conversions between logical and visual ordering (for
example there does exist two separate non-Unicode encodings in Hebrew or Arabic,
and a simple code mapping from the legacy charset to Unicode is HIGHLY dependant
on the Bidi algorithm.)
This archive was generated by hypermail 2.1.5 : Sun May 16 2004 - 04:50:10 CDT