there is something I don't get with the handling of footnotes. When
there is not enough room on the current page to place all the footnotes,
the algorithm tries to find a place where to split them. But there is a
condition: it must be possible to defer old footnotes
(PageBreakingAlgorithm, l.332). And this is possible only if there is no
legal breakpoint between the previous active node and the currently
considered breakpoint (checkCanDeferOldFootnotes method). I don't
understand this latter condition?
And, reading the code, I don't understand if this method's purpose is to
determine if it is /allowable/ to defer footnotes (am I authorized to
defer footnotes if any), or if it is /possible/ (are there footnotes to
defer). Ok, this is a bit subtile, but understanding that would help me
get the intent of the algorithm.
What is the relation with before-floats? Well, I'm currently refactoring
this part of the code to factorize out as much as possible things common
to floats and footnotes. And this part of the code, currently applied to
footnotes, may well be also applied to floats.