[css3-gcpm] New Editor's Draft

A new editor's draft of GCPM is available at [1].

Since the specification has a new editor [2], all of the text and examples have been rewritten. The goal is not to specify every feature that would be useful for paged media, but to standardize a modest number of  features that (mostly) already have multiple implementations.

Below are notes on some changes since the previous editor's draft.


1. Running Headers and Footers
---------------------------------------------

The 'string-set' property's content-list now includes an 'attr(<identifier>)' value, so that attribute values may be used as text in running heads. This has been implemented by AntennaHouse and Prince.

The running element section has been mostly deleted, awaiting a fundamental decision on syntax. Prince uses one approach, and previous versions of GCPM used another.


2. Footnotes
------------------

The previous editor's draft of GCPM used float: footnote to identify an element as a footnote. Where the footnote was actually positioned depended on  the float, columns, and  column-span properties of the @footnote page region. One current implementation, Prince, uses a somewhat different approach, where the float property on the footnote also helps determine the positioning of the footnote [3].  Current values are footnote (bottom of page), inline-footnote, column-footnote (bottom of column), and inline-column-footnote. @footnote just determines the appearance of the footnote region itself.

This approach seems to be more easily extensible—even in the relatively simple case of having longer footnotes display as blocks, and short footnotes as inline. As a start, I've added float: inline-footnote to support inline footnotes, which is implemented by Prince and has numerous use cases.

I've also added a footnote-policy property. Rendering footnotes can be problematic, as a long footnote referenced near the bottom of the page might not fit on the page. This property gives authors the option to force the line or paragraph with the reference to the next page, resulting in white space on the current page, but keeping the footnote and the reference on the same page.

This section is still lacking an algorithm for how footnotes should be rendered. This is a high priority.

Sidenotes have been deferred to the next level.


3. Selecting Pages
--------------------------

The CSS3 Page Module defines page pseudo-classes for first, left, right, and blank @pages. A major goal of GCPM is to extend this to allow the selection of any document @page. The previous draft of GCPM used the page-group property and the nth() selector to do this. A page group is essentially all the pages generated by an instance of an element (often a section or div), when that element uses a named page (what desktop publishing people would call a master page):

section.chapter {
page: body;
page-group: start;
}

Prince and previous versions of GCPM used page-group: start to change the behavior of the :first page pseudo-class, so that it would select the first page in the page group instead of the first page of the document. In the above example, @page body:first would select the first page of every chapter, which is really useful.

But this changes the meaning of :first, which was defined in CSS 2.1. I'm proposing to remove the page-group property, by stipulating that assigning a named page to an element automatically creates a page group. So applying nth-page() to @page selects document pages (@page :nth-page(1) is equivalent to @page :first). But applying it to a named page selects in the context of the page group—@page body:nth-page(1) selects the first page of each section.chapter in the previous example.

This will be discussed tomorrow at the Seattle F2F.

The section on selecting elements within pages and columns has been removed.


4. Leaders
---------------

There have been no changes to the properties, but I've tried to outline a processing model for rendering leaders.


5. Cross-references
---------------------------

There have been no changes to these properties.

I'm looking for use cases for the target-counters() property. The previous editor's draft has an example involving numbered headings of the form "Section 1.3.5." But I don't believe it's common for authors to produce such text using nested counters, given the issue with siblings. This has been implemented by Prince, but no one has ever asked a question about it in the Prince forum. Someone requested it on www-style [2], but there was no indication of the reason. I can only assume that they thought (as I did) that if you have target-counter() then target-counters() must be useful, because both counter() and counters() are useful. But now I'm not so sure.


6. Bookmarks
-------------------

No changes.

* * *

Feedback and suggestions are welcome, and I apologize in advance for any errors in formatting and terminology.

Thanks,

Dave

[1] http://dev.w3.org/csswg/css-gcpm/
[2] http://lists.w3.org/Archives/Public/www-style/2013Nov/0349.html
[2] http://www.princexml.com/doc/9.0/properties/float/

:: :: ::

Dave Cramer | Content Workflow Specialist | Hachette Book Group | 237 Park Avenue NY | NY 10017 | 917 207 7927 | dave.cramer@hbgusa.com


________________________________
This may contain confidential material. If you are not an intended recipient, please notify the sender, delete immediately, and understand that no disclosure or reliance on the information herein is permitted. Hachette Book Group may monitor email to and from our network.

Received on Tuesday, 28 January 2014 19:56:58 UTC