Technical question regarding line wrapping with bidirectional text

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Technical question regarding line wrapping with bidirectional text

Cosmin Apreutesei
Hello everyone,

I'm looking for an answer to a dilemma I have about text layouting and
I was wondering if I might get some thoughts about how that's done in
OO Write.

In short, the Unicode Bidi Algorithm requires that reordering of mixed
RTL/LTR text runs be done after line breaking. But the line wrapping
algorithm needs to know which text runs go first/last on each line in
order to compute the line width, because there might be diff. amount
of whitespace between runs, so depending on the order of the runs
within the line, the line will have a diff. width. Looks like a
chicken-egg problem and I can't figure it out. Why is this not a
problem in any bidi-enabled text editor? How is that solved in
practice?

Thanks!

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

RE: Technical question regarding line wrapping with bidirectional text

Howard Morris (aka Col Boogie)
This is how I do it in practice. Open office knows which fonts or parts of fonts is “rtl” versus “ltr”.  So if I want to insert Hebrew in the middle of an English document, I insert special (Hebrew) characters from the David font into the document. However, I never tried this over a line break, but I assume it will work reasonably well by making blocks of the two directions and keeping them together.



Howard



Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10



________________________________
From: Cosmin Apreutesei <[hidden email]>
Sent: Monday, August 27, 2018 8:27:09 AM
To: [hidden email]
Subject: Technical question regarding line wrapping with bidirectional text

Hello everyone,

I'm looking for an answer to a dilemma I have about text layouting and
I was wondering if I might get some thoughts about how that's done in
OO Write.

In short, the Unicode Bidi Algorithm requires that reordering of mixed
RTL/LTR text runs be done after line breaking. But the line wrapping
algorithm needs to know which text runs go first/last on each line in
order to compute the line width, because there might be diff. amount
of whitespace between runs, so depending on the order of the runs
within the line, the line will have a diff. width. Looks like a
chicken-egg problem and I can't figure it out. Why is this not a
problem in any bidi-enabled text editor? How is that solved in
practice?

Thanks!

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]