-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Poor page breaking with figures #114
Comments
On the underlying SILE issues:
I don't think this was ever true, unfortunately... A mere claim not backed up by any serious attempt. ^^ Regarding our options, well, it's not that obvious. One could rewrite these environments to use some grouping logic as done in my ptable package (or, as a mere workaround, wrap them in a 1x1 ptable - it's an overkill but it somewhat works). That's not fully satisfying though, as the overfull page issue can still ticks in and lead to even worse issues. My feelings are that, in order to make any progress, lots of internal things have to change. It's opinionated, and I am pessimistic by nature, but IMHO, the typesetter is still highly problematic, the pagebuilder is an utter mess, the frame logic is totally broken (ouch! another claim that does not live to the expectations...), the footnote and "insertion" logic is just insane (and likely wrong, sile-typesetter/sile#619).... So I could be tempted to say that this is not an issue for re·sil·ient... But at the same time, I made so many attempts in 2023 at experimenting with a new typesetter and pagebuilder (I briefly alluded to it here: sile-typesetter/sile#2166 (comment)), that... well, who knows, perhaps something might came out of it... It's a deep rewriting, however, compatibility-breaking with many core packages,1 which I might end up throwing away: Such a "fork" (there's no better word...) is inherently hard, and a single developer cannot do much in these areas... Footnotes
|
Thanks for the detailed response. I think my requirements for figures are simpler than the general case for floats for two reasons:
I think this should allow a simple greedy LaTeX-like approach to get good(ish) results, where figures appear in one of two places:
Ideally, floats would not be reordered, so if moving a figure down required moving it past another float then they'd move together and, as a last resort, produce a page of figures ( / listings / tables). I am not familiar with the internals of SILE's page layout engine though, so I don't have a good intuition of how hard this would be to implement: is it a simple 'move and redraw' call or a complete rewrite of some core logic? |
But what if the "moved up" content is a table, which is page-split, and with headers repeated? The devil is always in the details ;) (Not all tables can be considered as float, especially those spanning multiple pages anyway) |
I consider tables that need to be split across pages bad style for anything that isn't a datasheet, so this would not be a problem for me. If I have tables that need splitting, they get split into something more concise.
This is why LaTeX has |
Using the figure environment, I am seeing two rendering issues:
First, the caption begins too low, overlapping the end of the page. Second, the caption itself is split across two pages. I believe part of this is an artefact of the fact that figures are not floats (which is sad, given that SILE was specifically designed to make floats easier to support with good placement than TeX), but I think the rest of it is that the figure is not being treated as a complete box for the purpose of layout and so line breaking is allowed in the middle.
The text was updated successfully, but these errors were encountered: