Untabify DSSSL and XSL files and add to check-tabs target
authorPeter Eisentraut <peter_e@gmx.net>
Thu, 19 Apr 2012 19:38:14 +0000 (22:38 +0300)
committerPeter Eisentraut <peter_e@gmx.net>
Thu, 19 Apr 2012 19:38:14 +0000 (22:38 +0300)
Like with SGML files, using tabs in these files is confusing and
unnecessary.

doc/src/sgml/Makefile
doc/src/sgml/stylesheet-man.xsl
doc/src/sgml/stylesheet.dsl

index 04fba434509dcb0adfa04a77e0ceb416271c0e88..5c3afad32b93971689022cf6e1ce94a416fcd7d0 100644 (file)
@@ -357,7 +357,7 @@ endif # sqlmansectnum != 7
 
 # tabs are harmless, but it is best to avoid them in SGML files
 check-tabs:
-   @( ! grep ' ' $(wildcard $(srcdir)/*.sgml $(srcdir)/ref/*.sgml) ) || (echo "Tabs appear in SGML files";  exit 1)
+   @( ! grep ' ' $(wildcard $(srcdir)/*.sgml $(srcdir)/ref/*.sgml $(srcdir)/*.dsl $(srcdir)/*.xsl) ) || (echo "Tabs appear in SGML/XML files" 1>&2;  exit 1)
 
 ##
 ## Clean
index 822b082522bdea1d63361e5ccb8cb2a032fcf204..be73b07ba2b85ec3f3682b78fe1ebd97b46d9628 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-       xmlns:exsl="http://exslt.org/common"
+                xmlns:exsl="http://exslt.org/common"
                 version='1.0'
                 exclude-result-prefixes="exsl">
 
     <xsl:otherwise>
       <xsl:choose>
         <xsl:when test="refmeta/refentrytitle">
-    <xsl:call-template name="bold">
-     <xsl:with-param name="node" select="refmeta/refentrytitle"/>
-     <xsl:with-param name="context" select="."/>
-    </xsl:call-template>
+         <xsl:call-template name="bold">
+          <xsl:with-param name="node" select="refmeta/refentrytitle"/>
+          <xsl:with-param name="context" select="."/>
+         </xsl:call-template>
         </xsl:when>
         <xsl:otherwise>
-    <xsl:call-template name="bold">
-     <xsl:with-param name="node" select="refnamediv/refname[1]"/>
-     <xsl:with-param name="context" select="."/>
-    </xsl:call-template>
+         <xsl:call-template name="bold">
+          <xsl:with-param name="node" select="refnamediv/refname[1]"/>
+          <xsl:with-param name="context" select="."/>
+         </xsl:call-template>
         </xsl:otherwise>
       </xsl:choose>
       <xsl:apply-templates select="refmeta/manvolnum"/>
           <xsl:with-param name="message-prolog">Note: </xsl:with-param>
           <xsl:with-param name="message-epilog"> (soelim stub)</xsl:with-param>
           <xsl:with-param name="content">
-       <xsl:choose>
-         <xsl:when test="$man.output.in.separate.dir = 0">
-       <xsl:value-of select="concat('.so man', $section, '/')"/>
-         </xsl:when>
-         <xsl:otherwise>
-       <xsl:value-of select="'.so '"/> <!-- added case -->
-         </xsl:otherwise>
-       </xsl:choose>
+            <xsl:choose>
+              <xsl:when test="$man.output.in.separate.dir = 0">
+                <xsl:value-of select="concat('.so man', $section, '/')"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="'.so '"/> <!-- added case -->
+              </xsl:otherwise>
+            </xsl:choose>
             <xsl:call-template name="make.adjusted.man.filename">
               <xsl:with-param name="name" select="$first.refname"/>
               <xsl:with-param name="section" select="$section"/>
index 41796430850ecc5642953dab3fc06da517956cfe..29e885d1c8cec25d014d6ffb6e9e8d031b067ad0 100644 (file)
 ;; Returns the depth of auto TOC that should be made at the nd-level
 (define (toc-depth nd)
   (cond ((string=? (gi nd) (normalize "book")) 2)
-   ((string=? (gi nd) (normalize "set")) 2)
-   ((string=? (gi nd) (normalize "part")) 2)
-   ((string=? (gi nd) (normalize "chapter")) 2)
-   (else 1)))
+        ((string=? (gi nd) (normalize "set")) 2)
+        ((string=? (gi nd) (normalize "part")) 2)
+        ((string=? (gi nd) (normalize "chapter")) 2)
+        (else 1)))
 
 ;; Put a horizontal line in the set TOC (just like the book TOC looks)
 (define (set-titlepage-separator side)
 ;; Add character encoding and time of creation into HTML header
 (define %html-header-tags%
   (list (list "META" '("HTTP-EQUIV" "Content-Type") '("CONTENT" "text/html; charset=ISO-8859-1"))
-   (list "META" '("NAME" "creation") (list "CONTENT" (time->string (time) #t)))))
+        (list "META" '("NAME" "creation") (list "CONTENT" (time->string (time) #t)))))
 
 
 ;; Block elements are allowed in PARA in DocBook, but not in P in
               (make element gi: "TR"
                     (make element gi: "TD"
                           content)))
-   (make sequence
-     (para-check)
-     content
-     (para-check 'restart)))))
+        (make sequence
+          (para-check)
+          content
+          (para-check 'restart)))))
 
 ;; ...and for notes.
 (element note
 ;; dbcommon.dsl)
 (define (default-header-nav-tbl-ff elemnode prev next prevsib nextsib)
   (let* ((r1? (nav-banner? elemnode))
-    (r1-sosofo (make element gi: "TR"
-             (make element gi: "TH"
-               attributes: (list
-                        (list "COLSPAN" "5")
-                        (list "ALIGN" "center")
-                        (list "VALIGN" "bottom"))
-               (make element gi: "A"
-                     attributes: (list
-                          (list "HREF" (href-to (nav-home elemnode))))
-                     (nav-banner elemnode)))))
-    (r2? (or (not (node-list-empty? prev))
-         (not (node-list-empty? next))
-         (nav-context? elemnode)))
-    (r2-sosofo (make element gi: "TR"
-             (make element gi: "TD"
-               attributes: (list
-                        (list "WIDTH" "10%")
-                        (list "ALIGN" "left")
-                        (list "VALIGN" "top"))
-               (if (node-list-empty? prev)
-                   (make entity-ref name: "nbsp")
-                   (make element gi: "A"
-                     attributes: (list
-                              (list "TITLE" (element-title-string prev))
-                              (list "HREF"
-                                (href-to
-                                 prev))
-                              (list "ACCESSKEY"
-                                "P"))
-                     (gentext-nav-prev prev))))
-             (make element gi: "TD"
-               attributes: (list
-                        (list "WIDTH" "10%")
-                        (list "ALIGN" "left")
-                        (list "VALIGN" "top"))
-               (if (nav-up? elemnode)
-                   (nav-up elemnode)
-                   (nav-home-link elemnode)))
-             (make element gi: "TD"
-               attributes: (list
-                        (list "WIDTH" "60%")
-                        (list "ALIGN" "center")
-                        (list "VALIGN" "bottom"))
-               (nav-context elemnode))
-             (make element gi: "TD"
-               attributes: (list
-                        (list "WIDTH" "20%")
-                        (list "ALIGN" "right")
-                        (list "VALIGN" "top"))
-               (if (node-list-empty? next)
-                   (make entity-ref name: "nbsp")
-                   (make element gi: "A"
-                     attributes: (list
-                              (list "TITLE" (element-title-string next))
-                              (list "HREF"
-                                (href-to
-                                 next))
-                              (list "ACCESSKEY"
-                                "N"))
-                     (gentext-nav-next next)))))))
+         (r1-sosofo (make element gi: "TR"
+                          (make element gi: "TH"
+                                attributes: (list
+                                             (list "COLSPAN" "5")
+                                             (list "ALIGN" "center")
+                                             (list "VALIGN" "bottom"))
+                                (make element gi: "A"
+                                      attributes: (list
+                                                   (list "HREF" (href-to (nav-home elemnode))))
+                                      (nav-banner elemnode)))))
+         (r2? (or (not (node-list-empty? prev))
+                  (not (node-list-empty? next))
+                  (nav-context? elemnode)))
+         (r2-sosofo (make element gi: "TR"
+                          (make element gi: "TD"
+                                attributes: (list
+                                             (list "WIDTH" "10%")
+                                             (list "ALIGN" "left")
+                                             (list "VALIGN" "top"))
+                                (if (node-list-empty? prev)
+                                    (make entity-ref name: "nbsp")
+                                    (make element gi: "A"
+                                          attributes: (list
+                                                       (list "TITLE" (element-title-string prev))
+                                                       (list "HREF"
+                                                             (href-to
+                                                              prev))
+                                                       (list "ACCESSKEY"
+                                                             "P"))
+                                          (gentext-nav-prev prev))))
+                          (make element gi: "TD"
+                                attributes: (list
+                                             (list "WIDTH" "10%")
+                                             (list "ALIGN" "left")
+                                             (list "VALIGN" "top"))
+                                (if (nav-up? elemnode)
+                                    (nav-up elemnode)
+                                    (nav-home-link elemnode)))
+                          (make element gi: "TD"
+                                attributes: (list
+                                             (list "WIDTH" "60%")
+                                             (list "ALIGN" "center")
+                                             (list "VALIGN" "bottom"))
+                                (nav-context elemnode))
+                          (make element gi: "TD"
+                                attributes: (list
+                                             (list "WIDTH" "20%")
+                                             (list "ALIGN" "right")
+                                             (list "VALIGN" "top"))
+                                (if (node-list-empty? next)
+                                    (make entity-ref name: "nbsp")
+                                    (make element gi: "A"
+                                          attributes: (list
+                                                       (list "TITLE" (element-title-string next))
+                                                       (list "HREF"
+                                                             (href-to
+                                                              next))
+                                                       (list "ACCESSKEY"
+                                                             "N"))
+                                          (gentext-nav-next next)))))))
     (if (or r1? r2?)
-   (make element gi: "DIV"
-         attributes: '(("CLASS" "NAVHEADER"))
-     (make element gi: "TABLE"
-       attributes: (list
-                (list "SUMMARY" "Header navigation table")
-                (list "WIDTH" %gentext-nav-tblwidth%)
-                (list "BORDER" "0")
-                (list "CELLPADDING" "0")
-                (list "CELLSPACING" "0"))
-       (if r1? r1-sosofo (empty-sosofo))
-       (if r2? r2-sosofo (empty-sosofo)))
-     (make empty-element gi: "HR"
-       attributes: (list
-                (list "ALIGN" "LEFT")
-                (list "WIDTH" %gentext-nav-tblwidth%))))
-   (empty-sosofo))))
+        (make element gi: "DIV"
+              attributes: '(("CLASS" "NAVHEADER"))
+          (make element gi: "TABLE"
+                attributes: (list
+                             (list "SUMMARY" "Header navigation table")
+                             (list "WIDTH" %gentext-nav-tblwidth%)
+                             (list "BORDER" "0")
+                             (list "CELLPADDING" "0")
+                             (list "CELLSPACING" "0"))
+                (if r1? r1-sosofo (empty-sosofo))
+                (if r2? r2-sosofo (empty-sosofo)))
+          (make empty-element gi: "HR"
+                attributes: (list
+                             (list "ALIGN" "LEFT")
+                             (list "WIDTH" %gentext-nav-tblwidth%))))
+        (empty-sosofo))))
 
 
 ;; Put index "quicklinks" (A | B | C | ...) at the top of the bookindex page.
                    (children (current-node))
                    (list (normalize "indexentry"))))
         (indexdivs  (node-list-filter-by-gi
-            (children (current-node))
-            (list (normalize "indexdiv"))))
+                     (children (current-node))
+                     (list (normalize "indexdiv"))))
         (entries  (node-list-filter-by-gi
                    (children (current-node))
                    (list (normalize "indexentry")))))
            attributes: (list (list "CLASS" (gi)))
            ($component-separator$)
            ($component-title$)
-      (if (node-list-empty? indexdivs)
-          (empty-sosofo)
-          (make element gi: "P"
-            attributes: (list (list "CLASS" "INDEXDIV-QUICKLINKS"))
-            (with-mode indexdiv-quicklinks-mode
-              (process-node-list indexdivs))))
+           (if (node-list-empty? indexdivs)
+               (empty-sosofo)
+               (make element gi: "P"
+                     attributes: (list (list "CLASS" "INDEXDIV-QUICKLINKS"))
+                     (with-mode indexdiv-quicklinks-mode
+                       (process-node-list indexdivs))))
            (process-node-list preamble)
            (if (node-list-empty? entries)
                (empty-sosofo)
   (element indexdiv
     (make sequence
       (make element gi: "A"
-       attributes: (list (list "HREF" (href-to (current-node))))
-       (element-title-sosofo))
+            attributes: (list (list "HREF" (href-to (current-node))))
+            (element-title-sosofo))
       (if (not (last-sibling?))
-     (literal " | ")
-     (literal "")))))
+          (literal " | ")
+          (literal "")))))
 
 
 ;; Changed to strip and normalize index term content (overrides
 
 (define %graphic-default-extension%
   (cond (tex-backend (if texpdf-output "pdf" "eps"))
-   (rtf-backend "gif")
-   (else "XXX")))
+        (rtf-backend "gif")
+        (else "XXX")))
 
 ;; Need to add pdf here so that the above works.  Default setup
 ;; doesn't know about PDF.
 (mode book-titlepage-verso-mode
   (element (legalnotice para)
     (make paragraph
-      use: book-titlepage-verso-style  ;; alter this if ever it needs to appear elsewhere
+      use: book-titlepage-verso-style   ;; alter this if ever it needs to appear elsewhere
       quadding: %default-quadding%
       line-spacing: (* 0.8 (inherited-line-spacing))
       font-size: (* 0.8 (inherited-font-size))
       space-before: (* 0.8 %para-sep%)
       space-after: (* 0.8 %para-sep%)
       first-line-start-indent: (if (is-first-para)
-                  (* 0.8 %para-indent-firstpara%)
-                  (* 0.8 %para-indent%))
+                                   (* 0.8 %para-indent-firstpara%)
+                                   (* 0.8 %para-indent%))
       (process-children))))
 
 
 (element (varlistentry term)
   (make paragraph
     space-before: (if (first-sibling?)
-             %para-sep%
-             0pt)
+                      %para-sep%
+                      0pt)
     keep-with-next?: #t
     (process-children)))
 
         (members (select-elements (children (current-node)) (normalize "member"))))
     (cond
        ((equal? type (normalize "inline"))
-   (if (equal? (gi (parent (current-node)))
-           (normalize "para"))
-       (process-children)
-       (make paragraph
-         space-before: %para-sep%
-         space-after: %para-sep%
-         start-indent: (inherited-start-indent))))
+        (if (equal? (gi (parent (current-node)))
+                    (normalize "para"))
+            (process-children)
+            (make paragraph
+              space-before: %para-sep%
+              space-after: %para-sep%
+              start-indent: (inherited-start-indent))))
        ((equal? type (normalize "vert"))
         (my-simplelist-vert members))
        ((equal? type (normalize "horiz"))
     (cond
      ((equal? type (normalize "inline"))
       (make sequence
-   (process-children)
-   (if (not (last-sibling?))
-       (literal ", ")
-       (literal ""))))
+        (process-children)
+        (if (not (last-sibling?))
+            (literal ", ")
+            (literal ""))))
       ((equal? type (normalize "vert"))
        (make paragraph
-    space-before: 0pt
-    space-after: 0pt))
+         space-before: 0pt
+         space-after: 0pt))
       ((equal? type (normalize "horiz"))
        (make paragraph
-    quadding: 'start
-    (process-children))))))
+         quadding: 'start
+         (process-children))))))
 
 
 ;; Jadetex doesn't handle links to the content of tables, so
 (define (find-parent-table nd)
   (let ((table (ancestor-member nd ($table-element-list$))))
     (if (node-list-empty? table)
-   nd
-   table)))
+        nd
+        table)))
 
 ;; (The function below overrides the one in print/dbindex.dsl.)
 
 
 (define (first-part?)
   (let* ((book (ancestor (normalize "book")))
-    (nd   (ancestor-member (current-node)
-               (append
-                (component-element-list)
-                (division-element-list))))
-    (bookch (children book)))
+         (nd   (ancestor-member (current-node)
+                                (append
+                                 (component-element-list)
+                                 (division-element-list))))
+         (bookch (children book)))
     (let loop ((nl bookch))
       (if (node-list-empty? nl)
-     #f
-     (if (equal? (gi (node-list-first nl)) (normalize "part"))
-         (if (node-list=? (node-list-first nl) nd)
-         #t
-         #f)
-         (loop (node-list-rest nl)))))))
+          #f
+          (if (equal? (gi (node-list-first nl)) (normalize "part"))
+              (if (node-list=? (node-list-first nl) nd)
+                  #t
+                  #f)
+              (loop (node-list-rest nl)))))))
 
 (define (first-reference?)
   (let* ((book (ancestor (normalize "book")))
-    (nd   (ancestor-member (current-node)
-               (append
-                (component-element-list)
-                (division-element-list))))
-    (bookch (children book)))
+         (nd   (ancestor-member (current-node)
+                                (append
+                                 (component-element-list)
+                                 (division-element-list))))
+         (bookch (children book)))
     (let loop ((nl bookch))
       (if (node-list-empty? nl)
-     #f
-     (if (equal? (gi (node-list-first nl)) (normalize "reference"))
-         (if (node-list=? (node-list-first nl) nd)
-         #t
-         #f)
-         (loop (node-list-rest nl)))))))
+          #f
+          (if (equal? (gi (node-list-first nl)) (normalize "reference"))
+              (if (node-list=? (node-list-first nl) nd)
+                  #t
+                  #f)
+              (loop (node-list-rest nl)))))))
 
 
 (define (part-titlepage elements #!optional (side 'recto))
   (let ((nodelist (titlepage-nodelist
-          (if (equal? side 'recto)
-              (reference-titlepage-recto-elements)
-              (reference-titlepage-verso-elements))
-          elements))
+                   (if (equal? side 'recto)
+                       (reference-titlepage-recto-elements)
+                       (reference-titlepage-verso-elements))
+                   elements))
         ;; partintro is a special case...
-   (partintro (node-list-first
-           (node-list-filter-by-gi elements (list (normalize "partintro"))))))
+        (partintro (node-list-first
+                    (node-list-filter-by-gi elements (list (normalize "partintro"))))))
     (if (part-titlepage-content? elements side)
-   (make simple-page-sequence
-     page-n-columns: %titlepage-n-columns%
-     ;; Make sure that page number format is correct.
-     page-number-format: ($page-number-format$)
-     ;; Make sure that the page number is set to 1 if this is the
-     ;; first part in the book
-     page-number-restart?: (first-part?)
-     input-whitespace-treatment: 'collapse
-     use: default-text-style
-
-     ;; This hack is required for the RTF backend. If an external-graphic
-     ;; is the first thing on the page, RTF doesn't seem to do the right
-     ;; thing (the graphic winds up on the baseline of the first line
-     ;; of the page, left justified).  This "one point rule" fixes
-     ;; that problem.
-     (make paragraph
-       line-spacing: 1pt
-       (literal ""))
-
-     (let loop ((nl nodelist) (lastnode (empty-node-list)))
-       (if (node-list-empty? nl)
-       (empty-sosofo)
-       (make sequence
-         (if (or (node-list-empty? lastnode)
-             (not (equal? (gi (node-list-first nl))
-                      (gi lastnode))))
-             (part-titlepage-before (node-list-first nl) side)
-             (empty-sosofo))
-         (cond
-          ((equal? (gi (node-list-first nl)) (normalize "subtitle"))
-           (part-titlepage-subtitle (node-list-first nl) side))
-          ((equal? (gi (node-list-first nl)) (normalize "title"))
-           (part-titlepage-title (node-list-first nl) side))
-          (else
-           (part-titlepage-default (node-list-first nl) side)))
-         (loop (node-list-rest nl) (node-list-first nl)))))
-
-     (if (and %generate-part-toc%
-          %generate-part-toc-on-titlepage%
-          (equal? side 'recto))
-         (make display-group
-       (build-toc (current-node)
-              (toc-depth (current-node))))
-         (empty-sosofo))
-
-     ;; PartIntro is a special case
-     (if (and (equal? side 'recto)
-          (not (node-list-empty? partintro))
-          %generate-partintro-on-titlepage%)
-         ($process-partintro$ partintro #f)
-         (empty-sosofo)))
-
-   (empty-sosofo))))
+        (make simple-page-sequence
+          page-n-columns: %titlepage-n-columns%
+          ;; Make sure that page number format is correct.
+          page-number-format: ($page-number-format$)
+          ;; Make sure that the page number is set to 1 if this is the
+          ;; first part in the book
+          page-number-restart?: (first-part?)
+          input-whitespace-treatment: 'collapse
+          use: default-text-style
+
+          ;; This hack is required for the RTF backend. If an external-graphic
+          ;; is the first thing on the page, RTF doesn't seem to do the right
+          ;; thing (the graphic winds up on the baseline of the first line
+          ;; of the page, left justified).  This "one point rule" fixes
+          ;; that problem.
+          (make paragraph
+            line-spacing: 1pt
+            (literal ""))
+
+          (let loop ((nl nodelist) (lastnode (empty-node-list)))
+            (if (node-list-empty? nl)
+                (empty-sosofo)
+                (make sequence
+                  (if (or (node-list-empty? lastnode)
+                          (not (equal? (gi (node-list-first nl))
+                                       (gi lastnode))))
+                      (part-titlepage-before (node-list-first nl) side)
+                      (empty-sosofo))
+                  (cond
+                   ((equal? (gi (node-list-first nl)) (normalize "subtitle"))
+                    (part-titlepage-subtitle (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "title"))
+                    (part-titlepage-title (node-list-first nl) side))
+                   (else
+                    (part-titlepage-default (node-list-first nl) side)))
+                  (loop (node-list-rest nl) (node-list-first nl)))))
+
+          (if (and %generate-part-toc%
+                   %generate-part-toc-on-titlepage%
+                   (equal? side 'recto))
+              (make display-group
+                (build-toc (current-node)
+                           (toc-depth (current-node))))
+              (empty-sosofo))
+
+          ;; PartIntro is a special case
+          (if (and (equal? side 'recto)
+                   (not (node-list-empty? partintro))
+                   %generate-partintro-on-titlepage%)
+              ($process-partintro$ partintro #f)
+              (empty-sosofo)))
+
+        (empty-sosofo))))
 
 
 (define (reference-titlepage elements #!optional (side 'recto))
   (let ((nodelist (titlepage-nodelist
-          (if (equal? side 'recto)
-              (reference-titlepage-recto-elements)
-              (reference-titlepage-verso-elements))
-          elements))
+                   (if (equal? side 'recto)
+                       (reference-titlepage-recto-elements)
+                       (reference-titlepage-verso-elements))
+                   elements))
         ;; partintro is a special case...
-   (partintro (node-list-first
-           (node-list-filter-by-gi elements (list (normalize "partintro"))))))
+        (partintro (node-list-first
+                    (node-list-filter-by-gi elements (list (normalize "partintro"))))))
     (if (reference-titlepage-content? elements side)
-   (make simple-page-sequence
-     page-n-columns: %titlepage-n-columns%
-     ;; Make sure that page number format is correct.
-     page-number-format: ($page-number-format$)
-     ;; Make sure that the page number is set to 1 if this is the
-     ;; first part in the book
-     page-number-restart?: (first-reference?)
-     input-whitespace-treatment: 'collapse
-     use: default-text-style
-
-     ;; This hack is required for the RTF backend. If an external-graphic
-     ;; is the first thing on the page, RTF doesn't seem to do the right
-     ;; thing (the graphic winds up on the baseline of the first line
-     ;; of the page, left justified).  This "one point rule" fixes
-     ;; that problem.
-     (make paragraph
-       line-spacing: 1pt
-       (literal ""))
-
-     (let loop ((nl nodelist) (lastnode (empty-node-list)))
-       (if (node-list-empty? nl)
-       (empty-sosofo)
-       (make sequence
-         (if (or (node-list-empty? lastnode)
-             (not (equal? (gi (node-list-first nl))
-                      (gi lastnode))))
-             (reference-titlepage-before (node-list-first nl) side)
-             (empty-sosofo))
-         (cond
-          ((equal? (gi (node-list-first nl)) (normalize "author"))
-           (reference-titlepage-author (node-list-first nl) side))
-          ((equal? (gi (node-list-first nl)) (normalize "authorgroup"))
-           (reference-titlepage-authorgroup (node-list-first nl) side))
-          ((equal? (gi (node-list-first nl)) (normalize "corpauthor"))
-           (reference-titlepage-corpauthor (node-list-first nl) side))
-          ((equal? (gi (node-list-first nl)) (normalize "editor"))
-           (reference-titlepage-editor (node-list-first nl) side))
-          ((equal? (gi (node-list-first nl)) (normalize "subtitle"))
-           (reference-titlepage-subtitle (node-list-first nl) side))
-          ((equal? (gi (node-list-first nl)) (normalize "title"))
-           (reference-titlepage-title (node-list-first nl) side))
-          (else
-           (reference-titlepage-default (node-list-first nl) side)))
-         (loop (node-list-rest nl) (node-list-first nl)))))
-
-     (if (and %generate-reference-toc%
-          %generate-reference-toc-on-titlepage%
-          (equal? side 'recto))
-         (make display-group
-       (build-toc (current-node)
-              (toc-depth (current-node))))
-         (empty-sosofo))
-
-     ;; PartIntro is a special case
-     (if (and (equal? side 'recto)
-          (not (node-list-empty? partintro))
-          %generate-partintro-on-titlepage%)
-         ($process-partintro$ partintro #f)
-         (empty-sosofo)))
-
-   (empty-sosofo))))
+        (make simple-page-sequence
+          page-n-columns: %titlepage-n-columns%
+          ;; Make sure that page number format is correct.
+          page-number-format: ($page-number-format$)
+          ;; Make sure that the page number is set to 1 if this is the
+          ;; first part in the book
+          page-number-restart?: (first-reference?)
+          input-whitespace-treatment: 'collapse
+          use: default-text-style
+
+          ;; This hack is required for the RTF backend. If an external-graphic
+          ;; is the first thing on the page, RTF doesn't seem to do the right
+          ;; thing (the graphic winds up on the baseline of the first line
+          ;; of the page, left justified).  This "one point rule" fixes
+          ;; that problem.
+          (make paragraph
+            line-spacing: 1pt
+            (literal ""))
+
+          (let loop ((nl nodelist) (lastnode (empty-node-list)))
+            (if (node-list-empty? nl)
+                (empty-sosofo)
+                (make sequence
+                  (if (or (node-list-empty? lastnode)
+                          (not (equal? (gi (node-list-first nl))
+                                       (gi lastnode))))
+                      (reference-titlepage-before (node-list-first nl) side)
+                      (empty-sosofo))
+                  (cond
+                   ((equal? (gi (node-list-first nl)) (normalize "author"))
+                    (reference-titlepage-author (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "authorgroup"))
+                    (reference-titlepage-authorgroup (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "corpauthor"))
+                    (reference-titlepage-corpauthor (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "editor"))
+                    (reference-titlepage-editor (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "subtitle"))
+                    (reference-titlepage-subtitle (node-list-first nl) side))
+                   ((equal? (gi (node-list-first nl)) (normalize "title"))
+                    (reference-titlepage-title (node-list-first nl) side))
+                   (else
+                    (reference-titlepage-default (node-list-first nl) side)))
+                  (loop (node-list-rest nl) (node-list-first nl)))))
+
+          (if (and %generate-reference-toc%
+                   %generate-reference-toc-on-titlepage%
+                   (equal? side 'recto))
+              (make display-group
+                (build-toc (current-node)
+                           (toc-depth (current-node))))
+              (empty-sosofo))
+
+          ;; PartIntro is a special case
+          (if (and (equal? side 'recto)
+                   (not (node-list-empty? partintro))
+                   %generate-partintro-on-titlepage%)
+              ($process-partintro$ partintro #f)
+              (empty-sosofo)))
+
+        (empty-sosofo))))
 
 ]]> <!-- %output-print -->