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

From: Philippe Verdy (verdy_p@wanadoo.fr)
Date: Fri May 14 2004 - 14:52:22 CDT

  • Next message: Anto'nio Martins-Tuva'lkin: "Middle stroke of U+042D"

    Mark wrote:
    > to put the various marks. The bidi algorithm is enough of a headache as
    > it stands, just trying to deal with RTL and LTR scripts and their
    > possible coexistence on a single line. Boustrophedon is far too complex
    > for it.

    May be not.
    Suppose you have to render the following text (raw logical encoding order):

    BOUSTROPHEDONBOUSTROPHEDONlatinlatinlatinlatinlatinlatinlatinlatinHEBREWHEBREWHE
    BREWHEBREWHEBREWHEBREWboustrophedonboustrophedonboustrophedonboustrophedon.

    in a narrow column, starting at upper left position (ignore word break
    positions):

    BOUSTROPHED ---------->\
    HPORTSUOBNO /<----------/
    EDONlatinlatinlati \1--> |2--> (no direction break)
    nlatinlatinlatinlatin |----------->
    latinEHWERBEH |1-->, 2<--| (line breaks in the middle)
    WERBEHWREB <-----------|
    RBEHWERBEH <-----------|
    obEWHEBREW /2<--, 1<--| (no direction break)
    ustrophedonbou \----------->\
    suobnodehports /<-----------/
    trophedonboustr \----------->\
                .nodehpo <-----/

    I expect to avoid all changes of directions when starting a boustrophedon run of
    text: it continues from the previous direction as a Bidi-neutral character
    (whever the glyphs should be mirrored or not when the raw is in the reverse
    direction would be a property of the script for each character, this does not
    alter the global layout). The direction changes automatically between successive
    rendered raws.

    The only complication comes when a boustrophedon character is followed by a
    character with strong directionality. If the final directions are identical,
    there's no problem and the raw continues. Else there's a direction shift and the
    raw is filled in the reverse direction. This may occur after boustrophedon (when
    in a RTL rendering context) and before LTR Latin, or after boustrophedon (when
    in a LTR rendering context) and before RTL Hebrew.

    There's no real change in the Bidi algorithm: raws are filled normally until
    there's no space in the current rendered raw. Boustrophedon characters in these
    raw are bidi-neutral, and inherit of the directionality of the previous
    character.
    We just need to make boustrophedon characters BN (BiDi Neutral), and optionally
    mirrored (depends on the script and each character in that script).



    This archive was generated by hypermail 2.1.5 : Fri May 14 2004 - 14:52:58 CDT