From: Philippe Verdy (verdy_p@wanadoo.fr)
Date: Fri May 14 2004 - 14:52:22 CDT
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