Idea Delivered

The following change was made in XPP 9.5 to address balancing previous columns from a tag that ends a page

A new value, endtag-balance, has been added for the Every Page: Balance/Align Columns field in the Pagination Style Spec (PS). This value causes Compose to balance the previous columns when a page is ended by a tag. The endtag-balance value is supported for the CSS -xpp-ps-hdr-baleop property. 

CSS: display property needs an -xpp-page-balance and -xpp-page-align value

In CSS you have currently only the -xpp-page value in the display property to end a page.

But in a 2 column job, in most cases (if not in all cases) that will not give you the desired result as it will leave the columns on the current page unbalanced.
It is much more likely that you want the equivalent of an ep;bal or ep;aln macro.

Now your only escape route is to create a separate  ::before rule in which you output the appropriate macro in the content property.
Things would be a lot easier, straightforward and more CSS like if you could just specify that you want:
  display: -xpp-page-balance;


Parents
  • I understand the problem, but I do not agree with the solution. As I understand it (based on an issue that has been opened in XPP), using the -xpp-macro(ep, balance) in the CSS "tag:before" is not sufficient because it leaves a blank line and also separates the tag from the following content resulting in pages that are not optimum for a loose-leaf application. You have specified this in CSS, but it would also be a problem using XML (or even classic). Ending the page via "end page" does not trigger a balance, unless it also does a page rule change and "balance at end of series" is set in the SP spec.

    It seems to me that this is a pagination style problem rather than a CSS tag problem. In thinking about this, there is a field in the PS spec called "Every Page: Balance/Align columns" with the choices of "no", "balance" and "align". It is not used that often but when set forces composition to balance the columns for every page. This is not ideal since by its nature, compose already attempts to justify each column of text anyways, but setting the value to "balance" will force the page to be short and will try to be balanced.

    I am not proposing that you turn this on since it has some interesting side effects. However, we can slightly hijack this field since it is related to what you are trying to do and add a new value called "endtag-balance". The option will be used if a tag leaves the page short because the tag "end" says to end the page (either in the Item Forma or CSS). So when a page is ended short due to a tag (Classic, XML, or CSS), it will use this new option to force the previous short page to balance the  text. This turns the solution into a style specification which is where it should be anyways.

    Current Jobs that do not have this field set to "endtag-balance" will behave as they do today without changes, but changing the value will do the balance so that <ep> or tag:before overrides do not have to be created at the tag level. The tag will end the page, balance the previous columns (if applicable) and be located at the start of the new page.

    This should address your problem in a stylistic way.

Comment
  • I understand the problem, but I do not agree with the solution. As I understand it (based on an issue that has been opened in XPP), using the -xpp-macro(ep, balance) in the CSS "tag:before" is not sufficient because it leaves a blank line and also separates the tag from the following content resulting in pages that are not optimum for a loose-leaf application. You have specified this in CSS, but it would also be a problem using XML (or even classic). Ending the page via "end page" does not trigger a balance, unless it also does a page rule change and "balance at end of series" is set in the SP spec.

    It seems to me that this is a pagination style problem rather than a CSS tag problem. In thinking about this, there is a field in the PS spec called "Every Page: Balance/Align columns" with the choices of "no", "balance" and "align". It is not used that often but when set forces composition to balance the columns for every page. This is not ideal since by its nature, compose already attempts to justify each column of text anyways, but setting the value to "balance" will force the page to be short and will try to be balanced.

    I am not proposing that you turn this on since it has some interesting side effects. However, we can slightly hijack this field since it is related to what you are trying to do and add a new value called "endtag-balance". The option will be used if a tag leaves the page short because the tag "end" says to end the page (either in the Item Forma or CSS). So when a page is ended short due to a tag (Classic, XML, or CSS), it will use this new option to force the previous short page to balance the  text. This turns the solution into a style specification which is where it should be anyways.

    Current Jobs that do not have this field set to "endtag-balance" will behave as they do today without changes, but changing the value will do the balance so that <ep> or tag:before overrides do not have to be created at the tag level. The tag will end the page, balance the previous columns (if applicable) and be located at the start of the new page.

    This should address your problem in a stylistic way.

Children