I should also add that an important effect of using writing-mode="rl" on
fo:page-sequence is that this makes the default bidirectional level
right-to-left on blocks (e.g., paragraphs). If you then need to have certain
blocks use left-to-right as their default bidi level, then you can use one
of the following:

(1) wrap the block's content with fo:bidi-override, e.g.,

<fo:block><fo:bidi-override unicode-bidi="embed"

(2) wrap the block's content with explicit Unicode bidi control characters
(i.e., RLE and PDF):


(3) wrap the block with a relative block-container with a left-to-right
writing mode, e.g.,


These techniques actually produce slightly different treatment at the bidi
level. The first and second above keep the block at the same default bidi
level prescribed by the page-sequence's writing mode, namely right-to-left,
but inserts a new left-to-right embedding level into which the block's
content is scoped. In contrast, the third technique actually changes the
default bidi level of the blocks contained in the block-container to

Note that neither of the following work:

<fo:block writing-mode="lr">...</fo:block>


<fo:block direction="ltr">...</fo:block>

because neither of these properties (writing-mode and direction) apply to
fo:block. It's a little confusing, as one might guess these would work,
however, that's not how XSL-FO is defined.

Note also that techniques (1) and (2) above are logically equivalent. That
is, fo:bidi-override is just a way to express Unicode BIDI control
characters using XML markup instead of plain text control characters.


On Mon, Oct 10, 2011 at 11:07 PM, Jonathan Levinson <> wrote:

> Our team switched to the version at and
> did not run into the issue.
> Our thanks to Glenn Adams for his extremely helpful critique of our .fo
> file.  Specifying writing-mode solved an issue for us.
> Best Regards,
> Jonathan Levinson
> Senior Software Developer
> Object Group
> InterSystems
> > -----Original Message-----
> > From: []
> > Sent: Monday, October 10, 2011 11:01 AM
> > To:
> > Subject: DO NOT REPLY [Bug 51984] Complex script version of FOP goes into
> > infinite loop
> >
> >
> >
> > --- Comment #4 from Matthias Reischenbacher <> 2011-
> > 10-10 15:01:09 UTC --- This could be related to:
> >
> > which was actually a bug introduced in trunk. Probably you are using an
> older
> > version of the complex script branch, where the fix hasn't been merged
> yet.
> >
> > --
> > Configure bugmail:
> > ------- You are receiving this mail because: ------- You are the assignee
> for the
> > bug.

Reply via email to