Re: Multiple Directions (was: Re: Coptic/Greek (Re: Phoenician))

From: Philippe Verdy (verdy_p@wanadoo.fr)
Date: Sun May 16 2004 - 04:47:34 CDT

  • Next message: Peter Kirk: "Compatibility equivalents, was: Qamats Qatan"

    "Mark E. Shoulson" <mark@kli.org> 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
    identity).

    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