xsl-list
[Top] [All Lists]

Bi-Di Algorithm Control

2002-10-22 09:52:02
I'm generating index entries for Arabic documents (using XSL Formatter 2.3) and I'm running into a problem with the how the bi-di algorithm is being applied. I can solve the problem by adding a bidi-override element to the output FO but that solution is not ideal because it would mean adding markup to the input XML document, which I would like to avoid.

Here is a typical example:
<fo:block-container writing-mode="rl-tb">
<fo:block >Arabic English1 English2<fo:leader leader-length="1em">123</fo:block>
</fo:block-container>

The desired presentation result is:

  123  English1 English2 cibarA

But what I get from XSL Formatter is:

  English1 English2  123 cibarA

That is, the "<fo:leader>123" is taken as part of the left-to-right sequence, which I think is correct application of the Unicode bi-di algorithm.

I'm wondering if there is a Unicode control character of some sort that I can interject into the output to end the recognition of the left-to-right text (as though a normal Arabic character occured after the English text)? I looked through the Unicode database as presented by Unipad but I didn't see anything that looked like what I want.

I guess another question would be does FO define any markup that I could wrap around the entire index entry text (but not including the page number citation) that would also have the defined semantic of limiting the scope of the bidi recognition? I have tried putting a bidi-override around the leader (between the index entry text and the page number citation to no effect) but it does not produce the desired effect.

I am continuing to work with Antenna House support on this issue but I was hoping there might be an easy solution that wouldn't require more work on anyone's part.

Thanks,

Eliot
--
W. Eliot Kimber, eliot(_at_)isogen(_dot_)com
Consultant, ISOGEN International

1016 La Posada Dr., Suite 240
Austin, TX  78752 Phone: 512.656.4139


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>