[xsl] xsl-fo problem - list item indents messed when item is a table

Subject: [xsl] xsl-fo problem - list item indents messed when item is a table
From: "Trevor Nicholls" <trevor@xxxxxxxxxxxxxxxxxx>
Date: Wed, 9 Mar 2011 23:55:58 +1300
Can somebody see what I am doing wrong here please? I am trying to implement
something like marginalia but as my FO processor is FOP I cannot use
fo:float. The technique I have used works on most elements in our documents
but goes wrong in lists.

The following FO file displays a much greater gap between the bullet point
and the item content if there is a version on the item. I have tried
tinkering with start indents and widths but nothing I do (so far) produces a
consistent indent.

Thanks in advance
Trevor


============ version-right.fo ============

<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format";>
  <fo:layout-master-set>
    <fo:simple-page-master page-height="27.94cm" page-width="21.59cm"
margin-top="1.91cm" margin-bottom="1.27cm" margin-left="4.04cm"
margin-right="2.54cm" master-name="Std-page">
      <fo:region-body margin-top="1.91cm" margin-bottom="1.91cm"/>
      <fo:region-before extent="1cm"/>
      <fo:region-after extent="1cm"/>
    </fo:simple-page-master>
  </fo:layout-master-set>

  <fo:page-sequence color="black" font-family="Times,serif" font-size="11pt"
font-style="normal" font-weight="normal" master-reference="Std-page">
    <fo:flow flow-name="xsl-region-body">
      <fo:block id="Definition_lists" start-indent="-1.5cm"
keep-with-next.within-page="always" space-before.minimum="0.8em"
space-before.optimum="1em" space-before.maximum="1.2em"
space-after.minimum="0.4em" space-after.optimum="0.5em"
space-after.maximum="0.6em">
        <fo:block font-family="Arial,sans-serif" font-size="165%"
font-weight="bold">Definition lists</fo:block>
      </fo:block>
      <fo:block space-before.minimum="0.4em" space-before.optimum="0.5em"
space-before.maximum="0.6em" space-after.minimum="0.4em"
space-after.optimum="0.5em" space-after.maximum="0.6em">There are three
specialist definition elements provided by our document schema. We
have:</fo:block>
      <fo:list-block space-before.minimum="0.8em" space-before.optimum="1em"
space-before.maximum="1.2em" space-after.minimum="0.8em"
space-after.optimum="1em" space-after.maximum="1.2em"
provisional-label-separation="0.85mm"
provisional-distance-between-starts="6.35mm">
        <fo:list-item space-before.minimum="0.8em"
space-before.optimum="1em" space-before.maximum="1.2em"
relative-align="baseline">
          <fo:list-item-label end-indent="label-end()">
            <fo:block text-indent="2.1mm">.</fo:block>
          </fo:list-item-label>
          <fo:list-item-body start-indent="body-start()">
            <fo:block space-before="0em" space-after="0em">
              <fo:table table-layout="fixed" width="100%">
                <fo:table-body>
                  <fo:table-row>
                    <fo:table-cell>
                      <fo:block>
                        <fo:block space-before.minimum="0.4em"
space-before.optimum="0.5em" space-before.maximum="0.6em"
space-after.minimum="0.4em" space-after.optimum="0.5em"
space-after.maximum="0.6em"><fo:inline
font-weight="bold">variabledefs</fo:inline> for environment variables, local
variables, global variables, and the like;</fo:block>
                      </fo:block>
                    </fo:table-cell>
                    <fo:table-cell width="0.9cm">
                      <fo:block start-indent="0"
font-family="Arial,sans-serif" color="#666" background-color="#ffd"
padding="0.2em" border-top-color="#ccc" border-left-color="#ccc"
border-right-color="#888" border-bottom-color="#888" border-style="solid"
border-width="1px" text-align="center" font-style="normal"
font-variant="normal" font-size="11pt" font-weight="normal">7.30</fo:block>
                    </fo:table-cell>
                  </fo:table-row>
                </fo:table-body>
              </fo:table>
            </fo:block>
          </fo:list-item-body>
        </fo:list-item>
        <fo:list-item space-before.minimum="0.8em"
space-before.optimum="1em" space-before.maximum="1.2em"
relative-align="baseline">
          <fo:list-item-label end-indent="label-end()">
            <fo:block text-indent="2.1mm">.</fo:block>
          </fo:list-item-label>
          <fo:list-item-body start-indent="body-start()">
            <fo:block space-before="0em" space-after="0em">
              <fo:block space-before.minimum="0.4em"
space-before.optimum="0.5em" space-before.maximum="0.6em"
space-after.minimum="0.4em" space-after.optimum="0.5em"
space-after.maximum="0.6em"><fo:inline
font-weight="bold">switchdefs</fo:inline> for commandline switches, command
switches, field switches, sort switches, and so on;</fo:block>
            </fo:block>
          </fo:list-item-body>
        </fo:list-item>
        <fo:list-item space-before.minimum="0.8em"
space-before.optimum="1em" space-before.maximum="1.2em"
relative-align="baseline">
          <fo:list-item-label end-indent="label-end()">
            <fo:block text-indent="2.1mm">.</fo:block>
          </fo:list-item-label>
          <fo:list-item-body start-indent="body-start()">
            <fo:block space-before="0em" space-after="0em">
              <fo:table table-layout="fixed" width="100%">
                <fo:table-body>
                  <fo:table-row>
                    <fo:table-cell>
                      <fo:block>
                        <fo:block space-before.minimum="0.4em"
space-before.optimum="0.5em" space-before.maximum="0.6em"
space-after.minimum="0.4em" space-after.optimum="0.5em"
space-after.maximum="0.6em"><fo:inline
font-weight="bold">functiondefs</fo:inline> for functions and
procedures.</fo:block>
                      </fo:block>
                    </fo:table-cell>
                    <fo:table-cell width="1.6cm">
                      <fo:block start-indent="0"
font-family="Arial,sans-serif" color="#666" background-color="#ffd"
padding="0.2em" border-top-color="#ccc" border-left-color="#ccc"
border-right-color="#888" border-bottom-color="#888" border-style="solid"
border-width="1px" text-align="center" font-style="normal"
font-variant="normal" font-size="11pt"
font-weight="normal">7.30-03a</fo:block>
                    </fo:table-cell>
                  </fo:table-row>
                </fo:table-body>
              </fo:table>
            </fo:block>
          </fo:list-item-body>
        </fo:list-item>
      </fo:list-block>
    </fo:flow>
  </fo:page-sequence>
</fo:root>

Current Thread