diff options
Diffstat (limited to 'fop/examples/fo/keeps_and_breaks/pagelevel2.fo')
-rw-r--r-- | fop/examples/fo/keeps_and_breaks/pagelevel2.fo | 292 |
1 files changed, 292 insertions, 0 deletions
diff --git a/fop/examples/fo/keeps_and_breaks/pagelevel2.fo b/fop/examples/fo/keeps_and_breaks/pagelevel2.fo new file mode 100644 index 000000000..56557ae4b --- /dev/null +++ b/fop/examples/fo/keeps_and_breaks/pagelevel2.fo @@ -0,0 +1,292 @@ +<?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"> + <fo:region-body margin-top="3cm" margin-bottom="2cm"/> + <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> + |