]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Add <section> ids.
authorWilliam Victor Mote <vmote@apache.org>
Tue, 22 Apr 2003 03:33:55 +0000 (03:33 +0000)
committerWilliam Victor Mote <vmote@apache.org>
Tue, 22 Apr 2003 03:33:55 +0000 (03:33 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@196308 13f79535-47bb-0310-9956-ffa450edef68

src/documentation/content/xdocs/design/layout.xml

index 0413057b2779a9b832a56e6b221b2dbafe519e88..abaecf78c4993de3a5e82e87fa5d12d9ad696ebe 100644 (file)
@@ -27,7 +27,7 @@ Note: it may be possible to start immediately after a block formatting object ha
 It is also possible to layout all pages in a page sequence after each page sequence has been added from the xml.</p>
     <p>The layout process is handled by a set of layout managers.
 The block level layout managers are used to create the block areas which are added to the region area of a page.</p>
-    <section>
+    <section id="lm">
       <title>Layout Managers</title>
       <p>The layout managers are set up from the hierarchy of the formatting object tree.
 A manager represents a hierachy of area producing objects.
@@ -42,7 +42,7 @@ It will keep a list of line areas inside block areas.
 Each line area will contain a list of inline areas that is able to be adjusted if the need arises.</p>
       <p>The objects in the area tree that are organised by the manager will mostly contain the information about there layout such as spacing and keeps, this information will be thrown away once the layout for a page is finalised.</p>
     </section>
-    <section>
+    <section id="creating">
       <title>Creating Managers</title>
       <p>The managers are created by the page sequence.
 The top level manager is the Page manager.
@@ -51,13 +51,13 @@ This asks the flow to add all managers in this page sequence.</p>
 Neutral objects don't represent any areas but are used to contain a block level area and as such these objects will ask the appropriate child to create a layout manager.</p>
       <p>Any nested block areas or inline areas may be handled by the layout manager at a later stage.</p>
     </section>
-    <section>
+    <section id="using">
       <title>Using Managers</title>
       <p>Block area layout managers are used to create a block area, other block level managers may ask their child layout managers to create block areas which are then added to the area tree(subset).</p>
       <p>A manager is used to add areas to a page until the page is full, then the manages contain all the information necessary to make the decision about page break and spacing.
 A manager can split an area that it has created will keep a status about what has been added to the current area tree.</p>
     </section>
-    <section>
+    <section id="page">
       <title>Page Layout</title>
       <p>Once the Page layout manager, belonging to the page sequence, is ready then we can start laying out each page.
 The page sequence will create the current page to put the page data, the next page and if it exists
@@ -79,11 +79,11 @@ So if the objects are placed first at optimum then you will need to keep going t
       <p>The spacing and keep information is stored so that the area positions
 and sizes can be adjusted.</p>
     </section>
-    <section>
+    <section id="page-balance">
       <title>Balancing Page</title>
       <p>The page is vertically justified so that it distributes the areas on the page for the best result when considering keeps and spacing.</p>
     </section>
-    <section>
+    <section id="finding-break">
       <title>Finding Break</title>
       <p>First the keeps are checked.
 The available space on the page may have changed due to the presence of before floats or footnotes.
@@ -100,13 +100,13 @@ The lowest keep value may need to be reassessed as each conditional area is remo
       <p>The before float and footnote regions are managed so that the separator
 regions will be present if it contains at least one area.</p>
     </section>
-    <section>
+    <section id="optimize">
       <title>Optimising</title>
       <p>Once the areas for the page are finalised then the spacing will need to be adjusted.
 The available height on the page is compared with the min and max spacing.
 All of the spacing in all the areas on the page is then adjusted by the appropriate percentage value.</p>
     </section>
-    <section>
+    <section id="multi-column">
       <title>Multi-Column Pages</title>
       <p>In the case of multi-column pages the column breaks and eventually the page break must be found in a slightly different way.</p>
       <p>The columns need to be layed out completely from first to last but this can only be done after a rough estimate of all the elements on the page in case of before floats or footnotes.</p>
@@ -115,7 +115,7 @@ Then if there are any before floats or footnotes then the availabe space is adju
 Then each the best break is found for each column starting from the first column.
 If any before floats or footnotes are removed as a result of the new breaks and optimised spacing then all the columns should still be layed out for the same column height.</p>
     </section>
-    <section>
+    <section id="page-complete">
       <title>Completing Page</title>
       <p>After the region body has been finished the static areas can be layed out.
 The width of the static area is set and the height is inifinite, that is all block areas should be placed in the area and their visibility is controlled be other factors.</p>
@@ -123,7 +123,7 @@ The width of the static area is set and the height is inifinite, that is all blo
       <p>The ordering of the area tree must be adjusted so that the areas are before, start, body, end and after in that order.
 The body region should be in the order before float, main then footnote.</p>
     </section>
-    <section>
+    <section id="line-area">
       <title>Line Areas</title>
       <p>Creating a line areas uses a similair concept.
 Each inline area is placed across the available space until there is no room left.
@@ -132,7 +132,7 @@ The line is then split by considering all keeps and spacing.</p>
 The line break is at the lowest keep value starting from the end of the line.</p>
       <p>Once a line has been layed out for a particular width then that line is fixed for the page (except for unresolved page references).</p>
     </section>
-    <section>
+    <section id="before-float-footnote">
       <title>Before Floats and Footnotes</title>
       <p>The before float region and footnote region are handled by the page layoutmanger.
 These regions will handle the addition and removal of the separator regions when before floats/footnotes area added and removed.</p>
@@ -142,7 +142,7 @@ The size of these areas is determined by the content.
 This in turn effects the available size of the main reference area that contains the flow.</p>
       <p>A layout manager handles the adding and removing of footnotes/floats, this in turn effects the available space in the main reference area.</p>
     </section>
-    <section>
+    <section id="side-float">
       <title>Side Floats</title>
       <p>If a float anchor is present in a particular line area then the available space for that line (and other in the block) will be reduced.
 The side float adds to the height of the block area and this height also depends on the clear value of subsequent blocks.
@@ -155,7 +155,7 @@ so that it can adjust the available inline progression dimension for the
 relevant line areas.</p>
       <!--<p><img src="float.svg" alt="Diagram of Float"/></p>-->
     </section>
-    <section>
+    <section id="unresolved-area">
       <title>Unresolved Areas</title>
       <p>Once the layout of the page is complete there may be unresolved areas.</p>
       <p>Page number citations and links may require following pages to be layed out before they can be resolved.
@@ -167,46 +167,46 @@ Once all id's are resolved then the page can be rendered.</p>
 When the area is resolved then the area is adjusted to its proper size and the line area is
 re-aligned to accomodate the change.</p>
     </section>
-    <section>
+    <section id="id-link-area">
       <title>ID and Link Areas</title>
       <p>Any formatting object that has an ID or any inline link defines an area that will be required when rendering and resolving id references.</p>
       <p>This area is stored in the parent area and may be a shape that exists
 in more than one page, for example over a page break.
 This shape consists of the boundary of all inline (or block) areas that the shape is defined for.</p>
     </section>
-    <section>
+    <section id="inline-area">
       <title>Inline Areas</title>
       <p>This is the definition of all inline areas that will exist in the area.</p>
     </section>
-    <section>
+    <section id="fixed-area">
       <title>Fixed Areas</title>
       <p>instream-foreign-object, external-graphic, inline-container</p>
       <p>These areas have a fixed width and height. They also have a viewport.</p>
     </section>
-    <section>
+    <section id="stretch-area">
       <title>Stretch Areas</title>
       <p>leader, inline space</p>
       <p>These areas have a fixed height but the width may vary.</p>
     </section>
-    <section>
+    <section id="character-area">
       <title>Character Areas</title>
       <p>character</p>
       <p>This is an simple character that has fixed properties according to the current font.
 There are implicit keeps with adjacent characters.</p>
     </section>
-    <section>
+    <section id="anchor-area">
       <title>Anchor Areas</title>
       <p>float anchor, footnote anchor</p>
       <p>This area has no size.
 It keeps the position for footnotes and floats and has a keep with the associated inline area.</p>
     </section>
-    <section>
+    <section id="unresolved-page-num">
       <title>Unresolved Page Numbers</title>
       <p>page-number-citation</p>
       <p>A page number area that needs resolving, behaves as a character and has the space of 3 normal characters reserved.
 The size will adjust when the value is resolved.</p>
     </section>
-    <section>
+    <section id="block-area">
       <title>Block Areas</title>
       <p>When a block creating element is complete then it is possible to build the
 block area and add it to the paprent.</p>
@@ -226,21 +226,21 @@ The line areas are created by the LineLayoutManager in which the inline areas fl
       </ul>
       <p>Once the layout has been finalised then this information can be discarded.</p>
     </section>
-    <section>
+    <section id="page-area">
       <title>Page Areas</title>
       <p>Contains inforamtion about all the block areas in the body, before area and footer area.</p>
       <p>Has a list of the unresolved page references and a list of id refences that can be used to obtain the area associated with that id.</p>
     </section>
-    <section>
+    <section id="test-cases">
       <title>Test Cases</title>
       <p>Here a few layout possibilities areas explored to determine how the layout process will handle these situations.</p>
-      <section>
+      <section id="test-simple">
         <title>Simple Pages</title>
         <p>All blocks (including nested) are placed on the page with minimum spacing and the last block has the minimum number of lines past the page end.
 The lowest keep value is then found within the body area limits.
 Then the next equally low keep is found to determine if the spacing will be closer to the optimum values.</p>
       </section>
-      <section>
+      <section id="test-before-float-footnote">
         <title>Before Floats/Footnotes</title>
         <p>After filling the page with the block areas then the new body height is used to find the best position to break.
 Before each line area or block area is remove any associated before floats and footnotes are removed.
@@ -248,7 +248,7 @@ This will then adjust the available space on the page and may allow for a differ
 Areas are removed towards the new breaking point until the areas fit on the page.
 When finding the optimum spacing the removal of before floats and footnotes must also be  onsidered.</p>
       </section>
-      <section>
+      <section id="test-multi-column">
         <title>Multicolumn</title>
         <p>First the page is filled with all columns for the intial page area.
 Then each column is adjusted for the new height starting from the first column.
@@ -256,7 +256,7 @@ The best break for the column is found then the next column is considered, any l
 Once all the columns are finished then all the columns are adjusted to fit in the same height columns.
 This handles the situation where before floats or footnotes may have been removed.</p>
       </section>
-      <section>
+      <section id="test-last-page">
         <title>Last Page</title>
         <p>If in the process of adding areas to a page it is found that there are no more areas in the flow then this page will need to be changed to the last page (if applicable).
 The areas are then placed on a last page.</p>