<xsl:template name="component.title">
<xsl:param name="node" select="."/>
+ <xsl:param name="pagewide" select="0"/>
<xsl:variable name="id">
<xsl:call-template name="object.id">
<xsl:with-param name="object" select="$node"/>
<fo:block keep-with-next.within-column="always"
hyphenate="false">
+ <xsl:if test="$pagewide != 0">
+ <xsl:attribute name="span">all</xsl:attribute>
+ </xsl:if>
<xsl:copy-of select="$title"/>
</fo:block>
</xsl:template>
<xsl:call-template name="object.id"/>
</xsl:variable>
<xsl:variable name="master-reference">
- <xsl:call-template name="select.pagemaster"/>
+ <xsl:call-template name="select.pagemaster">
+ <xsl:with-param name="column.count"
+ select="$column.count.of.index"/>
+ </xsl:call-template>
</xsl:variable>
<fo:page-sequence id="{$id}"
margin-bottom="{$page.margin.bottom}"
margin-left="{$page.margin.inner}"
margin-right="{$page.margin.outer}">
- <fo:region-body
- column-count="{$column.count}"
- margin-bottom="{$body.margin.bottom}"
- margin-top="{$body.margin.top}"/>
+ <fo:region-body margin-bottom="{$body.margin.bottom}"
+ margin-top="{$body.margin.top}">
+ <xsl:attribute name="column-count">
+ <!-- FIXME: how bad is this hack? If the overall column.count is 1,
+ use 2 here. Otherwise, use whatever is specified. This allows
+ some pages to be 2 column and others to be 1 column. Perhaps
+ this should always be 2 and if you want a 3 column page, you should
+ make a new pagemaster? Or maybe if you want to mix single and multi-
+ column pages, you should write another pagemaster for the ones
+ you want to be two column... -->
+ <xsl:choose>
+ <xsl:when test="$column.count < 2">2</xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$column.count"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ </fo:region-body>
+
<fo:region-before extent="{$region.before.extent}"
display-align="after"/>
<fo:region-after extent="{$region.after.extent}"
<xsl:template name="select.pagemaster">
<xsl:param name="element" select="local-name(.)"/>
+ <!-- column.count is a param so it can be selected dynamically; see index.xsl -->
+ <xsl:param name="column.count" select="$column.count"/>
+
<xsl:choose>
<xsl:when test="$double.sided != 0">
<xsl:choose>
<!ENTITY callouts.extension SYSTEM "../params/callouts.extension.xml">
<!ENTITY chapter.autolabel SYSTEM "../params/chapter.autolabel.xml">
<!ENTITY column.count SYSTEM "../params/column.count.xml">
+<!ENTITY column.count.of.index SYSTEM "../params/column.count.of.index.xml">
<!ENTITY component.title.properties SYSTEM "../params/component.title.properties.xml">
<!ENTITY default.table.width SYSTEM "../params/default.table.width.xml">
<!ENTITY default.units SYSTEM "../params/default.units.xml">
&hyphenate;
&line-height;
&column.count;
+&column.count.of.index;
®ion.after.extent;
®ion.before.extent;
&default.units;
<src:fragref linkend="callouts.extension.frag"/>
<src:fragref linkend="chapter.autolabel.frag"/>
<src:fragref linkend="column.count.frag"/>
+<src:fragref linkend="column.count.of.index.frag"/>
<src:fragref linkend="component.title.properties.frag"/>
<src:fragref linkend="default.table.width.frag"/>
<src:fragref linkend="default.units.frag"/>
force="1"
named-template="component.title"
param:node="ancestor-or-self::index[1]"
+ param:pagewide="1"
fo:margin-left="{$title.margin.left}"
fo:font-size="&hsize3;"
fo:font-family="{$title.font.family}"
--- /dev/null
+<refentry id="column.count.of.index">
+<refmeta>
+<refentrytitle>column.count.of.index</refentrytitle>
+<refmiscinfo role="type">integer</refmiscinfo>
+</refmeta>
+<refnamediv>
+<refname>column.count.of.index</refname>
+<refpurpose>Number of columns in the index</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='column.count.of.index.frag'>
+<xsl:param name="column.count.of.index" select="$column.count"/>
+</src:fragment>
+</refsynopsisdiv>
+
+<refsect1><title>Description</title>
+
+<para>This parameter specifies the number of columns on pages in the index.
+The default is the same as the <parameter>column.count</parameter>.</para>
+
+</refsect1>
+</refentry>