</xsl:choose>
</xsl:variable>
-<xsl:template name="set.toc">
+<xsl:template name="make.toc">
<xsl:param name="toc-context" select="."/>
+ <xsl:param name="nodes" select="/NOT-AN-ELEMENT"/>
<xsl:variable name="toc.title">
<p>
</xsl:if>
</xsl:when>
<xsl:otherwise>
- <xsl:variable name="nodes" select="book|setindex"/>
-
<xsl:if test="$nodes">
<div class="toc">
<xsl:copy-of select="$toc.title"/>
</xsl:choose>
</xsl:template>
-<xsl:template name="division.toc">
+<xsl:template name="make.lots">
+ <xsl:param name="toc.params" select="''"/>
+ <xsl:param name="toc"/>
+
+ <xsl:if test="contains($toc.params, 'toc')">
+ <xsl:copy-of select="$toc"/>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'figure')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'figure'"/>
+ <xsl:with-param name="nodes" select=".//figure"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'table')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'table'"/>
+ <xsl:with-param name="nodes" select=".//table"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'example')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'example'"/>
+ <xsl:with-param name="nodes" select=".//example"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'equation')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'equation'"/>
+ <xsl:with-param name="nodes" select=".//equation[title]"/>
+ </xsl:call-template>
+ </xsl:if>
+</xsl:template>
+
+<!-- ====================================================================== -->
+
+<xsl:template name="set.toc">
<xsl:param name="toc-context" select="."/>
- <xsl:variable name="toc.title">
- <p>
- <b>
- <xsl:call-template name="gentext">
- <xsl:with-param name="key">TableofContents</xsl:with-param>
- </xsl:call-template>
- </b>
- </p>
- </xsl:variable>
+ <xsl:call-template name="make.toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="book|setindex"/>
+ </xsl:call-template>
+</xsl:template>
- <xsl:choose>
- <xsl:when test="$manual.toc != ''">
- <xsl:variable name="id">
- <xsl:call-template name="object.id"/>
- </xsl:variable>
- <xsl:variable name="toc" select="document($manual.toc, .)"/>
- <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/>
- <xsl:if test="$tocentry and $tocentry/*">
- <div class="toc">
- <xsl:copy-of select="$toc.title"/>
- <xsl:element name="{$toc.list.type}">
- <xsl:call-template name="manual-toc">
- <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
- </xsl:call-template>
- </xsl:element>
- </div>
- </xsl:if>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="nodes" select="part|reference
+<xsl:template name="division.toc">
+ <xsl:param name="toc-context" select="."/>
+
+ <xsl:call-template name="make.toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="part|reference
|preface|chapter|appendix
|article
|bibliography|glossary|index
|refentry
|bridgehead"/>
- <xsl:if test="$nodes">
- <div class="toc">
- <xsl:copy-of select="$toc.title"/>
- <xsl:element name="{$toc.list.type}">
- <xsl:apply-templates select="$nodes" mode="toc">
- <xsl:with-param name="toc-context" select="$toc-context"/>
- </xsl:apply-templates>
- </xsl:element>
- </div>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
+ </xsl:call-template>
</xsl:template>
<xsl:template name="component.toc">
<xsl:param name="toc-context" select="."/>
- <xsl:variable name="toc.title">
- <p>
- <b>
- <xsl:call-template name="gentext">
- <xsl:with-param name="key">TableofContents</xsl:with-param>
- </xsl:call-template>
- </b>
- </p>
- </xsl:variable>
-
- <xsl:choose>
- <xsl:when test="$manual.toc != ''">
- <xsl:variable name="id">
- <xsl:call-template name="object.id"/>
- </xsl:variable>
- <xsl:variable name="toc" select="document($manual.toc, .)"/>
- <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/>
- <xsl:if test="$tocentry and $tocentry/*">
- <div class="toc">
- <xsl:copy-of select="$toc.title"/>
- <xsl:element name="{$toc.list.type}">
- <xsl:call-template name="manual-toc">
- <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
- </xsl:call-template>
- </xsl:element>
- </div>
- </xsl:if>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="nodes" select="section|sect1|refentry
+ <xsl:call-template name="make.toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes" select="section|sect1|refentry
|article|bibliography|glossary
|appendix|bridgehead[not(@renderas)]
|.//bridgehead[@renderas='sect1']"/>
- <xsl:if test="$nodes">
- <div class="toc">
- <xsl:copy-of select="$toc.title"/>
- <xsl:element name="{$toc.list.type}">
- <xsl:apply-templates select="$nodes" mode="toc">
- <xsl:with-param name="toc-context" select="$toc-context"/>
- </xsl:apply-templates>
- </xsl:element>
- </div>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
+ </xsl:call-template>
</xsl:template>
<xsl:template name="section.toc">
<xsl:param name="toc-context" select="."/>
- <xsl:variable name="toc.title">
- <p>
- <b>
- <xsl:call-template name="gentext">
- <xsl:with-param name="key">TableofContents</xsl:with-param>
- </xsl:call-template>
- </b>
- </p>
- </xsl:variable>
-
- <xsl:choose>
- <xsl:when test="$manual.toc != ''">
- <xsl:variable name="id">
- <xsl:call-template name="object.id"/>
- </xsl:variable>
- <xsl:variable name="toc" select="document($manual.toc, .)"/>
- <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/>
- <xsl:if test="$tocentry and $tocentry/*">
- <div class="toc">
- <xsl:copy-of select="$toc.title"/>
- <xsl:element name="{$toc.list.type}">
- <xsl:call-template name="manual-toc">
- <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
- </xsl:call-template>
- </xsl:element>
- </div>
- </xsl:if>
- </xsl:when>
- <xsl:otherwise>
- <xsl:variable name="nodes"
+ <xsl:call-template name="make.toc">
+ <xsl:with-param name="toc-context" select="$toc-context"/>
+ <xsl:with-param name="nodes"
select="section|sect1|sect2|sect3|sect4|sect5|refentry
|bridgehead"/>
- <xsl:if test="$nodes">
- <div class="toc">
- <xsl:copy-of select="$toc.title"/>
- <xsl:element name="{$toc.list.type}">
- <xsl:apply-templates select="$nodes" mode="toc">
- <xsl:with-param name="toc-context" select="$toc-context"/>
- </xsl:apply-templates>
- </xsl:element>
- </div>
- </xsl:if>
- </xsl:otherwise>
- </xsl:choose>
+ </xsl:call-template>
</xsl:template>
<!-- ==================================================================== -->
</xsl:if>
<xsl:value-of select="$fn"/>
+ <xsl:value-of select="$html.ext"/>
</xsl:template>
<xsl:template match="*" mode="recursive-chunk-filename">
<!-- if this is the root element, use the root.filename -->
<xsl:when test="not(parent::*) and $root.filename != ''">
<xsl:value-of select="$root.filename"/>
- <xsl:value-of select="$html.ext"/>
</xsl:when>
<!-- if there's no dbhtml filename, and if we're to use IDs as -->
<!-- filenames, then use the ID to generate the filename. -->
<xsl:when test="@id and $use.id.as.filename != 0">
<xsl:value-of select="@id"/>
- <xsl:value-of select="$html.ext"/>
</xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
<xsl:when test="name(.)='set'">
<xsl:value-of select="$root.filename"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='book'">
<xsl:text>bk</xsl:text>
<xsl:number level="any" format="01"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='article'">
<xsl:text>ar</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='preface'">
<xsl:text>pr</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='chapter'">
<xsl:text>ch</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='appendix'">
<xsl:text>ap</xsl:text>
<xsl:number level="any" format="a" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='part'">
<xsl:text>pt</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='reference'">
<xsl:text>rn</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='refentry'">
<xsl:text>re</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='colophon'">
<xsl:text>co</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="local-name(.) = 'sect1'
</xsl:apply-templates>
<xsl:text>s</xsl:text>
<xsl:number format="01"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='sect1' or name(.)='section'">
</xsl:apply-templates>
<xsl:text>s</xsl:text>
<xsl:number level="any" format="01" from="preface|chapter|appendix"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='bibliography'">
<xsl:text>bi</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='glossary'">
<xsl:text>go</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='index'">
<xsl:text>ix</xsl:text>
<xsl:number level="any" format="01" from="book"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:when test="name(.)='setindex'">
<xsl:text>si</xsl:text>
<xsl:number level="any" format="01" from="set"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:when>
<xsl:otherwise>
<xsl:text>chunk-filename-error-</xsl:text>
<xsl:value-of select="name(.)"/>
<xsl:number level="any" format="01" from="set"/>
- <xsl:if test="not($recursive)">
- <xsl:value-of select="$html.ext"/>
- </xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="header.navigation">
<xsl:param name="prev" select="/foo"/>
<xsl:param name="next" select="/foo"/>
+ <xsl:param name="nav.context"/>
+
<xsl:variable name="home" select="/*[1]"/>
<xsl:variable name="up" select="parent::*"/>
+ <xsl:variable name="row1" select="$navig.showtitles != 0"/>
+ <xsl:variable name="row2" select="count($prev) > 0
+ or (count($up) > 0
+ and $up != $home
+ and $navig.showtitles != 0)
+ or count($next) > 0"/>
+
<xsl:if test="$suppress.navigation = '0' and $suppress.header.navigation = '0'">
<div class="navheader">
- <table width="100%" summary="Navigation header">
- <xsl:if test="$navig.showtitles != 0">
- <tr>
- <th colspan="3" align="center">
- <xsl:apply-templates select="." mode="object.title.markup"/>
- </th>
- </tr>
- </xsl:if>
- <tr>
- <td width="20%" align="left">
- <xsl:if test="count($prev)>0">
- <a accesskey="p">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$prev"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'prev'"/>
- </xsl:call-template>
- </a>
- </xsl:if>
- <xsl:text> </xsl:text>
- </td>
- <th width="60%" align="center">
- <xsl:choose>
- <xsl:when test="count($up) > 0 and $up != $home and $navig.showtitles != 0">
- <xsl:apply-templates select="$up" mode="object.title.markup"/>
- </xsl:when>
- <xsl:otherwise> </xsl:otherwise>
- </xsl:choose>
- </th>
- <td width="20%" align="right">
- <xsl:text> </xsl:text>
- <xsl:if test="count($next)>0">
- <a accesskey="n">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$next"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'next'"/>
- </xsl:call-template>
- </a>
- </xsl:if>
- </td>
- </tr>
- </table>
+ <xsl:if test="$row1 or $row2">
+ <table width="100%" summary="Navigation header">
+ <xsl:if test="$row1">
+ <tr>
+ <th colspan="3" align="center">
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </th>
+ </tr>
+ </xsl:if>
+
+ <xsl:if test="$row2">
+ <tr>
+ <td width="20%" align="left">
+ <xsl:if test="count($prev)>0">
+ <a accesskey="p">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'prev'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ </td>
+ <th width="60%" align="center">
+ <xsl:choose>
+ <xsl:when test="count($up) > 0
+ and $up != $home
+ and $navig.showtitles != 0">
+ <xsl:apply-templates select="$up" mode="object.title.markup"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </th>
+ <td width="20%" align="right">
+ <xsl:text> </xsl:text>
+ <xsl:if test="count($next)>0">
+ <a accesskey="n">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'next'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ </xsl:if>
<xsl:if test="$header.rule != 0">
<hr/>
</xsl:if>
<xsl:template name="footer.navigation">
<xsl:param name="prev" select="/foo"/>
<xsl:param name="next" select="/foo"/>
+ <xsl:param name="nav.context"/>
+
<xsl:variable name="home" select="/*[1]"/>
<xsl:variable name="up" select="parent::*"/>
+ <xsl:variable name="row1" select="count($prev) > 0
+ or count($up) > 0
+ or count($next) > 0"/>
+
+ <xsl:variable name="row2" select="($prev and $navig.showtitles != 0)
+ or ($home != . or $nav.context = 'toc')
+ or ($chunk.tocs.and.lots != 0
+ and $nav.context != 'toc')
+ or ($next and $navig.showtitles != 0)"/>
+
<xsl:if test="$suppress.navigation = '0' and $suppress.footer.navigation = '0'">
<div class="navfooter">
<xsl:if test="$footer.rule != 0">
<hr/>
</xsl:if>
- <table width="100%" summary="Navigation footer">
- <tr>
- <td width="40%" align="left">
- <xsl:if test="count($prev)>0">
- <a accesskey="p">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$prev"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'prev'"/>
- </xsl:call-template>
- </a>
- </xsl:if>
- <xsl:text> </xsl:text>
- </td>
- <td width="20%" align="center">
- <xsl:choose>
- <xsl:when test="count($up)>0">
- <a accesskey="u">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$up"/>
+
+ <xsl:if test="$row1 or $row2">
+ <table width="100%" summary="Navigation footer">
+ <xsl:if test="$row1">
+ <tr>
+ <td width="40%" align="left">
+ <xsl:if test="count($prev)>0">
+ <a accesskey="p">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$prev"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'prev'"/>
</xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'up'"/>
- </xsl:call-template>
- </a>
- </xsl:when>
- <xsl:otherwise> </xsl:otherwise>
- </xsl:choose>
- </td>
- <td width="40%" align="right">
- <xsl:text> </xsl:text>
- <xsl:if test="count($next)>0">
- <a accesskey="n">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$next"/>
- </xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'next'"/>
- </xsl:call-template>
- </a>
- </xsl:if>
- </td>
- </tr>
-
- <tr>
- <td width="40%" align="left" valign="top">
- <xsl:if test="$navig.showtitles != 0">
- <xsl:apply-templates select="$prev" mode="object.title.markup"/>
- </xsl:if>
- <xsl:text> </xsl:text>
- </td>
- <td width="20%" align="center">
- <xsl:choose>
- <xsl:when test="$home != .">
- <a accesskey="h">
- <xsl:attribute name="href">
- <xsl:call-template name="href.target">
- <xsl:with-param name="object" select="$home"/>
+ </a>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ </td>
+ <td width="20%" align="center">
+ <xsl:choose>
+ <xsl:when test="count($up)>0">
+ <a accesskey="u">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$up"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'up'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td width="40%" align="right">
+ <xsl:text> </xsl:text>
+ <xsl:if test="count($next)>0">
+ <a accesskey="n">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$next"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'next'"/>
</xsl:call-template>
- </xsl:attribute>
- <xsl:call-template name="navig.content">
- <xsl:with-param name="direction" select="'home'"/>
- </xsl:call-template>
- </a>
- </xsl:when>
- <xsl:otherwise> </xsl:otherwise>
- </xsl:choose>
- </td>
- <td width="40%" align="right" valign="top">
- <xsl:text> </xsl:text>
- <xsl:if test="$navig.showtitles != 0">
- <xsl:apply-templates select="$next" mode="object.title.markup"/>
- </xsl:if>
- </td>
- </tr>
- </table>
+ </a>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+
+ <xsl:if test="$row2">
+ <tr>
+ <td width="40%" align="left" valign="top">
+ <xsl:if test="$navig.showtitles != 0">
+ <xsl:apply-templates select="$prev" mode="object.title.markup"/>
+ </xsl:if>
+ <xsl:text> </xsl:text>
+ </td>
+ <td width="20%" align="center">
+ <xsl:choose>
+ <xsl:when test="$home != . or $nav.context = 'toc'">
+ <a accesskey="h">
+ <xsl:attribute name="href">
+ <xsl:call-template name="href.target">
+ <xsl:with-param name="object" select="$home"/>
+ </xsl:call-template>
+ </xsl:attribute>
+ <xsl:call-template name="navig.content">
+ <xsl:with-param name="direction" select="'home'"/>
+ </xsl:call-template>
+ </a>
+ <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+ <xsl:text> | </xsl:text>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
+ <a accesskey="t">
+ <xsl:attribute name="href">
+ <xsl:apply-templates select="/*[1]"
+ mode="recursive-chunk-filename"/>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:attribute>
+ <xsl:call-template name="gentext">
+ <xsl:with-param name="key" select="'nav-toc'"/>
+ </xsl:call-template>
+ </a>
+ </xsl:if>
+ </td>
+ <td width="40%" align="right" valign="top">
+ <xsl:text> </xsl:text>
+ <xsl:if test="$navig.showtitles != 0">
+ <xsl:apply-templates select="$next" mode="object.title.markup"/>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ </xsl:if>
</div>
</xsl:if>
</xsl:template>
<xsl:template name="chunk-element-content">
<xsl:param name="prev"/>
<xsl:param name="next"/>
+ <xsl:param name="nav.context"/>
<xsl:param name="content"/>
<html>
<xsl:call-template name="header.navigation">
<xsl:with-param name="prev" select="$prev"/>
<xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
</xsl:call-template>
<xsl:call-template name="user.header.content"/>
<xsl:call-template name="footer.navigation">
<xsl:with-param name="prev" select="$prev"/>
<xsl:with-param name="next" select="$next"/>
+ <xsl:with-param name="nav.context" select="$nav.context"/>
</xsl:call-template>
<xsl:call-template name="user.footer.navigation"/>
<xsl:param name="onechunk" select="0"/>
<xsl:param name="refentry.separator" select="0"/>
-<!-- this doesn't work and I have misgivings about ever getting it to work -->
-<xsl:param name="chunk.tocs.and.lots" select="0"/>
+<!-- this doesn't work yet... -->
+<xsl:param name="chunk.tocs.and.lots" select="1"/>
<!-- ==================================================================== -->
<!-- ==================================================================== -->
-<xsl:template name="division.toc">
- <xsl:param name="toc-context" select="."/>
+<xsl:template name="make.lots">
+ <xsl:param name="toc.params" select="''"/>
+ <xsl:param name="toc"/>
- <xsl:variable name="toc.title">
- <p>
- <b>
- <xsl:call-template name="gentext">
- <xsl:with-param name="key">TableofContents</xsl:with-param>
- </xsl:call-template>
- </b>
- </p>
+ <xsl:variable name="lots">
+ <xsl:if test="contains($toc.params, 'toc')">
+ <xsl:copy-of select="$toc"/>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'figure')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'figure'"/>
+ <xsl:with-param name="nodes" select=".//figure"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'table')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'table'"/>
+ <xsl:with-param name="nodes" select=".//table"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'example')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'example'"/>
+ <xsl:with-param name="nodes" select=".//example"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="contains($toc.params, 'equation')">
+ <xsl:call-template name="list.of.titles">
+ <xsl:with-param name="titles" select="'equation'"/>
+ <xsl:with-param name="nodes" select=".//equation[title]"/>
+ </xsl:call-template>
+ </xsl:if>
</xsl:variable>
- <xsl:variable name="toc">
+ <xsl:if test="string($lots) != ''">
<xsl:choose>
- <xsl:when test="$manual.toc != ''">
- <xsl:variable name="id">
- <xsl:call-template name="object.id"/>
- </xsl:variable>
- <xsl:variable name="toc" select="document($manual.toc, .)"/>
- <xsl:variable name="tocentry" select="$toc//tocentry[@linkend=$id]"/>
- <xsl:if test="$tocentry and $tocentry/*">
- <div class="toc">
- <xsl:copy-of select="$toc.title"/>
- <xsl:element name="{$toc.list.type}">
- <xsl:call-template name="manual-toc">
- <xsl:with-param name="tocentry" select="$tocentry/*[1]"/>
- </xsl:call-template>
- </xsl:element>
- </div>
- </xsl:if>
+ <xsl:when test="$chunk.tocs.and.lots != 0 and not(parent::*)">
+ <xsl:call-template name="write.chunk">
+ <xsl:with-param name="filename">
+ <xsl:apply-templates select="." mode="recursive-chunk-filename"/>
+ <xsl:text>-toc</xsl:text>
+ <xsl:value-of select="$html.ext"/>
+ </xsl:with-param>
+ <xsl:with-param name="content">
+ <xsl:call-template name="chunk-element-content">
+ <xsl:with-param name="prev" select="/foo"/>
+ <xsl:with-param name="next" select="/foo"/>
+ <xsl:with-param name="nav.context" select="'toc'"/>
+ <xsl:with-param name="content">
+ <h1>
+ <xsl:apply-templates select="." mode="object.title.markup"/>
+ </h1>
+ <xsl:copy-of select="$lots"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:with-param>
+ <xsl:with-param name="quiet" select="$chunk.quietly"/>
+ </xsl:call-template>
</xsl:when>
<xsl:otherwise>
- <xsl:variable name="nodes" select="part|reference
- |preface|chapter|appendix
- |article
- |bibliography|glossary|index
- |refentry
- |bridgehead"/>
- <xsl:if test="$nodes">
- <div class="toc">
- <xsl:copy-of select="$toc.title"/>
- <xsl:element name="{$toc.list.type}">
- <xsl:apply-templates select="$nodes" mode="toc">
- <xsl:with-param name="toc-context" select="$toc-context"/>
- </xsl:apply-templates>
- </xsl:element>
- </div>
- </xsl:if>
+ <xsl:copy-of select="$lots"/>
</xsl:otherwise>
</xsl:choose>
- </xsl:variable>
-
- <xsl:choose>
- <xsl:when test="$chunk.tocs.and.lots != 0">
- <xsl:call-template name="write.chunk">
- <xsl:with-param name="filename">
- <xsl:apply-templates select="." mode="chunk-filename"/>
- <xsl:text>-toc.html</xsl:text>
- </xsl:with-param>
- <xsl:with-param name="content">
- <xsl:call-template name="chunk-element-content">
- <xsl:with-param name="prev" select="/foo"/>
- <xsl:with-param name="next" select="/foo"/>
- <xsl:with-param name="content">
- <xsl:copy-of select="$toc"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:with-param>
- <xsl:with-param name="quiet" select="$chunk.quietly"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="$toc"/>
- </xsl:otherwise>
- </xsl:choose>
+ </xsl:if>
</xsl:template>
<!-- ==================================================================== -->