Skip to content
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

Support fragmenting non-overflowing table when necessary #386

Merged
merged 3 commits into from
Sep 7, 2017

Conversation

kwkbtr
Copy link
Contributor

@kwkbtr kwkbtr commented Sep 7, 2017

  • There are some cases where fragmenting the table is necessary even if the table itself does not overflow. For example, if a figure element wrapping the table has some block-end padding and the border edge of the figure overflows the column, the figure element should be fragmented. However, since it is not allowed to fragment the figure element between the padding and the table element, the fragmentation should occur inside the table. In such a case, it is necessary that BreakPositions are inserted inside the table.
  • In this PR, a new BreakPosition 'EntireTableBreakPosition' is introduced. An EntireTableBreakPosition is inserted when a table does not overflow at the initial layout. It is a kind of dummy BreakPosition, i.e., when it is chosen as used for fragmentation, it registers a FragmentLayoutConstraint (EntireTableLayoutConstraint), which triggers re-layout of the column. In this re-layout, BreakPositions are inserted inside the table so that the table can be fragmented.
  • This PR reverts Always layout a table twice so that BreakPositions are inserted appropriately #384.

- There are some cases where fragmenting the table is necessary even if the table itself does not overflow. For example, if a figure element wrapping the table has some block-end padding and the border edge of the figure overflows the column, the figure element should be fragmented. However, since it is not allowed to fragment the figure element between the padding and the table element, the fragmentation should occur inside the table. In such a case, it is necessary that BreakPositions are inserted inside the table.
- In this commit, a new BreakPosition 'EntireTableBreakPosition' is introduced. An EntireTableBreakPosition is inserted when a table does not overflow at the initial layout. It is a kind of dummy BreakPosition, i.e., when it is chosen as used for fragmentation, it registers a FragmentLayoutConstraint (EntireTableLayoutConstraint), which triggers re-layout of the column. In this re-layout, BreakPositions are inserted inside the table so that the table can be fragmented.
@kwkbtr kwkbtr merged commit 2bdfabb into master Sep 7, 2017
@kwkbtr kwkbtr deleted the fix_table_performance branch September 7, 2017 03:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant