Hi Simon, Ok, I've taken out my LaTeX book again to be sure I understand you.
Vincent, Your proposal to improve the algorithm for the placement of footnotes and before-floats sounds fine. A few comments. 'Ideally there would be a configuration setting telling which ratio of the page should be filled with normal content; if this ratio is null then pages only made of out-of-line objects would be allowed.' I think this may be split into several configuration settings: - The minimum amount of normal content on a page.
OK. This corresponds to the \textfraction parameter, right?
- Whether float pages are allowed. Even when the minimum amount is not zero, the user may set this to true.
OK. ...mmmh, found no dedicated LaTeX parameter for that. \floatpagefraction=0?
- The minimum amount of float content on a float page before it may be considered feasible. Only relying on the normal demerits calculation for the stretch or shrink may be too restrictive.
Moreover, if the figures are made of images, there is likely to be few shrink/stretch. This is also the \floatpagefraction parameter? Actually I don't really understand this parameter. At least, I don't understand its interest: this means that underfull float-only pages are acceptable? This looks weird to me. But as it would be easy to implement, I can do it. Related question: would footnotes be allowed on float-only pages, or only before-floats? This may be useful for books with many many footnotes. But for other books this can look weird. WDYT? Another config parameter?
In fact, these are configuration parameters in LaTeX. Regarding the demerits for deferred out-of-line objects, a simple multiplication with the page difference produces a linear relation. This may be too weak, and a squared or steeper relation may be preferable.
No. Period. Ok, some explanations ;-) This would break the property of optimal substructure which makes the dynamic programming approach work. In his thesis, Plass proved that using a squared function leads to an NP-complete problem. In "Pagination Reconsidered", Brüggeman-Klein et al. showed that using a linear function is nearer to a human's feelings, is solvable by dynamic programming, and gives satisfying results. So I think we may go with it.
Thank you, Vincent