MHonArc v2.5.0b2 -->
office message
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]
Subject: Proposal: Page Sequences
Hi all,
I have the action item to suggest a method for page sequences. I
understand the requirements derived from KWord to be:
1) There can be arbitrary sequences of pages and page layouts.
E.g., pages could alternate between landscape and portrait, or each page
can be 1cm wider than the previous. There can also be empty pages
without any text flow on them.
2) Text frames can be anchored arbitrarily to pages.
3) There is no main text flow; in particular, no pages are generated to
make space for the main text flow.
4) The format should be similar to the existing documents, so that such
documents can be read reasonably well by other word processors, too.
Current state:
These requirements can be mostly emulated in the OOo base format. Item
2) is covered by frames anchored to pages. An empty main text flow (item
3) is allowed by the spec. There's no direct solution for item 1),
although it can be emulated by either creating one paragraph per page
and assigning each a page-break that uses a new master-page, or by
creating one master-page for each page and linking them through the
next-style-name feature. Both emulations would result in mostly similar
appearance, but different behaviour.
A better solution would be to change the spec to
1) explicitly mention this use-case,
2) introduce a page sequence element, that solves item 3) properly.
If those are the only changes, item 4) would be fulfilled as well.
Applications that don't know about page-sequence would ignore them.
Applications should at least preserve the page-sequence, even if they
don't interpret them.
Basically, what I suggest we do is to add an optional element
<text:page-sequence> that is allowed in the beginning of text documents.
This element contains a sequence of <text:page> elements, each of which
has a text:style-name attribute which references a master page. The
semantics are that the document contains (at least) as many pages as the
<page-sequence> contains <page> elements, with these pages being
formatted as described in the corresponding master page. If there are
more pages than page elements, the remaining pages are formatted as
usual. If (e.g. through page-breaks -with-new-master-page in the main
text flow) other page formatting occurs, the page sequence takes precedence.
As a result, a 'DTP' type document could look as follows:
(It contains a limerick, with one line per page, placed differently on
each page, and the page formats matching the rhyme scheme.)
<style:automatic-style>
<style:page-master name="pm1"> <!-- portrait page --> </style:page-master>
<style:page-master name="pm2"> <!-- landscape page -->
</style:page-master>
</style:automatic-style>
<style:master-styles>
<style:page-master name="portrait" style:page-master-name="pm1"/>
<style:page-master name="landscape" style:page-master-name="pm2"/>
</style:master-styles>
<office:body>
<text:page-sequence>
<text:page text:style-name="portrait"/>
<text:page text:style-name="portrait"/>
<text:page text:style-name="landscape"/>
<text:page text:style-name="landscape"/>
<text:page text:style-name="portrait"/>
</text:page-sequence>
<draw:text-box text:anchor-type="page" text:anchor-page-number="1"
svg:x="1cm" svg:y="1cm">
<text:p>There once was a lady from Riga</text:p>
</draw:text-box>
<draw:text-box text:anchor-type="page" text:anchor-page-number="2"
svg:x="2cm" svg:y="2cm">
<text:p>Who went for a ride on a tiger</text:p>
</draw:text-box>
<draw:text-box text:anchor-type="page" text:anchor-page-number="3"
svg:x="3cm" svg:y="3cm">
<text:p>They came back from the ride</text:p>
</draw:text-box>
<draw:text-box text:anchor-type="page" text:anchor-page-number="4"
svg:x="4cm" svg:y="4cm">
<text:p>With the lady inside</text:p>
</draw:text-box>
<draw:text-box text:anchor-type="page" text:anchor-page-number="5"
svg:x="5cm" svg:y="5cm">
<text:p>And a smile on the face of the tiger.</text:p>
</draw:text-box>
</office:body>
There's two things I wasn't sure how to do, so maybe one of the
following variants might be better:
Alternative 1: have <page> elements refer to master-page (instead of
page-master):
The page-master may also contain headers and footers, while the
master-page (now renamed to page-layout) contains only the page layout,
e.g. dimensions. I think it would suffice for the requirements to
directly refer to master-pages. However, so far we've always used the
page-master for page formatting, and referred to master-pages only from
the page-master. Also, headers/footers might have funny interactions
with page sequences, if page-sequence would refer to master-pages.
(After having written that, I'm so glad we renamed the master-pages to
something sensible. When casually reading, the above doesn't seem to
make any sense...)
Alternative 2: put the page-sequence into the styles section.
The page sequence is pure styling, so it would make more sense to put
this into the styles section. If one were to do that, the styles section
would have the page sequence appended, and the application would have to
apply the page sequence whenever it finds one.
However, so far styling information is mostly referenced from the
content, and not active by itself. In this case, the page-sequence
provides this referencing. (With, admittedly, some exceptions: E.g. line
numbers of some of the 'special' styles are automatically active, sort of.)
Sincerely,
Daniel
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
| [List Home]