xmlgraphics-fop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 51304] New: footnotes in multi-column region-body overlap
Date Tue, 31 May 2011 19:21:27 GMT

             Bug #: 51304
           Summary: footnotes in multi-column region-body overlap
           Product: Fop
           Version: 1.1dev
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: major
          Priority: P2
         Component: page-master/layout
        AssignedTo: fop-dev@xmlgraphics.apache.org
        ReportedBy: adelmelle@apache.org
    Classification: Unclassified

Created attachment 27098
  --> https://issues.apache.org/bugzilla/attachment.cgi?id=27098
sample FO demonstrating two sides of the same issue

Creating this bug to track the status of a known issue, for which we already
have a disabled test case. 
The test comment says 'may overlap', as if it is the exception, but in
multi-column documents containing a significant amount of footnotes, it appears
to be the rule.
The effect is not always visible, and in some cases there just is no break
possibility that leaves enough content for the overlap to be triggered, but for
the remainder...

Further investigation reveals that the issue is that each column break is
determined by only taking into account the height of the footnote content
associated with _that_ particular column, which works fine for single-column
pages only.
If there are footnotes in the first column, this will cause overlaps in all
_but_ the first. If there are (also) footnotes in following columns, there will
(also) be overlap in the first.

The first part, I believe, can be fixed by a very small change in
PageBreakingAlgorithm.computeDifference(), at line 506 and following:

if (footnotesPending) {
    // compute the total length of the footnotes not yet inserted
    int allFootnotes = totalFootnotesLength;

    // if activeNode is not a page-break, the footnotes for preceding
    // column(s) should be counted as well, otherwise we need to subtract
    // the footnotes already inserted
    if (pageProvider.endPage(activeNode.line - 1)) {
        allFootnotes -= pageNode.totalFootnotes;

This renders the first sample correctly (also for more than two columns), and
gives no complaints from the test suite. However, the third case --overlaps in
both columns-- leads to an infinite loop.

Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

View raw message