Yes, this is the algorithm I have read. http://unicode.org/reports/tr9/ But I don't know why user must take a paragraph as a unit to determine the embedding levels. Why can't i shape the text first and then wrapping the line, and determining the embedding levels for characters within a line. finally, reordering the characters within a line. If a paragraph is too long, i think it's a big memory occupied. This would be a limite in embedding system such as mobile phone. On Tue, Aug 23, 2011 at 2:18 AM, CE Whitehead <cewcat...@hotmail.com> wrote:
> Hi. > > I think many line breaks within paragraphs are soft line breaks but that > embedding levels have to be taken into account when deciding the width of > the glyphs; that's as near as I can tell. > > Here is the description of the algorithm -- is this what you have read? > http://unicode.org/reports/tr9/ > Some rules are in fact applied after the line wrapping (after the soft > breaks) -- > "The following rules describe the logical process of finding the correct > display order. As opposed to resolution phases, these rules act on a > per-line basis* and are applied after any line wrapping is applied to the > paragraph.* > Logically there are the following steps: > > - The levels of the text are determined according to the previous > rules. > - The characters are shaped into glyphs according to their context *(taking > the embedding levels into account for mirroring).* > - The accumulated widths of those glyphs *(in logical order)* are used > to determine line breaks. > - For each line, rules L1 > <http://unicode.org/reports/tr9/#L1>–L4<http://unicode.org/reports/tr9/#L4>are > used to reorder the characters on that line." > > > > (I'd have to reread the whole document on line breaking then on bidi to > answer this truely; sorry; hope this helps anyway) > --C. E. Whitehead > cewcat...@hotmail.com >