W3C home > Mailing lists > Public > www-style@w3.org > August 2008

Re: [gcpm] custom pages and page lists

From: MURAKAMI Shinyu <murakami@antenna.co.jp>
Date: Thu, 21 Aug 2008 05:32:22 +0900
To: Håkon Wium Lie <howcome@opera.com>
Cc: www-style@w3.org
Message-Id: <20080821000141.9217.C598BCD7@antenna.co.jp>

Håkon Wium Lie <howcome@opera.com> wrote on 2008/08/20 23:53:47
> Also sprach MURAKAMI Shinyu:
> 
>  > > Alternatively, a single 'normal' value could reset the page sequence,
>  > > i.e. remove any current page sequence.
>  > 
>  > problem:
>  > 
>  >     <table>...</table>
>  >     <table>...</table>
>  >     <p>This text is not rendered on a rotated page.</p>
>  > 
>  > The <p> has 'page: auto' (by default) and if 'auto' means 
>  > "the element continues on the page sequence already established",
>  > the <p> is rendred on a rotated page :-(
> 
> So, you want an element with "page: auto" to end the page sequence?

I assumed that the UC4 (css3-page's example) requires it.

> 
> I see some issues with that. First, the child elements with of <table>
> will also have "page: auto" and thouse should not end the page
> sequence. Second, in UC2:
> 
>   <h1>The beginning</h1>
>     <p>...
>   <h1>The end</h1>
>     <p>...
> 
> The <p> elements will also have "page: auto", but we don't want them
> to end the page sequence either.


Now I've reconsidered.

I'd like to change the meaning of the 'auto' value:

If the named page list contains 'auto' value, the next element with 
"page: auto" doesn't establish a new page sequence.

e.g.,
    table { page: rotated auto }

    <table>...</table>
    <p>This text is rendered on a rotated page.</p>

If the named page list has no 'auto' value, the next element with 
"page: auto" ends the current page sequence and starts a new page
sequence.

e.g.,
    table { page: rotated }

    <table>...</table>
    <p>This text is not rendered on a rotated page.</p>

or
    table { page: rotated-1 rotated-2 }

    <table>...</table>
    <p>This text is not rendered on a rotated page.</p>

(note that the single value and multiple value have same policy about
page sequence establishment)

I'd also like the 'page-group' property in the recent GCPM draft.
http://dev.w3.org/csswg/css3-gcpm/#page-groups

If 'page-group' has value 'auto', the element with named page list same
as of the current page sequence doesn't establish a new page sequence.

e.g.,
    table { page: rotated; page-group: auto }

    <table>...</table>
    <table>...</table>
    <p>This text is not rendered on a rotated page.</p>
(two tables are rendered on the same page if they fit.)


It solves all use cases:

UC1:
  <div class="chapter">
    <h1>The beginning</h1>
    ....
  </div>

  <div class="chapter">
    <h1>The end</h1>
    ....
  </div>

-with-
  @page chapter { 
    @top-center { content: string(title) }
  }
  @page chapter:first { 
    @top-center { content: none }
  }
  div.chapter { page: chapter; page-group: start }
  h1 { string-set: title content() }

-or-
  @page chapter { 
    @top-center { content: string(title) }
  }
  @page chapter-start { 
    @top-center { content: none }
  }
  div.chapter { page: chapter-start chapter; page-group: start }
  h1 { string-set: title content() }


UC2:
  <h1>The beginning</h1>
    ....
  <h1>The end</h1>
    ....

-with-
  @page chapter { 
    @top-center { content: string(title) }
  }
  @page chapter:first { 
    @top-center { content: none }
  }
  h1 { page: chapter auto; page-group: start;
       string-set: title content() }

-or-
  @page chapter { 
    @top-center { content: string(title) }
  }
  @page chapter-start { 
    @top-center { content: none }
  }
  h1 { page: chapter-start chapter auto; page-group: start;
       string-set: title content() }

UC3:
No change.

  @page rotated { size: landscape }
  table { page: rotated }

UC4:
No change.

    In this example, the two tables are rendered on landscape pages
    (indeed, on the same page, if they fit). The page type "narrow"
    is used for the <p> after the second table, as the page
    properties for the table element are no longer in effect:

    @page narrow { size: 9cm 18cm }
    @page rotated { size: landscape }
    div { page: narrow }
    table { page: rotated }

    with this document:

    <div>
    <table>...</table>
    <table>...</table>
    <p>This text is rendered on a 'narrow' page</p>
    </div>


-- 
Shinyu Murakami
http://www.antennahouse.com
http://www.antenna.co.jp/AHF/
Received on Wednesday, 20 August 2008 20:33:20 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:55:11 GMT