2003-01-29 17:07:56 +01:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
This file addresses break-after's in page context.
|
|
|
|
-->
|
|
|
|
|
|
|
|
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
|
|
|
|
<fo:layout-master-set>
|
|
|
|
<!-- layout for all pages -->
|
|
|
|
<fo:simple-page-master master-name="all"
|
|
|
|
page-height="29.7cm"
|
|
|
|
page-width="21cm"
|
|
|
|
margin-top="1cm"
|
|
|
|
margin-bottom="2cm"
|
|
|
|
margin-left="2.5cm"
|
|
|
|
margin-right="2.5cm">
|
2004-02-22 14:37:07 +01:00
|
|
|
<fo:region-body margin-top="3cm" margin-bottom="2cm"/>
|
2003-01-29 17:07:56 +01:00
|
|
|
<fo:region-before extent="3cm"/>
|
|
|
|
<fo:region-after extent="2cm"/>
|
|
|
|
</fo:simple-page-master>
|
|
|
|
</fo:layout-master-set>
|
|
|
|
|
|
|
|
<fo:page-sequence master-reference="all">
|
|
|
|
<fo:static-content flow-name="xsl-region-after">
|
|
|
|
<fo:block font-size="10pt" text-align="start"
|
|
|
|
border-style="solid" border-color="blue" border-width="0.5pt"
|
|
|
|
space-before.optimum="6pt">
|
|
|
|
Text excerpt from XSL Candidate Recommendation, 21 Nov 2000.
|
|
|
|
</fo:block>
|
|
|
|
</fo:static-content>
|
|
|
|
|
|
|
|
<fo:flow flow-name="xsl-region-body">
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Keep and break conditions apply to a class of areas, which are typically
|
|
|
|
page-reference-areas, column-areas, and line-areas. The appropriate class
|
|
|
|
for a given condition is referred to as a context and an area in this
|
|
|
|
class is a context-area. As defined in Section 6.4.1, page-reference-areas
|
|
|
|
are areas generated by an fo:page-sequence using the specifications in a
|
|
|
|
fo:page-master, and column-areas are normal-flow-reference-areas generated
|
|
|
|
from a region-body, or region-reference-areas generated from other types
|
|
|
|
of region-master.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
A keep or break condition is an open statement about a formatting object
|
|
|
|
and the tree relationships of the areas it generates with the relevant
|
|
|
|
context-areas. These tree relationships are defined mainly in terms of
|
|
|
|
leading or trailing areas. If A is a descendant of P, then A is defined
|
|
|
|
to be leading in P if A has no preceding sibling which is a normal area,
|
|
|
|
nor does any of its ancestor areas up to but not including P. Similarly,
|
|
|
|
A is defined to be trailing in P if A has no following sibling which is
|
|
|
|
a normal area, nor does any of its ancestor areas up to but not including P.
|
|
|
|
For any given formatting object, the next formatting object in the flow is
|
|
|
|
the first formatting object following (in the pre-order traversal order)
|
|
|
|
which generates and returns normal areas.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Break conditions are either break-before or break-after conditions.
|
|
|
|
A break-before condition is satisfied if the first area generated and
|
|
|
|
returned by the formatting object is leading within a context-area. A
|
|
|
|
break-after condition depends on the next formatting object in the flow;
|
|
|
|
it is satisfied if either there is no such next formatting object, or
|
|
|
|
if the first normal area generated and returned by that formatting
|
|
|
|
object is leading in a context-area.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt"
|
|
|
|
color="blue"
|
|
|
|
break-after="even-page">
|
|
|
|
This is a block with a <fo:inline font-style="italic">break-after="even-page"
|
|
|
|
</fo:inline> break condition. This condition is satisfied if there is
|
|
|
|
no next formatting object, <fo:inline font-weight="bold">or</fo:inline> the
|
|
|
|
first normal area generated by the next FO is leading in an even-page
|
|
|
|
context.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Break conditions are imposed by the break-before and break-after
|
|
|
|
properties. A refined value of page for these traits imposes a break
|
|
|
|
condition with a context consisting of the page-reference-areas; a
|
|
|
|
value of even-page or odd-page imposes a break condition with a
|
|
|
|
context of even-numbered page-reference-areas or odd-numbered page
|
|
|
|
reference-areas, respectively; a value of column imposes a break
|
|
|
|
condition with a context of column-areas. A value of auto in a
|
|
|
|
break-before or break-after trait imposes no break condition.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Keep conditions are either keep-with-previous, keep-with-next, or
|
|
|
|
keep-together conditions. A keep-with-previous condition on an
|
|
|
|
object is satisfied if the first area generated and returned by
|
|
|
|
the formatting object is not leading within a context-area, or
|
|
|
|
if there are no preceding areas in a post-order traversal of the
|
|
|
|
area tree. A keep-with-next condition is satisfied if the last
|
|
|
|
area generated and returned by the formatting object is not
|
|
|
|
trailing within a context-area, or if there are no following
|
|
|
|
areas in a pre-order traversal of the area tree. A keep-together
|
|
|
|
condition is satisfied if all areas generated and returned by
|
|
|
|
the formatting object are descendants of a single context-area.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt"
|
|
|
|
color="blue"
|
|
|
|
break-after="even-page">
|
|
|
|
This is a block with a <fo:inline font-style="italic">break-after="even-page"
|
|
|
|
</fo:inline> break condition. This condition is satisfied if there is
|
|
|
|
no next formatting object, <fo:inline font-weight="bold">or</fo:inline> the
|
|
|
|
first normal area generated by the next FO is leading in an even-page
|
|
|
|
context.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Keep conditions are imposed by the "within-page", "within-column",
|
|
|
|
and "within-line" components of the "keep-with-previous",
|
|
|
|
"keep-with-next", and "keep-together" properties. The refined value
|
|
|
|
of each component specifies the strength of the keep condition
|
|
|
|
imposed, with higher numbers being stronger than lower numbers and
|
|
|
|
the value always being stronger than all numeric values. A component
|
|
|
|
with value auto does not impose a keep condition. A "within-page"
|
|
|
|
component imposes a keep-condition with context consisting of the
|
|
|
|
page-reference-areas; "within-column", with context consisting of
|
|
|
|
the column-areas; and "within-line" with context consisting of the
|
|
|
|
line-areas.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
The area tree is constrained to satisfy all break conditions imposed.
|
|
|
|
Each keep condition must also be satisfied, except when this would
|
|
|
|
cause a break condition or a stronger keep condition to fail to be
|
|
|
|
satisfied. If not all of a set of keep conditions of equal strength
|
|
|
|
can be satisfied, then some maximal satisfiable subset of conditions
|
|
|
|
of that strength must be satisfied (together with all break conditions
|
|
|
|
and maximal subsets of stronger keep conditions, if any).
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block>
|
|
|
|
<fo:leader leader-pattern="rule"
|
|
|
|
rule-thickness="2.0pt"
|
|
|
|
leader-length="14cm"
|
|
|
|
space-before.optimum="0pt"
|
|
|
|
space-after.optimum="12pt"
|
|
|
|
start-indent="1cm"
|
|
|
|
end-indent="1cm"
|
|
|
|
background-color="blue"
|
|
|
|
color="yellow"/>
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Keep and break conditions apply to a class of areas, which are typically
|
|
|
|
page-reference-areas, column-areas, and line-areas. The appropriate class
|
|
|
|
for a given condition is referred to as a context and an area in this
|
|
|
|
class is a context-area. As defined in Section 6.4.1, page-reference-areas
|
|
|
|
are areas generated by an fo:page-sequence using the specifications in a
|
|
|
|
fo:page-master, and column-areas are normal-flow-reference-areas generated
|
|
|
|
from a region-body, or region-reference-areas generated from other types
|
|
|
|
of region-master.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
A keep or break condition is an open statement about a formatting object
|
|
|
|
and the tree relationships of the areas it generates with the relevant
|
|
|
|
context-areas. These tree relationships are defined mainly in terms of
|
|
|
|
leading or trailing areas. If A is a descendant of P, then A is defined
|
|
|
|
to be leading in P if A has no preceding sibling which is a normal area,
|
|
|
|
nor does any of its ancestor areas up to but not including P. Similarly,
|
|
|
|
A is defined to be trailing in P if A has no following sibling which is
|
|
|
|
a normal area, nor does any of its ancestor areas up to but not including P.
|
|
|
|
For any given formatting object, the next formatting object in the flow is
|
|
|
|
the first formatting object following (in the pre-order traversal order)
|
|
|
|
which generates and returns normal areas.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt"
|
|
|
|
color="blue"
|
|
|
|
break-after="odd-page">
|
|
|
|
This is a block with a <fo:inline font-style="italic">break-after="odd-page"
|
|
|
|
</fo:inline> break condition. This condition is satisfied if there is
|
|
|
|
no next formatting object, <fo:inline font-weight="bold">or</fo:inline> the
|
|
|
|
first normal area generated by the next FO is leading in an odd-page
|
|
|
|
context.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Break conditions are either break-before or break-after conditions.
|
|
|
|
A break-before condition is satisfied if the first area generated and
|
|
|
|
returned by the formatting object is leading within a context-area. A
|
|
|
|
break-after condition depends on the next formatting object in the flow;
|
|
|
|
it is satisfied if either there is no such next formatting object, or
|
|
|
|
if the first normal area generated and returned by that formatting
|
|
|
|
object is leading in a context-area.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Break conditions are imposed by the break-before and break-after
|
|
|
|
properties. A refined value of page for these traits imposes a break
|
|
|
|
condition with a context consisting of the page-reference-areas; a
|
|
|
|
value of even-page or odd-page imposes a break condition with a
|
|
|
|
context of even-numbered page-reference-areas or odd-numbered page
|
|
|
|
reference-areas, respectively; a value of column imposes a break
|
|
|
|
condition with a context of column-areas. A value of auto in a
|
|
|
|
break-before or break-after trait imposes no break condition.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Keep conditions are either keep-with-previous, keep-with-next, or
|
|
|
|
keep-together conditions. A keep-with-previous condition on an
|
|
|
|
object is satisfied if the first area generated and returned by
|
|
|
|
the formatting object is not leading within a context-area, or
|
|
|
|
if there are no preceding areas in a post-order traversal of the
|
|
|
|
area tree. A keep-with-next condition is satisfied if the last
|
|
|
|
area generated and returned by the formatting object is not
|
|
|
|
trailing within a context-area, or if there are no following
|
|
|
|
areas in a pre-order traversal of the area tree. A keep-together
|
|
|
|
condition is satisfied if all areas generated and returned by
|
|
|
|
the formatting object are descendants of a single context-area.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
Keep conditions are imposed by the "within-page", "within-column",
|
|
|
|
and "within-line" components of the "keep-with-previous",
|
|
|
|
"keep-with-next", and "keep-together" properties. The refined value
|
|
|
|
of each component specifies the strength of the keep condition
|
|
|
|
imposed, with higher numbers being stronger than lower numbers and
|
|
|
|
the value always being stronger than all numeric values. A component
|
|
|
|
with value auto does not impose a keep condition. A "within-page"
|
|
|
|
component imposes a keep-condition with context consisting of the
|
|
|
|
page-reference-areas; "within-column", with context consisting of
|
|
|
|
the column-areas; and "within-line" with context consisting of the
|
|
|
|
line-areas.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt"
|
|
|
|
color="blue"
|
|
|
|
break-after="odd-page">
|
|
|
|
This is a block with a <fo:inline font-style="italic">break-after="odd-page"
|
|
|
|
</fo:inline> break condition. This condition is satisfied if there is
|
|
|
|
no next formatting object, <fo:inline font-weight="bold">or</fo:inline> the
|
|
|
|
first normal area generated by the next FO is leading in an odd-page
|
|
|
|
context.
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
<fo:block
|
|
|
|
font-size="14pt" font-family="sans-serif"
|
|
|
|
line-height="18pt" space-after.optimum="15pt">
|
|
|
|
The area tree is constrained to satisfy all break conditions imposed.
|
|
|
|
Each keep condition must also be satisfied, except when this would
|
|
|
|
cause a break condition or a stronger keep condition to fail to be
|
|
|
|
satisfied. If not all of a set of keep conditions of equal strength
|
|
|
|
can be satisfied, then some maximal satisfiable subset of conditions
|
|
|
|
of that strength must be satisfied (together with all break conditions
|
|
|
|
and maximal subsets of stronger keep conditions, if any).
|
|
|
|
</fo:block>
|
|
|
|
|
|
|
|
</fo:flow>
|
|
|
|
</fo:page-sequence>
|
|
|
|
</fo:root>
|
|
|
|
|