[yelp-xsl] db-title: Simplified title templates



commit e2c312ad3202c579cedfe048c70aefd51b7cdf26
Author: Shaun McCance <shaunm gnome org>
Date:   Thu Nov 10 10:27:04 2011 -0500

    db-title: Simplified title templates

 xslt/docbook/common/db-title.xsl | 1972 +++-----------------------------------
 1 files changed, 131 insertions(+), 1841 deletions(-)
---
diff --git a/xslt/docbook/common/db-title.xsl b/xslt/docbook/common/db-title.xsl
index cc8a6fc..5234a56 100644
--- a/xslt/docbook/common/db-title.xsl
+++ b/xslt/docbook/common/db-title.xsl
@@ -24,1895 +24,185 @@ Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 
 <!--!!==========================================================================
 DocBook Titles
-:Requires: db-chunk gettext
+Support for DocBook title, titleabbrev, and subtitle elements.
+:Revision:version="3.4" date="2011-11-10" status="final"
+
+This stylesheet contains templates for outputting titles based on title,
+titleabbrev, or subtitle elements. It supports automatic titles for certain
+elements with optional titles.
 -->
 
 
 <!--**==========================================================================
 db.title
-Processes the title of an element
-$node: The element to process the title of
-
-REMARK: Describe this, and how format templates and markup play in
+Output a title for an element.
+:Revision:version="3.4" date="2011-11-10" status="final"
+$node: The element to output the title of.
+$info: The info child element of ${node}.
+
+This template outputs the title of the element ${node} as it might be used for
+a heading or for link text. For certain types of elements, this templates will
+use a localized automatic title if no explicit title is provided.
 -->
 <xsl:template name="db.title">
   <xsl:param name="node" select="."/>
-  <xsl:apply-templates mode="db.title.mode" select="$node"/>
-</xsl:template>
-
-
-<!--**==========================================================================
-db.titleabbrev
-Processes the abbreviated title of an element
-$node: The element to process the abbreviated title of
-
-REMARK: Describe this, and how format templates and markup play in,
-and fallback to db.title
--->
-<xsl:template name="db.titleabbrev">
-  <xsl:param name="node" select="."/>
-  <xsl:apply-templates mode="db.titleabbrev.mode" select="$node"/>
-</xsl:template>
-
-
-<!--**==========================================================================
-db.subtitle
-Processes the subtitle of an element
-$node: The element to process the subtitle of
-
-REMARK: Describe this, and how format templates and markup play in
--->
-<xsl:template name="db.subtitle">
-  <xsl:param name="node" select="."/>
-  <xsl:apply-templates mode="db.subtitle.mode" select="$node"/>
-</xsl:template>
-
-
-<!--%%==========================================================================
-db.title.mode
-FIXME
-
-REMARK: Describe this mode
--->
-<xsl:template mode="db.title.mode" match="*">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="blockinfo/title">
-      <xsl:apply-templates select="blockinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="objectinfo/title">
-      <xsl:apply-templates select="objectinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % appendix = -->
-<xsl:template mode="db.title.mode" match="anchor | db:anchor">
-  <xsl:variable name="target_chunk_id">
-    <xsl:call-template name="db.chunk.chunk-id">
-      <xsl:with-param name="node" select="."/>
-    </xsl:call-template>
-  </xsl:variable>
-  <xsl:variable name="target_chunk" select="key('idkey', $target_chunk_id)"/>
-  <xsl:choose>
-    <xsl:when test="$target_chunk">
-      <xsl:apply-templates mode="db.title.mode" select="$target_chunk"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % appendix = -->
-<xsl:template mode="db.title.mode" match="appendix | db:appendix">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="appendixinfo/title">
-      <xsl:apply-templates select="appendixinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % article = -->
-<xsl:template mode="db.title.mode" match="article | db:article">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="articleinfo/title">
-      <xsl:apply-templates select="articleinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % bibliography = -->
-<xsl:template mode="db.title.mode" match="bibliography | db:bibliography">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
+  <xsl:param name="info" select="
+    $node/appendixinfo   | $node/articleinfo        | $node/bibliographyinfo | $node/blockinfo    |
+    $node/bookinfo       | $node/chapterinfo        | $node/glossaryinfo     | $node/indexinfo    |
+    $node/objectinfo     | $node/partinfo           | $node/prefaceinfo      | $node/refentryinfo |
+    $node/referenceinfo  | $node/refsect1info       | $node/refsect2info     | $node/refsect3info |
+    $node/refsectioninfo | $node/refsynopsisdivinfo | $node/sect1info        | $node/sect2info    |
+    $node/sect3infof     | $node/sect4info          | $node/sect5info        | $node/sectioninfo  |
+    $node/setindexinfo   | $node/db:info "/>
+  <xsl:choose>
+    <xsl:when test="$node/self::anchor or $node/self::db:anchor">
+      <xsl:variable name="target_chunk_id">
+        <xsl:call-template name="db.chunk.chunk-id">
+          <xsl:with-param name="node" select="."/>
+        </xsl:call-template>
+      </xsl:variable>
+      <xsl:variable name="target_chunk" select="key('idkey', $target_chunk_id)"/>
+      <xsl:call-template name="db.title">
+        <xsl:with-param name="node" select="$target_chunk"/>
+      </xsl:call-template>
     </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
+    <xsl:when test="$node/self::refentry/refmeta/refentrytitle or
+                    $node/self::db:refentry/db:refmeta/db:refentrytitle">
+      <xsl:apply-templates select="($node/refmeta/refentrytitle | $node/db:refmeta/db:refentrytitle)[1]/node()"/>
+      <xsl:if test="$node/refmeta/manvolnum | $node/db:refmeta/db:manvolnum">
+        <xsl:text>(</xsl:text>
+        <xsl:apply-templates select="($node/refmeta/manvolnum | $node/db:refmeta/db:manvolnum)[1]/node()"/>
+        <xsl:text>)</xsl:text>
+      </xsl:if>
     </xsl:when>
-    <xsl:when test="bibliographyinfo/title">
-      <xsl:apply-templates select="bibliographyinfo/title/node()"/>
+    <xsl:when test="$node/title or $node/db:title">
+      <xsl:apply-templates select="$node/title/node() | $node/db:title/node()"/>
     </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
+    <xsl:when test="$info/title or $info/db:title">
+      <xsl:apply-templates select="$info/title/node() | $info/db:title/node()"/>
     </xsl:when>
-    <xsl:otherwise>
+    <xsl:when test="$node/self::bibliography or $node/self::db:bibliography">
       <xsl:call-template name="l10n.gettext">
         <xsl:with-param name="msgid" select="'Bibliography'"/>
       </xsl:call-template>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % book = -->
-<xsl:template mode="db.title.mode" match="book | db:book">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="bookinfo/title">
-      <xsl:apply-templates select="bookinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % chapter = -->
-<xsl:template mode="db.title.mode" match="chapter | db:chapter">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="chapterinfo/title">
-      <xsl:apply-templates select="chapterinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % glossary = -->
-<xsl:template mode="db.title.mode" match="glossary | db:glossary">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
     </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="glossaryinfo/title">
-      <xsl:apply-templates select="glossaryinfo/title/node()"/>
+    <xsl:when test="$node/self::colophon or $node/self::db:colophon">
+      <xsl:call-template name="l10n.gettext">
+        <xsl:with-param name="msgid" select="'Colophon'"/>
+      </xsl:call-template>
     </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
+    <xsl:when test="$node/self::dedication or $node/self::db:dedication">
+      <xsl:call-template name="l10n.gettext">
+        <xsl:with-param name="msgid" select="'Dedication'"/>
+      </xsl:call-template>
     </xsl:when>
-    <xsl:otherwise>
+    <xsl:when test="$node/self::glossary or $node/self::db:glossary">
       <xsl:call-template name="l10n.gettext">
         <xsl:with-param name="msgid" select="'Glossary'"/>
       </xsl:call-template>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % glossentry = -->
-<xsl:template mode="db.title.mode" match="glossentry | db:glossentry">
-  <xsl:apply-templates select="glossterm/node() | db:glossterm/node()"/>
-</xsl:template>
-
-<!-- = db.title.mode % index = -->
-<xsl:template mode="db.title.mode" match="index | db:index">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
     </xsl:when>
-    <xsl:when test="indexinfo/title">
-      <xsl:apply-templates select="indexinfo/title/node()"/>
+    <xsl:when test="$node/self::glossentry or $node/self::db:glossentry">
+      <xsl:apply-templates select="$node/glossterm/node() | $node/db:glossterm/node()"/>
     </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-    <xsl:otherwise>
+    <xsl:when test="$node/self::index or $node/self::db:index or
+                    $node/self::setindex or $node/self::db:setindex">
       <xsl:call-template name="l10n.gettext">
         <xsl:with-param name="msgid" select="'Index'"/>
       </xsl:call-template>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % qandaentry = -->
-<xsl:template mode="db.title.mode" match="qandaentry | db:qandaentry">
-  <xsl:apply-templates mode="db.title.mode" select="question | db:question"/>
-</xsl:template>
-
-<!-- = db.title.mode % question = -->
-<xsl:template mode="db.title.mode" match="question">
-  <xsl:apply-templates select=".//para/node()"/>
-</xsl:template>
-<xsl:template mode="db.title.mode" match="db:question">
-  <xsl:apply-templates select=".//db:para/node()"/>
-</xsl:template>
-
-<!-- = db.title.mode % part = -->
-<xsl:template mode="db.title.mode" match="part | db:part">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="partinfo/title">
-      <xsl:apply-templates select="partinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % preface = -->
-<xsl:template mode="db.title.mode" match="preface | db:preface">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="prefaceinfo/title">
-      <xsl:apply-templates select="prefaceinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % refentry = -->
-<xsl:template mode="db.title.mode" match="refentry | db:refentry">
-  <xsl:choose>
-    <xsl:when test="refmeta/refentrytitle | db:refmeta/db:refentrytitle">
-      <xsl:apply-templates select="refmeta/refentrytitle/node() |
-                                   db:refmeta/db:refentrytitle/node()"/>
-      <xsl:if test="refmeta/manvolnum | db:refmeta/db:manvolnum">
-        <xsl:text>(</xsl:text>
-        <xsl:apply-templates select="refmeta/manvolnum[1]/node() |
-                                     db:refmeta/db:manvolnum[1]/node()"/>
-        <xsl:text>)</xsl:text>
-      </xsl:if>
-    </xsl:when>
-    <xsl:when test="refentryinfo/title">
-      <xsl:apply-templates select="refentryinfo/title/node()"/>
     </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:refentryinfo/db:title/node()"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select="refnamediv/refname[1]/node() |
-                                   db:refnamediv/db:refname[1]/node()"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % reference = -->
-<xsl:template mode="db.title.mode" match="reference | db:reference">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="referenceinfo/title">
-      <xsl:apply-templates select="referenceinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % refsect1 = -->
-<xsl:template mode="db.title.mode" match="refsect1 | db:refsect1">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect1info/title">
-      <xsl:apply-templates select="refsect1info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % refsect2 = -->
-<xsl:template mode="db.title.mode" match="refsect2 | db:refsect2">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect2info/title">
-      <xsl:apply-templates select="refsect2info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % refsect3 = -->
-<xsl:template mode="db.title.mode" match="refsect3 | db:refsect3">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect3info/title">
-      <xsl:apply-templates select="refsect3info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % refsection = -->
-<xsl:template mode="db.title.mode" match="refsection | db:refsection">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="refsectioninfo/title">
-      <xsl:apply-templates select="refsectioninfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % refsynopsisdiv = -->
-<xsl:template mode="db.title.mode" match="refsynopsisdiv | db:refsynopsisdiv">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
+    <xsl:when test="$node/self::qandaentry or $node/self::db:qandaentry">
+      <xsl:call-template name="db.title">
+        <xsl:with-param name="node" select="question | db:question"/>
+      </xsl:call-template>
     </xsl:when>
-    <xsl:when test="refsynopsisdivinfo/title">
-      <xsl:apply-templates select="refsynopsisdivinfo/title/node()"/>
+    <xsl:when test="$node/self::question or $node/self::db:question">
+      <xsl:apply-templates select="($node//para | $node//db:para)[1]/node()"/>
     </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
+    <xsl:when test="$node/self::refentry or $node/self::db:refentry">
+      <xsl:apply-templates select="($node/refnamediv/refname | $node/db:refnamediv/db:refname)[1]/node()"/>
     </xsl:when>
-    <xsl:otherwise>
+    <xsl:when test="$node/self::refsynopsisdiv or $node/self::db:refsynopsisdiv">
       <xsl:call-template name="l10n.gettext">
         <xsl:with-param name="msgid" select="'Synopsis'"/>
       </xsl:call-template>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % sect1 = -->
-<xsl:template mode="db.title.mode" match="sect1 | db:sect1">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect1info/title">
-      <xsl:apply-templates select="sect1info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % sect2 = -->
-<xsl:template mode="db.title.mode" match="sect2 | db:sect2">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect2info/title">
-      <xsl:apply-templates select="sect2info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % sect3 = -->
-<xsl:template mode="db.title.mode" match="sect3 | db:sect3">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect3info/title">
-      <xsl:apply-templates select="sect3info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.title.mode % sect4 = -->
-<xsl:template mode="db.title.mode" match="sect4 | db:sect4">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect4info/title">
-      <xsl:apply-templates select="sect4info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
     </xsl:when>
   </xsl:choose>
 </xsl:template>
 
-<!-- = db.title.mode % sect5 = -->
-<xsl:template mode="db.title.mode" match="sect5 | db:sect5">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect5info/title">
-      <xsl:apply-templates select="sect5info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
 
-<!-- = db.title.mode % section = -->
-<xsl:template mode="db.title.mode" match="section | db:section">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sectioninfo/title">
-      <xsl:apply-templates select="sectioninfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
+<!--**==========================================================================
+db.titleabbrev
+Output an abbreviated title for an element.
+:Revision:version="3.4" date="2011-11-10" status="final"
+$node: The element to output the abbreviated title of.
+$info: The info child element of ${node}.
+
+This template outputs the abbreviated title of the element ${node}, which is
+sometimes used for link text. If no explicit #{titleabbrev} element is found,
+this template just calls *{db.title}.
+-->
+<xsl:template name="db.titleabbrev">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="info" select="
+    $node/appendixinfo   | $node/articleinfo        | $node/bibliographyinfo | $node/blockinfo    |
+    $node/bookinfo       | $node/chapterinfo        | $node/glossaryinfo     | $node/indexinfo    |
+    $node/objectinfo     | $node/partinfo           | $node/prefaceinfo      | $node/refentryinfo |
+    $node/referenceinfo  | $node/refsect1info       | $node/refsect2info     | $node/refsect3info |
+    $node/refsectioninfo | $node/refsynopsisdivinfo | $node/sect1info        | $node/sect2info    |
+    $node/sect3infof     | $node/sect4info          | $node/sect5info        | $node/sectioninfo  |
+    $node/setindexinfo   | $node/db:info "/>
+  <xsl:variable name="titleabbrev" select="
+    $node/titleabbrev | $node/db:titleabbrev | $info/titleabbrev | $info/db:titleabbrev"/>
+  <xsl:choose>
+    <xsl:when test="$titleabbrev">
+      <xsl:apply-templates select="$titleabbrev[1]/node()"/>
     </xsl:when>
+    <xsl:otherwise>
+      <xsl:call-template name="db.title">
+        <xsl:with-param name="node" select="$node"/>
+        <xsl:with-param name="info" select="$info"/>
+      </xsl:call-template>
+    </xsl:otherwise>
   </xsl:choose>
 </xsl:template>
 
-<!-- = db.title.mode % set = -->
-<xsl:template mode="db.title.mode" match="set | db:set">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="setinfo/title">
-      <xsl:apply-templates select="setinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
 
-<!-- = db.title.mode % setindex = -->
-<xsl:template mode="db.title.mode" match="setindex | db:setindex">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="setindexinfo/title">
-      <xsl:apply-templates select="setindexinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
+<!--**==========================================================================
+db.subtitle
+Output a subtitle for an element.
+:Revision:version="3.4" date="2011-11-10" status="final"
+$node: The element to output the subtitle of.
+$info: The info child element of ${node}.
+
+This template outputs the subtitle of the element ${node}, which is sometimes
+used for link text. If no explicit #{titleabbrev} element is found, this template
+just calls *{db.title}. This template is not suitable for determining whehter a
+subtitle should be placed in a heading, as it will always return the title if
+a subtitle is not found.
+-->
+<xsl:template name="db.subtitle">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="info" select="
+    $node/appendixinfo   | $node/articleinfo        | $node/bibliographyinfo | $node/blockinfo    |
+    $node/bookinfo       | $node/chapterinfo        | $node/glossaryinfo     | $node/indexinfo    |
+    $node/objectinfo     | $node/partinfo           | $node/prefaceinfo      | $node/refentryinfo |
+    $node/referenceinfo  | $node/refsect1info       | $node/refsect2info     | $node/refsect3info |
+    $node/refsectioninfo | $node/refsynopsisdivinfo | $node/sect1info        | $node/sect2info    |
+    $node/sect3infof     | $node/sect4info          | $node/sect5info        | $node/sectioninfo  |
+    $node/setindexinfo   | $node/db:info "/>
+  <xsl:variable name="subtitle" select="
+    $node/subtitle | $node/db:subtitle | $info/subtitle | $info/db:subtitle"/>
+  <xsl:choose>
+    <xsl:when test="$subtitle">
+      <xsl:apply-templates select="$subtitle[1]/node()"/>
     </xsl:when>
     <xsl:otherwise>
-      <xsl:call-template name="l10n.gettext">
-        <xsl:with-param name="msgid" select="'Index'"/>
+      <xsl:call-template name="db.title">
+        <xsl:with-param name="node" select="$node"/>
+        <xsl:with-param name="info" select="$info"/>
       </xsl:call-template>
     </xsl:otherwise>
   </xsl:choose>
 </xsl:template>
 
-<!-- = db.title.mode % sidebar = -->
-<xsl:template mode="db.title.mode" match="sidebar | db:sidebar">
-  <xsl:choose>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sidebarinfo/title">
-      <xsl:apply-templates select="sidebarinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-
-<!--%%==========================================================================
-db.titleabbrev.mode
-FIXME
-
-REMARK: Describe this mode
--->
-<xsl:template mode="db.titleabbrev.mode" match="*">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="blockinfo/titleabbrev">
-      <xsl:apply-templates select="blockinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="objectinfo/titleabbrev">
-      <xsl:apply-templates select="objectinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="blockinfo/title">
-      <xsl:apply-templates select="blockinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="objectinfo/title">
-      <xsl:apply-templates select="objectinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % appendix = -->
-<xsl:template mode="db.titleabbrev.mode" match="appendix | db:appendix">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="appendixinfo/titleabbrev">
-      <xsl:apply-templates select="appendixinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="appendixinfo/title">
-      <xsl:apply-templates select="appendixinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % article = -->
-<xsl:template mode="db.titleabbrev.mode" match="article | db:article">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="articleinfo/titleabbrev">
-      <xsl:apply-templates select="articleinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="articleinfo/title">
-      <xsl:apply-templates select="articleinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % bibliography = -->
-<xsl:template mode="db.titleabbrev.mode" match="bibliography | db:bibliography">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="bibliographyinfo/titleabbrev">
-      <xsl:apply-templates select="bibliographyinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="bibliographyinfo/title">
-      <xsl:apply-templates select="bibliographyinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:call-template name="l10n.gettext">
-        <xsl:with-param name="msgid" select="'Bibliography'"/>
-      </xsl:call-template>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % book = -->
-<xsl:template mode="db.titleabbrev.mode" match="book | db:book">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="bookinfo/titleabbrev">
-      <xsl:apply-templates select="bookinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="bookinfo/title">
-      <xsl:apply-templates select="bookinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % chapter = -->
-<xsl:template mode="db.titleabbrev.mode" match="chapter | db:chapter">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="chapterinfo/titleabbrev">
-      <xsl:apply-templates select="chapterinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="chapterinfo/title">
-      <xsl:apply-templates select="chapterinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % glossary = -->
-<xsl:template mode="db.titleabbrev.mode" match="glossary | db:glossary">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="glossaryinfo/titleabbrev">
-      <xsl:apply-templates select="glossaryinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="glossaryinfo/title">
-      <xsl:apply-templates select="glossaryinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:call-template name="l10n.gettext">
-        <xsl:with-param name="msgid" select="'Glossary'"/>
-      </xsl:call-template>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % index = -->
-<xsl:template mode="db.titleabbrev.mode" match="index | db:index">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="indexinfo/titleabbrev">
-      <xsl:apply-templates select="indexinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="indexinfo/title">
-      <xsl:apply-templates select="indexinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:call-template name="l10n.gettext">
-        <xsl:with-param name="msgid" select="'Index'"/>
-      </xsl:call-template>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % part = -->
-<xsl:template mode="db.titleabbrev.mode" match="part | db:part">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="partinfo/titleabbrev">
-      <xsl:apply-templates select="partinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="partinfo/title">
-      <xsl:apply-templates select="partinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % preface = -->
-<xsl:template mode="db.titleabbrev.mode" match="preface | db:preface">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="prefaceinfo/titleabbrev">
-      <xsl:apply-templates select="prefaceinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="prefaceinfo/title">
-      <xsl:apply-templates select="prefaceinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % refentry = -->
-<xsl:template mode="db.titleabbrev.mode" match="refentry | db:refentry">
-  <xsl:choose>
-    <xsl:when test="refentryinfo/titleabbrev">
-      <xsl:apply-templates select="refentryinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:refentryinfo/db:titleabbrev">
-      <xsl:apply-templates select="db:refentryinfo/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="refmeta/refentrytitle | db:refmeta/db:refentrytitle">
-      <xsl:apply-templates select="refmeta/refentrytitle/node() |
-                                   db:refmeta/db:refentrytitle/node()"/>
-      <xsl:if test="refmeta/manvolnum | db:refmeta/db:manvolnum">
-        <!-- FIXME: I18N -->
-        <xsl:text>(</xsl:text>
-        <xsl:apply-templates select="refmeta/manvolnum[1]/node() |
-                                     db:refmeta/db:manvolnum[1]/node()"/>
-        <xsl:text>)</xsl:text>
-      </xsl:if>
-    </xsl:when>
-    <xsl:when test="refentryinfo/title">
-      <xsl:apply-templates select="refentryinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:refentryinfo/db:title">
-      <xsl:apply-templates select="db:refentryinfo/db:title/node()"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:apply-templates select="refnamediv/refname[1]/node() |
-                                   db:refnamediv/db:refname[1]/node()"/>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % reference = -->
-<xsl:template mode="db.titleabbrev.mode" match="reference | db:reference">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="referenceinfo/titleabbrev">
-      <xsl:apply-templates select="referenceinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="referenceinfo/title">
-      <xsl:apply-templates select="referenceinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % refsect1 = -->
-<xsl:template mode="db.titleabbrev.mode" match="refsect1 | db:refsect1">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect1info/titleabbrev">
-      <xsl:apply-templates select="refsect1info/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect1info/title">
-      <xsl:apply-templates select="refsect1info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % refsect2 = -->
-<xsl:template mode="db.titleabbrev.mode" match="refsect2 | db:refsect2">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect2info/titleabbrev">
-      <xsl:apply-templates select="refsect2info/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect2info/title">
-      <xsl:apply-templates select="refsect2info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % refsect3 = -->
-<xsl:template mode="db.titleabbrev.mode" match="refsect3 | db:refsect3">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect3info/titleabbrev">
-      <xsl:apply-templates select="refsect3info/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect3info/title">
-      <xsl:apply-templates select="refsect3info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % refsection = -->
-<xsl:template mode="db.titleabbrev.mode" match="refsection | db:refsection">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="refsectioninfo/titleabbrev">
-      <xsl:apply-templates select="refsectioninfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="refsectioninfo/title">
-      <xsl:apply-templates select="refsectioninfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % refsynopsisdiv = -->
-<xsl:template mode="db.titleabbrev.mode" match="refsynopsisdiv |
-                                                db:refsynopsisdiv">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="refsynopsisdivinfo/titleabbrev">
-      <xsl:apply-templates select="refsynopsisdivinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="refsynopsisdivinfo/title">
-      <xsl:apply-templates select="refsynopsisdivinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % sect1 = -->
-<xsl:template mode="db.titleabbrev.mode" match="sect1 | db:sect1">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="sect1info/titleabbrev">
-      <xsl:apply-templates select="sect1info/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect1info/title">
-      <xsl:apply-templates select="sect1info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % sect2 = -->
-<xsl:template mode="db.titleabbrev.mode" match="sect2 | db:sect2">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="sect2info/titleabbrev">
-      <xsl:apply-templates select="sect2info/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect2info/title">
-      <xsl:apply-templates select="sect2info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % sect3 = -->
-<xsl:template mode="db.titleabbrev.mode" match="sect3 | db:sect3">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="sect3info/titleabbrev">
-      <xsl:apply-templates select="sect3info/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect3info/title">
-      <xsl:apply-templates select="sect3info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % sect4 = -->
-<xsl:template mode="db.titleabbrev.mode" match="sect4 | db:sect4">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="sect4info/titleabbrev">
-      <xsl:apply-templates select="sect4info/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect4info/title">
-      <xsl:apply-templates select="sect4info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % sect5 = -->
-<xsl:template mode="db.titleabbrev.mode" match="sect5 | db:sect5">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="sect5info/titleabbrev">
-      <xsl:apply-templates select="sect5info/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sect5info/title">
-      <xsl:apply-templates select="sect5info/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % section = -->
-<xsl:template mode="db.titleabbrev.mode" match="section | db:section">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="sectioninfo/titleabbrev">
-      <xsl:apply-templates select="sectioninfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sectioninfo/title">
-      <xsl:apply-templates select="sectioninfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % set = -->
-<xsl:template mode="db.titleabbrev.mode" match="set | db:set">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="setinfo/titleabbrev">
-      <xsl:apply-templates select="setinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="setinfo/title">
-      <xsl:apply-templates select="setinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % setindex = -->
-<xsl:template mode="db.titleabbrev.mode" match="setindex | db:setindex">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="setindexinfo/titleabbrev">
-      <xsl:apply-templates select="setindexinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="setindexinfo/title">
-      <xsl:apply-templates select="setindexinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:call-template name="l10n.gettext">
-        <xsl:with-param name="msgid" select="'Index'"/>
-      </xsl:call-template>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.titleabbrev.mode % sidebar = -->
-<xsl:template mode="db.titleabbrev.mode" match="sidebar | db:sidebar">
-  <xsl:choose>
-    <xsl:when test="titleabbrev">
-      <xsl:apply-templates select="titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:titleabbrev">
-      <xsl:apply-templates select="db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="sidebarinfo/titleabbrev">
-      <xsl:apply-templates select="sidebarinfo/titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:titleabbrev">
-      <xsl:apply-templates select="db:info/db:titleabbrev/node()"/>
-    </xsl:when>
-    <xsl:when test="title">
-      <xsl:apply-templates select="title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:title">
-      <xsl:apply-templates select="db:title/node()"/>
-    </xsl:when>
-    <xsl:when test="sidebarinfo/title">
-      <xsl:apply-templates select="sidebarinfo/title/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:title">
-      <xsl:apply-templates select="db:info/db:title/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-
-<!--%%==========================================================================
-db.subtitle.mode
-FIXME
-
-REMARK: Describe this mode
--->
-<xsl:template mode="db.subtitle.mode" match="*">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="blockinfo/subtitle">
-      <xsl:apply-templates select="blockinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="objectinfo/subtitle">
-      <xsl:apply-templates select="objectinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % appendix = -->
-<xsl:template mode="db.subtitle.mode" match="appendix | db:appendix">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="appendixinfo/subtitle">
-      <xsl:apply-templates select="appendixinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % article = -->
-<xsl:template mode="db.subtitle.mode" match="article | db:article">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="articleinfo/subtitle">
-      <xsl:apply-templates select="articleinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % bibliography = -->
-<xsl:template mode="db.subtitle.mode" match="bibliography | db:bibliography">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="bibliographyinfo/subtitle">
-      <xsl:apply-templates select="bibliographyinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % book = -->
-<xsl:template mode="db.subtitle.mode" match="book | db:book">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="bookinfo/subtitle">
-      <xsl:apply-templates select="bookinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % chapter = -->
-<xsl:template mode="db.subtitle.mode" match="chapter | db:chapter">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="chapterinfo/subtitle">
-      <xsl:apply-templates select="chapterinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % glossary = -->
-<xsl:template mode="db.subtitle.mode" match="glossary | db:glossary">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="glossaryinfo/subtitle">
-      <xsl:apply-templates select="glossaryinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % index = -->
-<xsl:template mode="db.subtitle.mode" match="index | db:index">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="indexinfo/subtitle">
-      <xsl:apply-templates select="indexinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % part = -->
-<xsl:template mode="db.subtitle.mode" match="part | db:part">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="partinfo/subtitle">
-      <xsl:apply-templates select="partinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % preface = -->
-<xsl:template mode="db.subtitle.mode" match="preface | db:preface">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="prefaceinfo/subtitle">
-      <xsl:apply-templates select="prefaceinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % refentry = -->
-<xsl:template mode="db.subtitle.mode" match="refentry | db:refentry">
-  <xsl:if test="refentryinfo/subtitle">
-    <xsl:apply-templates select="refentryinfo/subtitle/node()"/>
-  </xsl:if>
-  <xsl:if test="db:info/db:subtitle">
-    <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-  </xsl:if>
-</xsl:template>
-
-<!-- = db.subtitle.mode % reference = -->
-<xsl:template mode="db.subtitle.mode" match="reference | db:reference">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="referenceinfo/subtitle">
-      <xsl:apply-templates select="referenceinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % refsect1 = -->
-<xsl:template mode="db.subtitle.mode" match="refsect1 | db:refsect1">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect1info/subtitle">
-      <xsl:apply-templates select="refsect1info/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % refsect2 = -->
-<xsl:template mode="db.subtitle.mode" match="refsect2 | db:refsect2">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect2info/subtitle">
-      <xsl:apply-templates select="refsect2info/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % refsect3 = -->
-<xsl:template mode="db.subtitle.mode" match="refsect3 | db:refsect3">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="refsect3info/subtitle">
-      <xsl:apply-templates select="refsect3info/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % refsection = -->
-<xsl:template mode="db.subtitle.mode" match="refsection | db:refsection">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="refsectioninfo/subtitle">
-      <xsl:apply-templates select="refsectioninfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % refsynopsisdiv = -->
-<xsl:template mode="db.subtitle.mode" match="refsynopsisdiv |
-                                             db:refsynopsisdiv">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="refsynopsisdivinfo/subtitle">
-      <xsl:apply-templates select="refsynopsisdivinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % sect1 = -->
-<xsl:template mode="db.subtitle.mode" match="sect1 | db:sect1">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="sect1info/subtitle">
-      <xsl:apply-templates select="sect1info/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % sect2 = -->
-<xsl:template mode="db.subtitle.mode" match="sect2 | db:sect2">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="sect2info/subtitle">
-      <xsl:apply-templates select="sect2info/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % sect3 = -->
-<xsl:template mode="db.subtitle.mode" match="sect3 | db:sect3">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="sect3info/subtitle">
-      <xsl:apply-templates select="sect3info/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % sect4 = -->
-<xsl:template mode="db.subtitle.mode" match="sect4 | db:sect4">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="sect4info/subtitle">
-      <xsl:apply-templates select="sect4info/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % sect5 = -->
-<xsl:template mode="db.subtitle.mode" match="sect5 | db:sect5">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="sect5info/subtitle">
-      <xsl:apply-templates select="sect5info/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % section = -->
-<xsl:template mode="db.subtitle.mode" match="section | db:section">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="sectioninfo/subtitle">
-      <xsl:apply-templates select="sectioninfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % set = -->
-<xsl:template mode="db.subtitle.mode" match="set | db:set">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="setinfo/subtitle">
-      <xsl:apply-templates select="setinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % setindex = -->
-<xsl:template mode="db.subtitle.mode" match="setindex | db:setindex">
-  <xsl:choose>
-    <xsl:when test="subtitle">
-      <xsl:apply-templates select="subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:subtitle">
-      <xsl:apply-templates select="db:subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="setindexinfo/subtitle">
-      <xsl:apply-templates select="setindexinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-<!-- = db.subtitle.mode % sidebar = -->
-<xsl:template mode="db.subtitle.mode" match="sidebar | db:sidebar">
-  <xsl:choose>
-    <xsl:when test="sidebarinfo/subtitle">
-      <xsl:apply-templates select="sidebarinfo/subtitle/node()"/>
-    </xsl:when>
-    <xsl:when test="db:info/db:subtitle">
-      <xsl:apply-templates select="db:info/db:subtitle/node()"/>
-    </xsl:when>
-  </xsl:choose>
-</xsl:template>
-
-
-<!-- == msg:* ============================================================== -->
-<!--#% l10n.format.mode -->
-
-<xsl:template mode="l10n.format.mode" match="msg:title">
-  <xsl:param name="node"/>
-  <xsl:call-template name="db.title">
-    <xsl:with-param name="node" select="$node"/>
-  </xsl:call-template>
-</xsl:template>
-
-<xsl:template mode="l10n.format.mode" match="msg:titleabbrev">
-  <xsl:param name="node"/>
-  <xsl:call-template name="db.titleabbrev">
-    <xsl:with-param name="node" select="$node"/>
-  </xsl:call-template>
-</xsl:template>
-
-<xsl:template mode="l10n.format.mode" match="msg:subtitle">
-  <xsl:param name="node"/>
-  <xsl:call-template name="db.subtitle">
-    <xsl:with-param name="node" select="$node"/>
-  </xsl:call-template>
-</xsl:template>
-
 </xsl:stylesheet>



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]