]> granicus.if.org Git - docbook-dsssl/commitdiff
Use named-templates for headers/footers to make customization easier
authorNorman Walsh <ndw@nwalsh.com>
Mon, 15 Jul 2002 22:46:59 +0000 (22:46 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Mon, 15 Jul 2002 22:46:59 +0000 (22:46 +0000)
xsl/fo/pagesetup.xsl

index 5bbddd07a7d58f3e1f227c16982f7ec3ba260e67..c39a2b4ef146bbb2d81f4e00c7fa76352f6e5c86 100644 (file)
     </xsl:choose>
   </xsl:variable>
 
-  <xsl:variable name="head-blank">
-    <fo:table table-layout="fixed" width="100%">
-      <fo:table-column column-number="1" column-width="33%"/>
-      <fo:table-column column-number="2" column-width="34%"/>
-      <fo:table-column column-number="3" column-width="33%"/>
-      <fo:table-body>
-        <fo:table-row height="14pt">
-          <fo:table-cell text-align="left"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:value-of select="$draft"/>
-            </fo:block>
-          </fo:table-cell>
-          <fo:table-cell text-align="center"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block/>
-          </fo:table-cell>
-          <fo:table-cell text-align="right"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:value-of select="$draft"/>
-            </fo:block>
-          </fo:table-cell>
-        </fo:table-row>
-      </fo:table-body>
-    </fo:table>
-  </xsl:variable>
-
-  <xsl:variable name="head-empty">
-    <fo:table table-layout="fixed" width="100%">
-      <xsl:call-template name="head.sep.rule"/>
-      <fo:table-column column-number="1" column-width="33%"/>
-      <fo:table-column column-number="2" column-width="34%"/>
-      <fo:table-column column-number="3" column-width="33%"/>
-      <fo:table-body>
-        <fo:table-row height="14pt">
-          <fo:table-cell text-align="left"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:value-of select="$draft"/>
-            </fo:block>
-          </fo:table-cell>
-          <fo:table-cell text-align="center"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block/>
-          </fo:table-cell>
-          <fo:table-cell text-align="right"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:value-of select="$draft"/>
-            </fo:block>
-          </fo:table-cell>
-        </fo:table-row>
-      </fo:table-body>
-    </fo:table>
-  </xsl:variable>
-
-  <xsl:variable name="head-even">
-    <fo:table table-layout="fixed" width="100%">
-      <xsl:call-template name="head.sep.rule"/>
-      <fo:table-column column-number="1" column-width="33%"/>
-      <fo:table-column column-number="2" column-width="34%"/>
-      <fo:table-column column-number="3" column-width="33%"/>
-      <fo:table-body>
-        <fo:table-row height="14pt">
-          <fo:table-cell text-align="left"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:value-of select="$draft"/>
-            </fo:block>
-          </fo:table-cell>
-          <fo:table-cell text-align="center"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:choose>
-                <xsl:when test="starts-with($master-reference, 'lot')">
-                  <xsl:call-template name="gentext">
-                    <xsl:with-param name="key" select="$gentext-key"/>
-                  </xsl:call-template>
-                </xsl:when>
-                <xsl:otherwise>
-                  <xsl:apply-templates select="." mode="object.title.markup"/>
-                </xsl:otherwise>
-              </xsl:choose>
-            </fo:block>
-          </fo:table-cell>
-          <fo:table-cell text-align="right"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:value-of select="$draft"/>
-            </fo:block>
-          </fo:table-cell>
-        </fo:table-row>
-      </fo:table-body>
-    </fo:table>
-  </xsl:variable>
-
-  <xsl:variable name="head-odd">
-    <fo:table table-layout="fixed" width="100%">
-      <xsl:call-template name="head.sep.rule"/>
-      <fo:table-column column-number="1" column-width="33%"/>
-      <fo:table-column column-number="2" column-width="34%"/>
-      <fo:table-column column-number="3" column-width="33%"/>
-      <fo:table-body>
-        <fo:table-row height="14pt">
-          <fo:table-cell text-align="left"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:value-of select="$draft"/>
-            </fo:block>
-          </fo:table-cell>
-          <fo:table-cell text-align="center"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:choose>
-                <xsl:when test="ancestor::book and ($double.sided != 0)">
-                  <fo:retrieve-marker retrieve-class-name="section.head.marker"
-                                      retrieve-position="first-including-carryover"
-                                      retrieve-boundary="page"/>
-                </xsl:when>
-                <xsl:otherwise>
-                  <xsl:apply-templates select="." mode="object.title.markup"/>
-                </xsl:otherwise>
-              </xsl:choose>
-            </fo:block>
-          </fo:table-cell>
-          <fo:table-cell text-align="right"
-                         relative-align="baseline"
-                         display-align="before">
-            <fo:block>
-              <xsl:value-of select="$draft"/>
-            </fo:block>
-          </fo:table-cell>
-        </fo:table-row>
-      </fo:table-body>
-    </fo:table>
-  </xsl:variable>
-
   <xsl:choose>
     <xsl:when test="starts-with($master-reference, 'titlepage')">
       <fo:static-content flow-name="xsl-region-before-{$flow-name}-first">
         <fo:block margin-left="{$title.margin.left}">
-          <xsl:copy-of select="$head-blank"/>
+          <xsl:call-template name="head.blank">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
         </fo:block>
       </fo:static-content>
 
       <fo:static-content flow-name="xsl-region-before-{$flow-name}-odd">
         <fo:block margin-left="{$title.margin.left}">
-          <xsl:copy-of select="$head-blank"/>
+          <xsl:call-template name="head.blank">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
         </fo:block>
       </fo:static-content>
 
       <fo:static-content flow-name="xsl-region-before-{$flow-name}-even">
         <fo:block margin-left="{$title.margin.left}">
-          <xsl:copy-of select="$head-blank"/>
+          <xsl:call-template name="head.blank">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
         </fo:block>
       </fo:static-content>
 
       <fo:static-content flow-name="xsl-region-before-blank">
         <fo:block margin-left="{$title.margin.left}">
           <xsl:if test="$headers.on.blank.pages != 0">
-            <xsl:copy-of select="$head-empty"/>
+            <xsl:call-template name="head.empty">
+              <xsl:with-param name="master-reference" select="$master-reference"/>
+              <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              <xsl:with-param name="draft" select="$draft"/>
+            </xsl:call-template>
           </xsl:if>
         </fo:block>
       </fo:static-content>
     <xsl:when test="starts-with($master-reference, 'lot')">
       <fo:static-content flow-name="xsl-region-before-{$flow-name}-first">
         <fo:block margin-left="{$title.margin.left}">
-          <xsl:copy-of select="$head-empty"/>
+          <xsl:call-template name="head.empty">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
         </fo:block>
       </fo:static-content>
 
       <fo:static-content flow-name="xsl-region-before-{$flow-name}-odd">
         <fo:block margin-left="{$title.margin.left}">
-          <xsl:copy-of select="$head-even"/> <!-- yes, even -->
+          <xsl:call-template name="head.even"> <!-- yes, even -->
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
         </fo:block>
       </fo:static-content>
 
       <fo:static-content flow-name="xsl-region-before-{$flow-name}-even">
         <fo:block margin-left="{$title.margin.left}">
-          <xsl:copy-of select="$head-even"/>
+          <xsl:call-template name="head.even">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
         </fo:block>
       </fo:static-content>
 
       <fo:static-content flow-name="xsl-region-before-blank">
         <fo:block margin-left="{$title.margin.left}">
           <xsl:if test="$headers.on.blank.pages != 0">
-            <xsl:copy-of select="$head-empty"/>
+            <xsl:call-template name="head.empty">
+              <xsl:with-param name="master-reference" select="$master-reference"/>
+              <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              <xsl:with-param name="draft" select="$draft"/>
+            </xsl:call-template>
           </xsl:if>
         </fo:block>
       </fo:static-content>
     <xsl:otherwise>
       <fo:static-content flow-name="xsl-region-before-{$flow-name}-first">
         <fo:block margin-left="{$title.margin.left}">
-          <xsl:copy-of select="$head-empty"/>
+          <xsl:call-template name="head.empty">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
         </fo:block>
       </fo:static-content>
 
       <fo:static-content flow-name="xsl-region-before-{$flow-name}-odd">
         <fo:block margin-left="{$title.margin.left}">
-          <xsl:copy-of select="$head-odd"/>
+          <xsl:call-template name="head.odd">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
         </fo:block>
       </fo:static-content>
 
       <fo:static-content flow-name="xsl-region-before-{$flow-name}-even">
         <fo:block margin-left="{$title.margin.left}">
-          <xsl:copy-of select="$head-even"/>
+          <xsl:call-template name="head.even">
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
         </fo:block>
       </fo:static-content>
 
       <fo:static-content flow-name="xsl-region-before-blank">
         <fo:block margin-left="{$title.margin.left}">
           <xsl:if test="$headers.on.blank.pages != 0">
-            <xsl:copy-of select="$head-empty"/>
+            <xsl:call-template name="head.empty">
+              <xsl:with-param name="master-reference" select="$master-reference"/>
+              <xsl:with-param name="gentext-key" select="$gentext-key"/>
+              <xsl:with-param name="draft" select="$draft"/>
+            </xsl:call-template>
           </xsl:if>
         </fo:block>
       </fo:static-content>
     </xsl:choose>
   </xsl:variable>
 
-  <!-- by default, the page number -->
-  <xsl:variable name="foot">
-    <fo:page-number/>
-  </xsl:variable>
-
-  <xsl:variable name="align-odd">
-    <xsl:choose>
-      <xsl:when test="$double.sided != 0">right</xsl:when>
-      <xsl:otherwise>center</xsl:otherwise>
-    </xsl:choose>
-  </xsl:variable>
-
-  <xsl:variable name="align-even">
+  <xsl:variable name="draft">
     <xsl:choose>
-      <xsl:when test="$double.sided != 0">left</xsl:when>
-      <xsl:otherwise>center</xsl:otherwise>
+      <xsl:when test="$draft.mode = 'yes'">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Draft'"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:when test="$draft.mode = 'no'">
+        <!-- nop -->
+      </xsl:when>
+      <xsl:when test="ancestor-or-self::*[@status][1]/@status = 'draft'">
+        <xsl:call-template name="gentext">
+          <xsl:with-param name="key" select="'Draft'"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- nop -->
+      </xsl:otherwise>
     </xsl:choose>
   </xsl:variable>
 
     <xsl:when test="starts-with($master-reference,'titlepage')">
       <!-- no footers; but maybe footers on a following blank page -->
       <fo:static-content flow-name="xsl-region-after-blank">
-        <fo:block text-align="{$align-even}" margin-left="{$title.margin.left}">
-          <xsl:if test="$footers.on.blank.pages != 0">
-            <xsl:call-template name="foot.sep.rule"/>
-            <xsl:copy-of select="$foot"/>
-          </xsl:if>
-        </fo:block>
+        <xsl:call-template name="foot.blank">
+          <xsl:with-param name="master-reference" select="$master-reference"/>
+          <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          <xsl:with-param name="draft" select="$draft"/>
+        </xsl:call-template>
       </fo:static-content>
     </xsl:when>
     <xsl:when test="$master-reference = 'titlepage'
                     or $master-reference = 'back-draft'
                     or $master-reference = 'index-draft'">
       <fo:static-content flow-name="xsl-region-after-{$flow-name}-first">
-        <fo:block text-align="{$align-odd}" margin-left="{$title.margin.left}">
-          <xsl:call-template name="foot.sep.rule"/>
-          <xsl:copy-of select="$foot"/>
-        </fo:block>
+        <xsl:call-template name="foot.blank">
+          <xsl:with-param name="master-reference" select="$master-reference"/>
+          <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          <xsl:with-param name="draft" select="$draft"/>
+        </xsl:call-template>
       </fo:static-content>
       <fo:static-content flow-name="xsl-region-after-{$flow-name}-odd">
-        <fo:block text-align="{$align-odd}" margin-left="{$title.margin.left}">
-          <xsl:call-template name="foot.sep.rule"/>
-          <xsl:copy-of select="$foot"/>
-        </fo:block>
+        <xsl:call-template name="foot.odd">
+          <xsl:with-param name="master-reference" select="$master-reference"/>
+          <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          <xsl:with-param name="draft" select="$draft"/>
+        </xsl:call-template>
       </fo:static-content>
       <fo:static-content flow-name="xsl-region-after-{$flow-name}-even">
-        <fo:block text-align="{$align-even}" margin-left="{$title.margin.left}">
-          <xsl:call-template name="foot.sep.rule"/>
-          <xsl:copy-of select="$foot"/>
-        </fo:block>
+        <xsl:call-template name="foot.even">
+          <xsl:with-param name="master-reference" select="$master-reference"/>
+          <xsl:with-param name="gentext-key" select="$gentext-key"/>
+          <xsl:with-param name="draft" select="$draft"/>
+        </xsl:call-template>
       </fo:static-content>
       <fo:static-content flow-name="xsl-region-after-blank">
-        <fo:block text-align="{$align-even}" margin-left="{$title.margin.left}">
-          <xsl:if test="$footers.on.blank.pages != 0">
-            <xsl:call-template name="foot.sep.rule"/>
-            <xsl:copy-of select="$foot"/>
-          </xsl:if>
-        </fo:block>
+        <xsl:if test="$footers.on.blank.pages != 0">
+          <xsl:call-template name="foot.even"> <!-- yes, even -->
+            <xsl:with-param name="master-reference" select="$master-reference"/>
+            <xsl:with-param name="gentext-key" select="$gentext-key"/>
+            <xsl:with-param name="draft" select="$draft"/>
+          </xsl:call-template>
+        </xsl:if>
       </fo:static-content>
     </xsl:when>
     <xsl:otherwise>
 
 <!-- ==================================================================== -->
 
+<xsl:template name="head.blank">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="'TableofContents'"/>
+  <xsl:param name="draft"/>
+
+  <fo:table table-layout="fixed" width="100%">
+    <fo:table-column column-number="1" column-width="33%"/>
+    <fo:table-column column-number="2" column-width="34%"/>
+    <fo:table-column column-number="3" column-width="33%"/>
+    <fo:table-body>
+      <fo:table-row height="14pt">
+        <fo:table-cell text-align="left"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:value-of select="$draft"/>
+          </fo:block>
+        </fo:table-cell>
+        <fo:table-cell text-align="center"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block/>
+        </fo:table-cell>
+        <fo:table-cell text-align="right"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:value-of select="$draft"/>
+          </fo:block>
+        </fo:table-cell>
+      </fo:table-row>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template name="head.empty">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="'TableofContents'"/>
+  <xsl:param name="draft"/>
+
+  <fo:table table-layout="fixed" width="100%">
+    <xsl:call-template name="head.sep.rule"/>
+    <fo:table-column column-number="1" column-width="33%"/>
+    <fo:table-column column-number="2" column-width="34%"/>
+    <fo:table-column column-number="3" column-width="33%"/>
+    <fo:table-body>
+      <fo:table-row height="14pt">
+        <fo:table-cell text-align="left"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:value-of select="$draft"/>
+          </fo:block>
+        </fo:table-cell>
+        <fo:table-cell text-align="center"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block/>
+        </fo:table-cell>
+        <fo:table-cell text-align="right"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:value-of select="$draft"/>
+          </fo:block>
+        </fo:table-cell>
+      </fo:table-row>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template name="head.even">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="'TableofContents'"/>
+  <xsl:param name="draft"/>
+
+  <fo:table table-layout="fixed" width="100%">
+    <xsl:call-template name="head.sep.rule"/>
+    <fo:table-column column-number="1" column-width="33%"/>
+    <fo:table-column column-number="2" column-width="34%"/>
+    <fo:table-column column-number="3" column-width="33%"/>
+    <fo:table-body>
+      <fo:table-row height="14pt">
+        <fo:table-cell text-align="left"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:value-of select="$draft"/>
+          </fo:block>
+        </fo:table-cell>
+        <fo:table-cell text-align="center"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:choose>
+              <xsl:when test="starts-with($master-reference, 'lot')">
+                <xsl:call-template name="gentext">
+                  <xsl:with-param name="key" select="$gentext-key"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:apply-templates select="." mode="object.title.markup"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </fo:block>
+        </fo:table-cell>
+        <fo:table-cell text-align="right"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:value-of select="$draft"/>
+          </fo:block>
+        </fo:table-cell>
+      </fo:table-row>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<xsl:template name="head.odd">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="'TableofContents'"/>
+  <xsl:param name="draft"/>
+
+  <fo:table table-layout="fixed" width="100%">
+    <xsl:call-template name="head.sep.rule"/>
+    <fo:table-column column-number="1" column-width="33%"/>
+    <fo:table-column column-number="2" column-width="34%"/>
+    <fo:table-column column-number="3" column-width="33%"/>
+    <fo:table-body>
+      <fo:table-row height="14pt">
+        <fo:table-cell text-align="left"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:value-of select="$draft"/>
+          </fo:block>
+        </fo:table-cell>
+        <fo:table-cell text-align="center"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:choose>
+              <xsl:when test="ancestor::book and ($double.sided != 0)">
+                <fo:retrieve-marker retrieve-class-name="section.head.marker"
+                                    retrieve-position="first-including-carryover"
+                                    retrieve-boundary="page"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:apply-templates select="." mode="object.title.markup"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </fo:block>
+        </fo:table-cell>
+        <fo:table-cell text-align="right"
+                       relative-align="baseline"
+                       display-align="before">
+          <fo:block>
+            <xsl:value-of select="$draft"/>
+          </fo:block>
+        </fo:table-cell>
+      </fo:table-row>
+    </fo:table-body>
+  </fo:table>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="foot.blank">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="'TableofContents'"/>
+  <xsl:param name="draft"/>
+
+  <xsl:variable name="align-even">
+    <xsl:choose>
+      <xsl:when test="$double.sided != 0">left</xsl:when>
+      <xsl:otherwise>center</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <xsl:if test="$footers.on.blank.pages != 0">
+    <fo:block text-align="{$align-even}" margin-left="{$title.margin.left}">
+      <xsl:call-template name="foot.sep.rule"/>
+      <fo:page-number/>
+    </fo:block>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template name="foot.even">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="'TableofContents'"/>
+  <xsl:param name="draft"/>
+
+  <xsl:variable name="align-even">
+    <xsl:choose>
+      <xsl:when test="$double.sided != 0">left</xsl:when>
+      <xsl:otherwise>center</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:block text-align="{$align-even}" margin-left="{$title.margin.left}">
+    <xsl:call-template name="foot.sep.rule"/>
+    <fo:page-number/>
+  </fo:block>
+</xsl:template>
+
+<xsl:template name="foot.odd">
+  <xsl:param name="master-reference" select="'unknown'"/>
+  <xsl:param name="gentext-key" select="'TableofContents'"/>
+  <xsl:param name="draft"/>
+
+  <xsl:variable name="align-odd">
+    <xsl:choose>
+      <xsl:when test="$double.sided != 0">right</xsl:when>
+      <xsl:otherwise>center</xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+
+  <fo:block text-align="{$align-odd}" margin-left="{$title.margin.left}">
+    <xsl:call-template name="foot.sep.rule"/>
+    <fo:page-number/>
+  </fo:block>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
 </xsl:stylesheet>