A new example that shows floats and footnotes in the same page.

On Fri, Nov 14, 2014 at 9:34 AM, Luis Bernardo <lmpmberna...@gmail.com>
wrote:

> A more complex example that has a float inside a list.
>
> On Fri, Nov 7, 2014 at 4:41 PM, Luis Bernardo <lmpmberna...@gmail.com>
> wrote:
>
>> A new example that involves a list that starts after a float starts (and
>> before it ends).
>>
>> On Mon, Oct 20, 2014 at 10:33 AM, Luis Bernardo <lmpmberna...@gmail.com>
>> wrote:
>>
>>>
>>> FYI, I have created a new branch where I placed a new approach to side
>>> floats. The idea behind the approach is that if we can handle a change in
>>> IPD from one page to the next we can also do the same in the middle of a
>>> page (where a float causes the change in IPD). This also means that the
>>> implementation suffers, right now, from the same limitations that the
>>> handling of an IPD change across pages has.
>>>
>>> So, in summary:
>>>
>>> Left and right floats are supported in the most simple cases, including
>>> in multi-column layouts. Below are listed the known limitations:
>>>
>>> -- the "clear" fo:float attribute is ignored; only the float attribute
>>> (left or right) is used
>>> -- overlapping of floats in the Y is not handled (even in the case there
>>> would not be overlap in the X direction)
>>> -- floats that extend beyond the body region are not properly handled
>>> and will overflow past the edge of the region
>>> -- floats next to a table or a list are not supported unless the start
>>> and end of the table or list happen in between the start and end of the
>>> float
>>> -- a list can extend past the end of a float but only in situations
>>> where the list item at the end of the (bottom of the) float does not need
>>> to be wrapped; but wrapping before or after the bottom edge of the float is
>>> supported
>>>
>>> Attached is an example and the output (a similar two column example is
>>> in the layout tests).
>>>
>>> Comments, suggestion and bugs are welcome. I would like to commit this
>>> to trunk in a few weeks but meanwhile I will investigate alternative
>>> approaches to some of the current limitations.
>>>
>>>
>>
>
<?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 master-name="simple" page-height="5in" page-width="5in" margin="0.2in">
          <fo:region-body />
        </fo:simple-page-master>
      </fo:layout-master-set>
      <fo:page-sequence master-reference="simple">
        <fo:flow flow-name="xsl-region-body">
          <fo:block font-size="12pt" space-before="3pt" text-indent="0.75cm" text-align="justify">
            Footnote in normal block before a float.<fo:footnote>
              <fo:inline font-size="60%" baseline-shift="super">1)</fo:inline>
              <fo:footnote-body>
                <fo:block start-indent="0.5cm" text-indent="-0.5cm">
                  <fo:inline font-size="60%" baseline-shift="super">1)</fo:inline> The footnote from the normal block before the float.</fo:block>
              </fo:footnote-body>
            </fo:footnote>.
          </fo:block>
          <fo:list-block provisional-distance-between-starts="30pt" provisional-label-separation="10pt">
            <fo:list-item>
              <fo:list-item-label end-indent="label-end()">
                <fo:block>(a)</fo:block>
              </fo:list-item-label>
              <fo:list-item-body start-indent="body-start()">
                <fo:block>
                  Test for float and footnote inside a list. Test for float and footnote inside a list. Test for float and footnote inside a list. (see box)
        <fo:float float="end">
          <fo:block border="1pt solid red" padding="5pt" end-indent="0pt" start-indent="0pt">
            <fo:block-container inline-progression-dimension="120pt">
              <fo:block background-color="yellow">
The former dean's house at the University of Wisconsin (this is the alt text of the image in the Wikipedia page)
              </fo:block>
            </fo:block-container>
          </fo:block>
        </fo:float>
                  Test for float and footnote inside a list. Test for float and footnote inside a list.
                </fo:block>
              </fo:list-item-body>
            </fo:list-item>
            <fo:list-item>
              <fo:list-item-label end-indent="label-end()">
                <fo:block>(b)</fo:block>
              </fo:list-item-label>
              <fo:list-item-body start-indent="body-start()">
                <fo:block>
                  Footnote in list that is being wrapped around a float.<fo:footnote>
                  <fo:inline font-size="60%" baseline-shift="super">2)</fo:inline>
                    <fo:footnote-body>
                      <fo:block start-indent="0.5cm" text-indent="-0.5cm">
                        <fo:inline font-size="60%" baseline-shift="super">2)</fo:inline> The footnote from the list that is being wrapped around a float.</fo:block>
                    </fo:footnote-body>
                  </fo:footnote>.
                  Test for float and footnote inside a list. Test for float and footnote inside a list. Test for float and footnote inside a list. Test for float and footnote inside a list. Test for float and footnote inside a list.
                </fo:block>
              </fo:list-item-body>
            </fo:list-item>
          </fo:list-block>
          <fo:block font-size="12pt" space-before="3pt" text-indent="0.75cm" text-align="justify">
            Footnote in normal block after the float.<fo:footnote>
              <fo:inline font-size="60%" baseline-shift="super">3)</fo:inline>
              <fo:footnote-body>
                <fo:block start-indent="0.5cm" text-indent="-0.5cm">
                  <fo:inline font-size="60%" baseline-shift="super">3)</fo:inline> The footnote from the normal block after the float.</fo:block>
              </fo:footnote-body>
            </fo:footnote>.
          </fo:block>
          <fo:block>
Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.  Some filler text.
          </fo:block>
        </fo:flow>
      </fo:page-sequence>
    </fo:root>

Attachment: basic-floats-and-footnotes.pdf
Description: Adobe PDF document

Reply via email to