Loading ...
Sorry, an error occurred while loading the content.

Re: [XSL-FO] fo:list-block alighed to the right

Expand Messages
  • MURAKAMI Shinyu
    ... There are several problems. 1) writing-mode property does not apply to fo:list-block. XSL CR spec [7.26.7 writing-mode ] says: The writing-mode property
    Message 1 of 2 , Jun 28, 2001
    • 0 Attachment
      At Wed, 27 Jun 2001 13:34:18 -0000, royr@... wrote:
      > I need to create a bulletted list in Hebrew - bullets to the right,
      > and text aligned to the right.
      >
      > The text is aligned ok by using the text-align="right" attribute, but
      > I can't get the bullets to align too.
      >
      > <fo:list-block provisional-distance-between-starts="18pt" provisional-
      > label-separation="3pt" text-align="right" direction="rtl" writing-
      > mode="rl-tb">
      > <fo:list-item>
      > <fo:list-item-label end-indent="label-end()">
      > <fo:block>•</fo:block>
      > </fo:list-item-label>
      > <fo:list-item-body start-indent="body-start()">
      > <fo:block>Hebrew Text</fo:block>
      > </fo:list-item-body>
      > </fo:list-item>
      > </fo:list-block>

      There are several problems.

      1) writing-mode property does not apply to fo:list-block.

      XSL CR spec [7.26.7 "writing-mode"] says:

      The "writing-mode" property applies only to formatting objects that
      set up a reference-area (for XSL these are: fo:simple-page-master,
      fo:region-*, fo:table, fo:block-container, and fo:inline-container.

      If you want whole "rl-tb" document you should specify writing-mode=
      "rl-tb" on the fo:root, otherwise you should use fo:block-container.

      e.g.
      <fo:block-container writing-mode="rl-tb">
      <fo:list-block provisional-distance-between-starts="18pt"
      provisional-label-separation="3pt">
      <fo:list-item>
      <fo:list-item-label end-indent="label-end()">
      <fo:block>•</fo:block>
      </fo:list-item-label>
      <fo:list-item-body start-indent="body-start()">
      <fo:block>Hebrew Text</fo:block>
      </fo:list-item-body>
      </fo:list-item>
      </fo:list-block>
      </fo:block-container>

      2) text-align="right" should not be used.

      See [7.14.9 "text-align"] of XSL CR.

      left
      Interpreted as "text-align='start'".
      right
      Interpreted as "text-align='end'".

      It means that the "right" causes LEFT-aligned in "rl-tb" writing-mode.

      3) direction="rtl"

      The "direction" need not be specified on block-level FOs since it is
      determined by the writing-mode.

      A simple "direction" example is:
      (in writing-mode="rl-tb")
      ......
      <fo:block>
      THIS IS HEBREW TEXT
      <fo:bidi-override unicode-bidi="embed" direction="ltr">
      this is english text inline embedded
      </fo:bidi-override>
      THIS IS HEBREW TEXT
      </fo:block>

      4) you need an XSL-FO implementation supporting "rl-tb" writing-mode.

      Antenna House XSL Formatter (i am a developer) supports writing-mode=
      "rl-tb" but has limitations. The [5.8 Unicode Bidi Processing] of XSL
      spec is not implemented yet. That is, the fo:bidi-override (the example
      is above) need be used explicitly whenever the inline direction changes.
      (It will be fixed in the future, but probably not very near future)

      I don't know about other implementaions supporting "rl-tb", sorry.


      Hope this helps.

      Shinyu Murakami
    Your message has been successfully submitted and would be delivered to recipients shortly.