blob: 0062159141fe507d30dded81a511dc8088c8292a [file] [log] [blame]
<?xml version="1.0" encoding="ASCII"?>
<book version="5.0">
<info>
<title>FO Parameter Reference</title>
<releaseinfo role="meta">
$Id$
</releaseinfo>
<author>
<personname>
<surname>Walsh</surname>
<firstname>Norman</firstname>
</personname>
</author>
<copyright>
<year>1999</year>
<year>2000</year>
<year>2001</year>
<year>2002</year>
<year>2003</year>
<year>2004</year>
<year>2005</year>
<year>2006</year>
<year>2007</year>
<year>2008</year>
<year>2009</year>
<year>2010</year>
<year>2011</year>
<holder>Norman Walsh</holder>
</copyright>
<abstract>
<para>This is reference documentation for all user-configurable
parameters in the DocBook XSL FO stylesheets (for generating
XSL-FO output destined for final print/PDF output).</para>
</abstract>
</info>
<reference xml:id="admons"><title>Admonitions</title>
<refentry version="5.0" xml:id="admon.graphics">
<refmeta>
<refentrytitle>admon.graphics</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>admon.graphics</refname>
<refpurpose>Use graphics in admonitions?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="admon.graphics.frag">
&lt;xsl:param name="admon.graphics" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If true (non-zero), admonitions are presented in an alternate style that uses
a graphic. Default graphics are provided in the distribution.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="admon.graphics.extension">
<refmeta>
<refentrytitle>admon.graphics.extension</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>admon.graphics.extension</refname>
<refpurpose>Filename extension for admonition graphics</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="admon.graphics.extension.frag">
&lt;xsl:param name="admon.graphics.extension"&gt;.png&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Sets the filename extension to use on admonition graphics.</para>
<itemizedlist>
<para>The DocBook XSL distribution provides admonition graphics in the following formats:</para>
<listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
<listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
<listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
<listitem><para>TIFF (extension: <filename class="extension">.tif</filename>)</para></listitem>
</itemizedlist>
</refsection>
</refentry>
<refentry version="5.0" xml:id="admon.graphics.path">
<refmeta>
<refentrytitle>admon.graphics.path</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>admon.graphics.path</refname>
<refpurpose>Path to admonition graphics</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="admon.graphics.path.frag">&lt;xsl:param name="admon.graphics.path"&gt;images/&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Sets the path to the directory containing the admonition graphics
(caution.png, important.png etc). This location is normally relative
to the output html directory. See <parameter>base.dir</parameter></para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="admon.textlabel">
<refmeta>
<refentrytitle>admon.textlabel</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>admon.textlabel</refname>
<refpurpose>Use text label in admonitions?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="admon.textlabel.frag">
&lt;xsl:param name="admon.textlabel" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If true (non-zero), admonitions are presented with a generated
text label such as Note or Warning in the appropriate language.
If zero, such labels are turned off, but any title child
of the admonition element are still output.
The default value is 1.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="admonition.title.properties">
<refmeta>
<refentrytitle>admonition.title.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>admonition.title.properties</refname>
<refpurpose>To set the style for admonitions titles.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="admonition.title.properties.frag">
&lt;xsl:attribute-set name="admonition.title.properties"&gt;
&lt;xsl:attribute name="font-size"&gt;14pt&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>How do you want admonitions titles styled? </para>
<para>Set the font-size, weight etc to the style required.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="admonition.properties">
<refmeta>
<refentrytitle>admonition.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>admonition.properties</refname>
<refpurpose>To set the style for admonitions.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="admonition.properties.frag">&lt;xsl:attribute-set name="admonition.properties"&gt;&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>How do you want admonitions styled? </para>
<para>Set the font-size, weight, etc. to the style required</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="graphical.admonition.properties">
<refmeta>
<refentrytitle>graphical.admonition.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>graphical.admonition.properties</refname>
<refpurpose>To add properties to the outer block of a graphical admonition.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="graphical.admonition.properties.frag">&lt;xsl:attribute-set name="graphical.admonition.properties"&gt;
&lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>These properties are added to the outer block containing the
entire graphical admonition, including its title.
It is used when the parameter
<parameter>admon.graphics</parameter> is set to nonzero.
Use this attribute-set to set the space above and below,
and any indent for the whole admonition.</para>
<para>In addition to these properties, a graphical admonition
also applies the <parameter>admonition.title.properties</parameter>
attribute-set to the title, and applies the
<parameter>admonition.properties</parameter> attribute-set
to the rest of the content.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="nongraphical.admonition.properties">
<refmeta>
<refentrytitle>nongraphical.admonition.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>nongraphical.admonition.properties</refname>
<refpurpose>To add properties to the outer block of a nongraphical admonition.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="nongraphical.admonition.properties.frag">&lt;xsl:attribute-set name="nongraphical.admonition.properties"&gt;
&lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0.25in&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="margin-{$direction.align.end}"&gt;0.25in&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>These properties are added to the outer block containing the
entire nongraphical admonition, including its title.
It is used when the parameter
<parameter>admon.graphics</parameter> is set to zero.
Use this attribute-set to set the space above and below,
and any indent for the whole admonition.</para>
<para>In addition to these properties, a nongraphical admonition
also applies the <parameter>admonition.title.properties</parameter>
attribute-set to the title, and the
<parameter>admonition.properties</parameter> attribute-set
to the rest of the content.</para>
</refsection>
</refentry>
</reference>
<reference xml:id="callouts"><title>Callouts</title>
<refentry version="5.0" xml:id="calloutlist.properties">
<refmeta>
<refentrytitle>calloutlist.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>calloutlist.properties</refname>
<refpurpose>Properties that apply to each list-block generated by calloutlist.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="calloutlist.properties.frag">&lt;xsl:attribute-set name="calloutlist.properties"&gt;
&lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="provisional-distance-between-starts"&gt;2.2em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="provisional-label-separation"&gt;0.2em&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Properties that apply to the fo:list-block generated by calloutlist.
Typically used to adjust spacing or margins of the entire list.
Change the <literal>provisional-distance-between-starts</literal> attribute to
change the indent of the list paragraphs relative to the
callout numbers.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.properties">
<refmeta>
<refentrytitle>callout.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.properties</refname>
<refpurpose>Properties that apply to the list-item generated by each callout within a calloutlist.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.properties.frag">&lt;xsl:attribute-set name="callout.properties"&gt;
&lt;/xsl:attribute-set&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Properties that apply to the fo:list-item generated by each callout within a calloutlist. Typically used to add spacing properties.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.defaultcolumn">
<refmeta>
<refentrytitle>callout.defaultcolumn</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.defaultcolumn</refname>
<refpurpose>Indicates what column callouts appear in by default</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.defaultcolumn.frag">
&lt;xsl:param name="callout.defaultcolumn"&gt;60&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If a callout does not identify a column (for example, if it uses
the <literal>linerange</literal> <tag class="attribute">unit</tag>),
it will appear in the default column.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.graphics">
<refmeta>
<refentrytitle>callout.graphics</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.graphics</refname>
<refpurpose>Use graphics for callouts?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.graphics.frag">
&lt;xsl:param name="callout.graphics" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, callouts are presented with graphics (e.g., reverse-video
circled numbers instead of "(1)", "(2)", etc.).
Default graphics are provided in the distribution.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.graphics.extension">
<refmeta>
<refentrytitle>callout.graphics.extension</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.graphics.extension</refname>
<refpurpose>Filename extension for callout graphics</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.graphics.extension.frag">
&lt;xsl:param name="callout.graphics.extension"&gt;.svg&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Sets the filename extension to use on callout graphics. </para>
<itemizedlist>
<para>The Docbook XSL distribution provides callout graphics in the following formats:</para>
<listitem><para>SVG (extension: <filename class="extension">.svg</filename>)</para></listitem>
<listitem><para>PNG (extension: <filename class="extension">.png</filename>)</para></listitem>
<listitem><para>GIF (extension: <filename class="extension">.gif</filename>)</para></listitem>
</itemizedlist>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.graphics.number.limit">
<refmeta>
<refentrytitle>callout.graphics.number.limit</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.graphics.number.limit</refname>
<refpurpose>Number of the largest callout graphic</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.graphics.number.limit.frag">
&lt;xsl:param name="callout.graphics.number.limit"&gt;30&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If <parameter>callout.graphics</parameter> is non-zero, graphics
are used to represent callout numbers instead of plain text. The value
of <parameter>callout.graphics.number.limit</parameter> is the largest
number for which a graphic exists. If the callout number exceeds this
limit, the default presentation "(plain text instead of a graphic)"
will be used.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.graphics.path">
<refmeta>
<refentrytitle>callout.graphics.path</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.graphics.path</refname>
<refpurpose>Path to callout graphics</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.graphics.path.frag">
&lt;xsl:param name="callout.graphics.path"&gt;images/callouts/&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Sets the path to the directory holding the callout graphics. his
location is normally relative to the output html directory. see
base.dir. Always terminate the directory with / since the graphic file
is appended to this string, hence needs the separator.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.icon.size">
<refmeta>
<refentrytitle>callout.icon.size</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.icon.size</refname>
<refpurpose>Specifies the size of callout marker icons</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.icon.size.frag">
&lt;xsl:param name="callout.icon.size"&gt;7pt&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Specifies the size of the callout marker icons.
The default size is 7 points.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.unicode">
<refmeta>
<refentrytitle>callout.unicode</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.unicode</refname>
<refpurpose>Use Unicode characters rather than images for callouts.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.unicode.frag">&lt;xsl:param name="callout.unicode" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>The stylesheets can use either an image of the numbers one to ten, or the single Unicode character which represents the numeral, in white on a black background. Use this to select the Unicode character option.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.unicode.font">
<refmeta>
<refentrytitle>callout.unicode.font</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.unicode.font</refname>
<refpurpose>Specify a font for Unicode glyphs</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.unicode.font.frag">
&lt;xsl:param name="callout.unicode.font"&gt;ZapfDingbats&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>The name of the font to specify around Unicode callout glyphs.
If set to the empty string, no font change will occur.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.unicode.number.limit">
<refmeta>
<refentrytitle>callout.unicode.number.limit</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.unicode.number.limit</refname>
<refpurpose>Number of the largest unicode callout character</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.unicode.number.limit.frag">
&lt;xsl:param name="callout.unicode.number.limit"&gt;10&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If <parameter>callout.unicode</parameter>
is non-zero, unicode characters are used to represent
callout numbers. The value of
<parameter>callout.unicode.number.limit</parameter>
is
the largest number for which a unicode character exists. If the callout number
exceeds this limit, the default presentation "(nnn)" will always
be used.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callout.unicode.start.character">
<refmeta>
<refentrytitle>callout.unicode.start.character</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callout.unicode.start.character</refname>
<refpurpose>First Unicode character to use, decimal value.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callout.unicode.start.character.frag">
&lt;xsl:param name="callout.unicode.start.character"&gt;10102&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If <parameter>callout.graphics</parameter> is zero and <parameter>callout.unicode</parameter>
is non-zero, unicode characters are used to represent
callout numbers. The value of
<parameter>callout.unicode.start.character</parameter>
is the decimal unicode value used for callout number one. Currently,
only values 9312 and 10102 are supported in the stylesheets for this parameter.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="callouts.extension">
<refmeta>
<refentrytitle>callouts.extension</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>callouts.extension</refname>
<refpurpose>Enable the callout extension</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="callouts.extension.frag">
&lt;xsl:param name="callouts.extension" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>The callouts extension processes <tag>areaset</tag>
elements in <tag>programlistingco</tag> and other text-based
callout elements.
</para>
</refsection>
</refentry>
</reference>
<reference xml:id="toc_index"><title>ToC/LoT/Index Generation</title>
<refentry version="5.0" xml:id="autotoc.label.separator">
<refmeta>
<refentrytitle>autotoc.label.separator</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>autotoc.label.separator</refname>
<refpurpose>Separator between labels and titles in the ToC</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="autotoc.label.separator.frag">
&lt;xsl:param name="autotoc.label.separator"&gt;. &lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>String used to separate labels and titles in a table of contents.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="process.empty.source.toc">
<refmeta>
<refentrytitle>process.empty.source.toc</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>process.empty.source.toc</refname>
<refpurpose>Generate automated TOC if <tag>toc</tag> element occurs in a source document?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="process.empty.source.toc.frag">&lt;xsl:param name="process.empty.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Specifies that if an empty <tag>toc</tag> element is found in a
source document, an automated TOC is generated at this point in the
document.
<note>
<para>Depending on what the value of the
<parameter>generate.toc</parameter> parameter is, setting this
parameter to <literal>1</literal> could result in generation of
duplicate automated TOCs. So the
<parameter>process.empty.source.toc</parameter> is primarily useful
as an "override": by placing an empty <tag>toc</tag> in your
document and setting this parameter to <literal>1</literal>, you can
force a TOC to be generated even if <tag>generate.toc</tag>
says not to.</para>
</note>
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="process.source.toc">
<refmeta>
<refentrytitle>process.source.toc</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>process.source.toc</refname>
<refpurpose>Process a non-empty <tag>toc</tag> element if it occurs in a source document?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="process.source.toc.frag">&lt;xsl:param name="process.source.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Specifies that the contents of a non-empty "hard-coded"
<tag>toc</tag> element in a source document are processed to
generate a TOC in output.
<note>
<para>This parameter has no effect on automated generation of
TOCs. An automated TOC may still be generated along with the
"hard-coded" TOC. To suppress automated TOC generation, adjust the
value of the <parameter>generate.toc</parameter> paramameter.</para>
<para>The <tag>process.source.toc</tag> parameter also has
no effect if the <tag>toc</tag> element is empty; handling
for empty <tag>toc</tag> is controlled by the
<parameter>process.empty.source.toc</parameter> parameter.</para>
</note>
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="generate.toc">
<refmeta>
<refentrytitle>generate.toc</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">table</refmiscinfo>
</refmeta>
<refnamediv>
<refname>generate.toc</refname>
<refpurpose>Control generation of ToCs and LoTs</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="generate.toc.frag">
&lt;xsl:param name="generate.toc"&gt;
/appendix toc,title
article/appendix nop
/article toc,title
book toc,title,figure,table,example,equation
/chapter toc,title
part toc,title
/preface toc,title
reference toc,title
/sect1 toc
/sect2 toc
/sect3 toc
/sect4 toc
/sect5 toc
/section toc
set toc,title
&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This parameter has a structured value. It is a table of space-delimited
path/value pairs. Each path identifies some element in the source document
using a restricted subset of XPath (only the implicit child axis, no wildcards,
no predicates). Paths can be either relative or absolute.</para>
<para>When processing a particular element, the stylesheets consult this table to
determine if a ToC (or LoT(s)) should be generated.</para>
<para>For example, consider the entry:</para>
<screen>book toc,figure</screen>
<para>This indicates that whenever a <tag>book</tag> is formatted, a
Table Of Contents and a List of Figures should be generated. Similarly,</para>
<screen>/chapter toc</screen>
<para>indicates that whenever a document <emphasis>that has a root
of</emphasis> <tag>chapter</tag> is formatted, a Table of
Contents should be generated. The entry <literal>chapter</literal> would match
all chapters, but <literal>/chapter</literal> matches only <tag>chapter</tag>
document elements.</para>
<para>Generally, the longest match wins. So, for example, if you want to distinguish
articles in books from articles in parts, you could use these two entries:</para>
<screen>book/article toc,figure
part/article toc</screen>
<para>Note that an article in a part can never match a <literal>book/article</literal>,
so if you want nothing to be generated for articles in parts, you can simply leave
that rule out.</para>
<para>If you want to leave the rule in, to make it explicit that you're turning
something off, use the value <quote>nop</quote>. For example, the following
entry disables ToCs and LoTs for articles:</para>
<screen>article nop</screen>
<para>Do not simply leave the word <quote>article</quote> in the file
without a matching value. That'd be just begging the silly little
path/value parser to get confused.</para>
<para>Section ToCs are further controlled by the
<parameter>generate.section.toc.level</parameter> parameter.
For a given section level to have a ToC, it must have both an entry in
<parameter>generate.toc</parameter> and be within the range enabled by
<parameter>generate.section.toc.level</parameter>.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="generate.index">
<refmeta>
<refentrytitle>generate.index</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>generate.index</refname>
<refpurpose>Do you want an index?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="generate.index.frag">&lt;xsl:param name="generate.index" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Specify if an index should be generated. </para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="make.index.markup">
<refmeta>
<refentrytitle>make.index.markup</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>make.index.markup</refname>
<refpurpose>Generate XML index markup in the index?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="make.index.markup.frag">
&lt;xsl:param name="make.index.markup" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This parameter enables a very neat trick for getting properly
merged, collated back-of-the-book indexes. G. Ken Holman suggested
this trick at Extreme Markup Languages 2002 and I'm indebted to him
for it.</para>
<para>Jeni Tennison's excellent code in
<filename>autoidx.xsl</filename> does a great job of merging and
sorting <tag>indexterm</tag>s in the document and building a
back-of-the-book index. However, there's one thing that it cannot
reasonably be expected to do: merge page numbers into ranges. (I would
not have thought that it could collate and suppress duplicate page
numbers, but in fact it appears to manage that task somehow.)</para>
<para>Ken's trick is to produce a document in which the index at the
back of the book is <quote>displayed</quote> in XML. Because the index
is generated by the FO processor, all of the page numbers have been resolved.
It's a bit hard to explain, but what it boils down to is that instead of having
an index at the back of the book that looks like this:</para>
<blockquote>
<formalpara><info><title>A</title></info>
<para>ap1, 1, 2, 3</para>
</formalpara>
</blockquote>
<para>you get one that looks like this:</para>
<blockquote>
<programlisting>&lt;indexdiv&gt;A&lt;/indexdiv&gt;
&lt;indexentry&gt;
&lt;primaryie&gt;ap1&lt;/primaryie&gt;,
&lt;phrase role="pageno"&gt;1&lt;/phrase&gt;,
&lt;phrase role="pageno"&gt;2&lt;/phrase&gt;,
&lt;phrase role="pageno"&gt;3&lt;/phrase&gt;
&lt;/indexentry&gt;</programlisting>
</blockquote>
<para>After building a PDF file with this sort of odd-looking index, you can
extract the text from the PDF file and the result is a proper index expressed in
XML.</para>
<para>Now you have data that's amenable to processing and a simple Perl script
(such as <filename>fo/pdf2index</filename>) can
merge page ranges and generate a proper index.</para>
<para>Finally, reformat your original document using this literal index instead of
an automatically generated one and <quote>bingo</quote>!</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="index.method">
<refmeta>
<refentrytitle>index.method</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
<refmiscinfo class="other" otherclass="value">basic</refmiscinfo>
<refmiscinfo class="other" otherclass="value">kosek</refmiscinfo>
<refmiscinfo class="other" otherclass="value">kimber</refmiscinfo>
</refmeta>
<refnamediv>
<refname>index.method</refname>
<refpurpose>Select method used to group index entries in an index</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="index.method.frag">
&lt;xsl:param name="index.method"&gt;basic&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This parameter lets you select which method to use for sorting and grouping
index entries in an index.
Indexes in Latin-based languages that have accented characters typically
sort together accented words and unaccented words.
Thus <quote>&#193;</quote> (U+00C1 LATIN CAPITAL LETTER A WITH ACUTE) would sort together
with <quote>A</quote> (U+0041 LATIN CAPITAL LETTER A), so both would appear in the <quote>A</quote>
section of the index.
Languages using other alphabets (such as Russian, which is written in the Cyrillic alphabet)
and languages using ideographic chararacters (such as Japanese)
require grouping specific to the languages and alphabets.
</para>
<para>The default indexing method is limited.
It can group accented characters in Latin-based languages only.
It cannot handle non-Latin alphabets or ideographic languages.
The other indexing methods require extensions of one type or
another, and do not work with
all XSLT processors, which is why they are not used by default.</para>
<para>The three choices for indexing method are:</para>
<variablelist>
<varlistentry>
<term><literal>basic</literal></term>
<listitem>
<para>
(default) Sort and groups words based only on the Latin alphabet.
Words with accented Latin letters will group and sort with
their respective primary letter, but
words in non-Latin alphabets will be
put in the <quote>Symbols</quote> section of the index.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>kosek</literal></term>
<listitem>
<para>
This method sorts and groups words based on letter groups configured in
the DocBook locale file for the given language.
See, for example, the French locale file <filename>common/fr.xml</filename>.
This method requires that the XSLT processor
supports the EXSLT extensions (most do).
It also requires support for using
user-defined functions in xsl:key (xsltproc does not).
</para>
<para>This method is suitable for any language for which you can
list all the individual characters that should appear
in each letter group in an index.
It is probably not practical to use it for ideographic languages
such as Chinese that have hundreds or thousands of characters.
</para>
<para>To use the kosek method, you must:</para>
<orderedlist>
<listitem>
<para>Use a processor that supports its extensions, such as
Saxon 6 or Xalan (xsltproc and Saxon 8 do not).
</para>
</listitem>
<listitem>
<para>Set the index.method parameter's value to <quote>kosek</quote>.
</para>
</listitem>
<listitem>
<para>Import the appropriate index extensions stylesheet module
<filename>fo/autoidx-kosek.xsl</filename> or
<filename>html/autoidx-kosek.xsl</filename> into your
customization.
</para>
</listitem>
</orderedlist>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>kimber</literal></term>
<listitem>
<para>
This method uses extensions to the Saxon processor to implement
sophisticated indexing processes. It uses its own
configuration file, which can include information for any number of
languages. Each language's configuration can group
words using one of two processes. In the
enumerated process similar to that used in the kosek method,
you indicate the groupings character-by-character.
In the between-key process, you specify the
break-points in the sort order that should start a new group.
The latter configuration is useful for ideographic languages
such as Chinese, Japanese, and Korean.
You can also define your own collation algorithms and how you
want mixed Latin-alphabet words sorted.</para>
<itemizedlist>
<listitem>
<para>For a whitepaper describing the extensions, see:
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf">http://www.innodata-isogen.com/knowledge_center/white_papers/back_of_book_for_xsl_fo.pdf</link>.
</para>
</listitem>
<listitem>
<para>To download the extension library, see
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport">http://www.innodata-isogen.com/knowledge_center/tools_downloads/i18nsupport</link>.
</para>
</listitem>
</itemizedlist>
<para>To use the kimber method, you must:</para>
<orderedlist>
<listitem>
<para>Use Saxon (version 6 or 8) as your XSLT processor.
</para>
</listitem>
<listitem>
<para>Install and configure the Innodata Isogen library, using
the documentation that comes with it.
</para>
</listitem>
<listitem>
<para>Set the index.method parameter's value to <quote>kimber</quote>.
</para>
</listitem>
<listitem>
<para>Import the appropriate index extensions stylesheet module
<filename>fo/autoidx-kimber.xsl</filename> or
<filename>html/autoidx-kimber.xsl</filename> into your
customization.
</para>
</listitem>
</orderedlist>
</listitem>
</varlistentry>
</variablelist>
</refsection>
</refentry>
<refentry version="5.0" xml:id="index.on.type">
<refmeta>
<refentrytitle>index.on.type</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>index.on.type</refname>
<refpurpose>Select indexterms based on <tag class="attribute">type</tag>
attribute value</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="index.on.type.frag">
&lt;xsl:param name="index.on.type" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>
If non-zero,
then an <tag>index</tag> element that has a
<tag class="attribute">type</tag> attribute
value will contain only those <tag>indexterm</tag>
elements with a matching <tag class="attribute">type</tag> attribute value.
If an <tag>index</tag> has no <tag class="attribute">type</tag>
attribute or it is blank, then the index will contain
all <tag>indexterm</tag>s in the current scope.
</para>
<para>
If <literal>index.on.type</literal> is zero, then the
<tag class="attribute">type</tag> attribute has no effect
on selecting indexterms for an index.
</para>
<para>For those using DocBook version 4.2 or earlier,
the <tag class="attribute">type</tag> attribute is not available
for index terms. However, you can achieve the same
effect by using the <tag class="attribute">role</tag> attribute
in the same manner on <tag>indexterm</tag>
and <tag>index</tag>, and setting the stylesheet parameter
<parameter>index.on.role</parameter> to a nonzero value.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="index.on.role">
<refmeta>
<refentrytitle>index.on.role</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>index.on.role</refname>
<refpurpose>Select indexterms based on <tag class="attribute">role</tag> value</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="index.on.role.frag">
&lt;xsl:param name="index.on.role" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>
If non-zero,
then an <tag>index</tag> element that has a
<tag class="attribute">role</tag> attribute
value will contain only those <tag>indexterm</tag>
elements with a matching role value.
If an <tag>index</tag> has no <tag class="attribute">role</tag>
attribute or it is blank, then the index will contain
all <tag>indexterm</tag>s in the current scope.
</para>
<para>
If <literal>index.on.role</literal> is zero, then the
<tag class="attribute">role</tag> attribute has no effect
on selecting indexterms for an index.
</para>
<para>If you are using DocBook version 4.3 or later, you should
use the <tag class="attribute">type</tag> attribute instead of <tag class="attribute">role</tag>
on <tag>indexterm</tag> and <tag>index</tag>,
and set the <parameter>index.on.type</parameter> to a nonzero
value.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="index.preferred.page.properties">
<refmeta>
<refentrytitle>index.preferred.page.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>index.preferred.page.properties</refname>
<refpurpose>Properties used to emphasize page number references for
significant index terms</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="index.preferred.page.properties.frag">
&lt;xsl:attribute-set name="index.preferred.page.properties"&gt;
&lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Properties used to emphasize page number references for
significant index terms (<tag class="attribute">significance</tag>=<tag class="attvalue">preferred</tag>). Currently works only with
XEP.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="index.entry.properties">
<refmeta>
<refentrytitle>index.entry.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>index.entry.properties</refname>
<refpurpose>Properties applied to the formatted entries
in an index</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="index.entry.properties.frag">
&lt;xsl:attribute-set name="index.entry.properties"&gt;
&lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This attribute set is applied to the block containing
the entries in a letter division in an index. It can be used to set the
font-size, font-family, and other inheritable properties that will be
applied to all index entries.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="index.div.title.properties">
<refmeta>
<refentrytitle>index.div.title.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>index.div.title.properties</refname>
<refpurpose>Properties associated with the letter headings in an
index</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="index.div.title.properties.frag">
&lt;xsl:attribute-set name="index.div.title.properties"&gt;
&lt;xsl:attribute name="margin-{$direction.align.start}"&gt;0pt&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="font-size"&gt;14.4pt&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="font-family"&gt;&lt;xsl:value-of select="$title.fontset"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.optimum"&gt;&lt;xsl:value-of select="concat($body.font.master,'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.minimum"&gt;&lt;xsl:value-of select="concat($body.font.master,'pt * 0.8')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.maximum"&gt;&lt;xsl:value-of select="concat($body.font.master,'pt * 1.2')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="start-indent"&gt;0pt&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This attribute set is used on the letter headings that separate
the divisions in an index.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="index.number.separator">
<refmeta>
<refentrytitle>index.number.separator</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>index.number.separator</refname>
<refpurpose>Override for punctuation separating page numbers in index</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="index.number.separator.frag">
&lt;xsl:param name="index.number.separator"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This parameter permits you to override the text to insert between
page references in a formatted index entry. Typically
that would be a comma and a space.
</para>
<para>Because this text may be locale dependent,
this parameter's value is normally taken from a gentext
template named 'number-separator' in the
context 'index' in the stylesheet
locale file for the language
of the current document.
This parameter can be used to override the gentext string,
and would typically be used on the command line.
This parameter would apply to all languages.
</para>
<para>So this text string can be customized in two ways.
You can reset the default gentext string using
the <parameter>local.l10n.xml</parameter> parameter, or you can
override the gentext with the content of this parameter.
The content can be a simple string, or it can be
something more complex such as a call-template.
</para>
<para>In HTML index output, section title references are used instead of
page number references. This punctuation appears between
such section titles in an HTML index.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="index.range.separator">
<refmeta>
<refentrytitle>index.range.separator</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>index.range.separator</refname>
<refpurpose>Override for punctuation separating the two numbers
in a page range in index</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="index.range.separator.frag">
&lt;xsl:param name="index.range.separator"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This parameter permits you
to override the text to insert between
the two numbers of a page range in an index.
This parameter is only used by those XSL-FO processors
that support an extension for generating such page ranges
(such as XEP).</para>
<para>Because this text may be locale dependent,
this parameter's value is normally taken from a gentext
template named 'range-separator' in the
context 'index' in the stylesheet
locale file for the language
of the current document.
This parameter can be used to override the gentext string,
and would typically be used on the command line.
This parameter would apply to all languages.
</para>
<para>So this text string can be customized in two ways.
You can reset the default gentext string using
the <parameter>local.l10n.xml</parameter> parameter, or you can
override the gentext with the content of this parameter.
The content can be a simple string, or it can be
something more complex such as a call-template.
</para>
<para>In HTML index output, section title references are used instead of
page number references. So there are no page ranges
and this parameter has no effect.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="index.term.separator">
<refmeta>
<refentrytitle>index.term.separator</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>index.term.separator</refname>
<refpurpose>Override for punctuation separating an index term
from its list of page references in an index</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="index.term.separator.frag">
&lt;xsl:param name="index.term.separator"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This parameter permits you to override
the text to insert between
the end of an index term and its list of page references.
Typically that might be a comma and a space.
</para>
<para>Because this text may be locale dependent,
this parameter's value is normally taken from a gentext
template named 'term-separator' in the
context 'index' in the stylesheet
locale file for the language
of the current document.
This parameter can be used to override the gentext string,
and would typically be used on the command line.
This parameter would apply to all languages.
</para>
<para>So this text string can be customized in two ways.
You can reset the default gentext string using
the <parameter>local.l10n.xml</parameter> parameter, or you can
fill in the content for this normally empty
override parameter.
The content can be a simple string, or it can be
something more complex such as a call-template.
For fo output, it could be an <tag>fo:leader</tag>
element to provide space of a specific length, or a dot leader.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="xep.index.item.properties">
<refmeta>
<refentrytitle>xep.index.item.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>xep.index.item.properties</refname>
<refpurpose>Properties associated with XEP index-items</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="xep.index.item.properties.frag">
&lt;xsl:attribute-set name="xep.index.item.properties" use-attribute-sets="index.page.number.properties"&gt;
&lt;xsl:attribute name="merge-subsequent-page-numbers"&gt;true&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="link-back"&gt;true&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Properties associated with XEP index-items, which generate
page numbers in an index processed by XEP. For more info see
the XEP documentation section "Indexes" in
<uri xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.renderx.com/reference.html#Indexes">http://www.renderx.com/reference.html#Indexes</uri>.</para>
<para>This attribute-set also adds by default any properties from the
<tag class="attribute">index.page.number.properties</tag>
attribute-set.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="toc.section.depth">
<refmeta>
<refentrytitle>toc.section.depth</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>toc.section.depth</refname>
<refpurpose>How deep should recursive <tag>section</tag>s appear
in the TOC?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="toc.section.depth.frag">&lt;xsl:param name="toc.section.depth"&gt;2&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Specifies the depth to which recursive sections should appear in the
TOC.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="toc.max.depth">
<refmeta>
<refentrytitle>toc.max.depth</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>toc.max.depth</refname>
<refpurpose>How many levels should be created for each TOC?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="toc.max.depth.frag">&lt;xsl:param name="toc.max.depth"&gt;8&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Specifies the maximal depth of TOC on all levels.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="toc.indent.width">
<refmeta>
<refentrytitle>toc.indent.width</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">float</refmiscinfo>
</refmeta>
<refnamediv>
<refname>toc.indent.width</refname>
<refpurpose>Amount of indentation for TOC entries</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="toc.indent.width.frag">
&lt;xsl:param name="toc.indent.width"&gt;24&lt;/xsl:param&gt;
&lt;!-- inconsistant point specification? --&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Specifies, in points, the distance by which each level of the
TOC is indented from its parent.</para>
<para>This value is expressed in points, without
a unit (in other words, it is a bare number). Using a bare number allows the stylesheet
to perform calculations that would otherwise have to be performed by the FO processor
because not all processors support expressions.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="toc.line.properties">
<refmeta>
<refentrytitle>toc.line.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>toc.line.properties</refname>
<refpurpose>Properties for lines in ToCs and LoTs</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="toc.line.properties.frag">
&lt;xsl:attribute-set name="toc.line.properties"&gt;
&lt;xsl:attribute name="text-align-last"&gt;justify&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="text-align"&gt;start&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="end-indent"&gt;&lt;xsl:value-of select="concat($toc.indent.width, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="last-line-end-indent"&gt;&lt;xsl:value-of select="concat('-', $toc.indent.width, 'pt')"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Properties which are applied to every line in ToC (or LoT). You can
modify them in order to change appearance of all, or some lines. For
example, in order to make lines for chapters bold, specify the
following in your customization layer:</para>
<programlisting>&lt;xsl:attribute-set name="toc.line.properties"&gt;
&lt;xsl:attribute name="font-weight"&gt;
&lt;xsl:choose&gt;
&lt;xsl:when test="self::chapter"&gt;bold&lt;/xsl:when&gt;
&lt;xsl:otherwise&gt;normal&lt;/xsl:otherwise&gt;
&lt;/xsl:choose&gt;
&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;</programlisting>
</refsection>
</refentry>
<refentry version="5.0" xml:id="toc.margin.properties">
<refmeta>
<refentrytitle>toc.margin.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>toc.margin.properties</refname>
<refpurpose>Margin properties used on Tables of Contents</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="toc.margin.properties.frag">
&lt;xsl:attribute-set name="toc.margin.properties"&gt;
&lt;xsl:attribute name="space-before.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.optimum"&gt;1em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.maximum"&gt;2em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after.minimum"&gt;0.5em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after.optimum"&gt;1em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after.maximum"&gt;2em&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This attribute set is used on Tables of Contents. These attributes are set
on the wrapper that surrounds the ToC block, not on each individual lines.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="bridgehead.in.toc">
<refmeta>
<refentrytitle>bridgehead.in.toc</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>bridgehead.in.toc</refname>
<refpurpose>Should bridgehead elements appear in the TOC?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="bridgehead.in.toc.frag">&lt;xsl:param name="bridgehead.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, <tag>bridgehead</tag>s appear in the TOC. Note that
this option is not fully supported and may be removed in a future
version of the stylesheets.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="simplesect.in.toc">
<refmeta>
<refentrytitle>simplesect.in.toc</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>simplesect.in.toc</refname>
<refpurpose>Should <tag>simplesect</tag> elements appear in the TOC?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="simplesect.in.toc.frag">&lt;xsl:param name="simplesect.in.toc" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, <tag>simplesect</tag>s will be included in the TOC.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="generate.section.toc.level">
<refmeta>
<refentrytitle>generate.section.toc.level</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>generate.section.toc.level</refname>
<refpurpose>Control depth of TOC generation in sections</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="generate.section.toc.level.frag">
&lt;xsl:param name="generate.section.toc.level" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>The <parameter>generate.section.toc.level</parameter> parameter
controls the depth of <tag>section</tag> in which TOCs will be generated. Note
that this is related to, but not the same as
<parameter>toc.section.depth</parameter>, which controls the depth to
which TOC entries will be generated in a given TOC.</para>
<para>If, for example, <parameter>generate.section.toc.level</parameter>
is <literal>3</literal>, TOCs will be generated in first, second, and third
level sections, but not in fourth level sections.
</para>
</refsection>
</refentry>
</reference>
<reference xml:id="fo_ext"><title>Processor Extensions</title>
<refentry version="5.0" xml:id="arbortext.extensions">
<refmeta>
<refentrytitle>arbortext.extensions</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>arbortext.extensions</refname>
<refpurpose>Enable Arbortext extensions?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="arbortext.extensions.frag">&lt;xsl:param name="arbortext.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero,
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.arbortext.com/">Arbortext</link>
extensions will be used.
</para>
<para>This parameter can also affect which graphics file formats
are supported</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="axf.extensions">
<refmeta>
<refentrytitle>axf.extensions</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>axf.extensions</refname>
<refpurpose>Enable XSL Formatter extensions?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="axf.extensions.frag">
&lt;xsl:param name="axf.extensions" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero,
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.antennahouse.com/">XSL Formatter</link>
extensions will be used. XSL Formatter extensions consists of PDF bookmarks,
document information and better index processing.</para>
<para>This parameter can also affect which graphics file formats
are supported</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="fop.extensions">
<refmeta>
<refentrytitle>fop.extensions</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>fop.extensions</refname>
<refpurpose>Enable extensions for FOP version 0.20.5 and earlier</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="fop.extensions.frag">&lt;xsl:param name="fop.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, extensions intended for
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://xml.apache.org/fop/">FOP</link>
version 0.20.5 and earlier will be used.
At present, this consists of PDF bookmarks.
</para>
<para>This parameter can also affect which graphics file formats
are supported.</para>
<para>If you are using a version of FOP beyond
version 0.20.5, then use the <parameter>fop1.extensions</parameter> parameter
instead.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="fop1.extensions">
<refmeta>
<refentrytitle>fop1.extensions</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>fop1.extensions</refname>
<refpurpose>Enable extensions for FOP version 0.90 and later</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="fop1.extensions.frag">&lt;xsl:param name="fop1.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, extensions for
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://xml.apache.org/fop/">FOP</link>
version 0.90 and later will be used.
</para>
<para>This parameter can also affect which graphics file formats
are supported.</para>
<para>The original <parameter>fop.extensions</parameter> parameter
should still be used for FOP version 0.20.5 and earlier.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="passivetex.extensions">
<refmeta>
<refentrytitle>passivetex.extensions</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>passivetex.extensions</refname>
<refpurpose>Enable PassiveTeX extensions?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="passivetex.extensions.frag">&lt;xsl:param name="passivetex.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero,
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://projects.oucs.ox.ac.uk/passivetex/">PassiveTeX</link>
extensions will be used. At present, this consists of PDF bookmarks
and sorted index terms.
</para>
<para>This parameter can also affect which graphics file formats
are supported</para>
<note>
<para>PassiveTeX is incomplete and development has ceased. In most cases,
another XSL-FO engine is probably a better choice.</para>
</note>
</refsection>
</refentry>
<refentry version="5.0" xml:id="tex.math.in.alt">
<refmeta>
<refentrytitle>tex.math.in.alt</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
<refmiscinfo class="other" otherclass="value">plain</refmiscinfo>
<refmiscinfo class="other" otherclass="value">latex</refmiscinfo>
</refmeta>
<refnamediv>
<refname>tex.math.in.alt</refname>
<refpurpose>TeX notation used for equations</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="tex.math.in.alt.frag">
&lt;xsl:param name="tex.math.in.alt"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If you want type math directly in TeX notation in equations,
this parameter specifies notation used. Currently are supported two
values -- <literal>plain</literal> and <literal>latex</literal>. Empty
value means that you are not using TeX math at all.</para>
<para>Preferred way for including TeX alternative of math is inside of
<tag>textobject</tag> element. Eg.:</para>
<programlisting>&lt;inlineequation&gt;
&lt;inlinemediaobject&gt;
&lt;imageobject&gt;
&lt;imagedata fileref="eq1.gif"/&gt;
&lt;/imageobject&gt;
&lt;textobject&gt;&lt;phrase&gt;E=mc squared&lt;/phrase&gt;&lt;/textobject&gt;
&lt;textobject role="tex"&gt;&lt;phrase&gt;E=mc^2&lt;/phrase&gt;&lt;/textobject&gt;
&lt;/inlinemediaobject&gt;
&lt;/inlineequation&gt;</programlisting>
<para>If you are using <tag>graphic</tag> element, you can
store TeX inside <tag>alt</tag> element:</para>
<programlisting>&lt;inlineequation&gt;
&lt;alt role="tex"&gt;a^2+b^2=c^2&lt;/alt&gt;
&lt;graphic fileref="a2b2c2.gif"/&gt;
&lt;/inlineequation&gt;</programlisting>
<para>If you want use this feature, you should process your FO with
PassiveTeX, which only supports TeX math notation. When calling
stylsheet, don't forget to specify also
passivetex.extensions=1.</para>
<para>If you want equations in HTML, just process generated file
<filename>tex-math-equations.tex</filename> by TeX or LaTeX. Then run
dvi2bitmap program on result DVI file. You will get images for
equations in your document.</para>
<warning>
<para>This feature is useful for print/PDF output only if you
use the obsolete and now unsupported PassiveTeX XSL-FO
engine.</para>
</warning>
</refsection>
<refsection><info><title>Related Parameters</title></info>
<para><parameter>tex.math.delims</parameter>,
<parameter>passivetex.extensions</parameter>,
<parameter>tex.math.file</parameter></para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="tex.math.delims">
<refmeta>
<refentrytitle>tex.math.delims</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>tex.math.delims</refname>
<refpurpose>Should equations output for processing by TeX be
surrounded by math mode delimiters?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="tex.math.delims.frag">
&lt;xsl:param name="tex.math.delims" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>For compatibility with DSSSL based DBTeXMath from Allin Cottrell
you should set this parameter to 0.</para>
<warning>
<para>This feature is useful for print/PDF output only if you
use the obsolete and now unsupported PassiveTeX XSL-FO
engine.</para>
</warning>
</refsection>
<refsection><info><title>Related Parameters</title></info>
<para><parameter>tex.math.in.alt</parameter>,
<parameter>passivetex.extensions</parameter></para>
</refsection>
<refsection><info><title>See Also</title></info>
<para>You can also use the <tag class="xmlpi">dbtex delims</tag> processing
instruction to control whether delimiters are output.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="xep.extensions">
<refmeta>
<refentrytitle>xep.extensions</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>xep.extensions</refname>
<refpurpose>Enable XEP extensions?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="xep.extensions.frag">&lt;xsl:param name="xep.extensions" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero,
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.renderx.com/">XEP</link>
extensions will be used. XEP extensions consists of PDF bookmarks,
document information and better index processing.
</para>
<para>This parameter can also affect which graphics file formats
are supported</para>
</refsection>
</refentry>
</reference>
<reference xml:id="dbk_ext"><title>Stylesheet Extensions</title>
<refentry version="5.0" xml:id="linenumbering.everyNth">
<refmeta>
<refentrytitle>linenumbering.everyNth</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>linenumbering.everyNth</refname>
<refpurpose>Indicate which lines should be numbered</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="linenumbering.everyNth.frag">
&lt;xsl:param name="linenumbering.everyNth"&gt;5&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If line numbering is enabled, everyNth line will be
numbered. Note that numbering is one based, not zero based.
</para>
<para>See also <parameter>linenumbering.extension</parameter>,
<parameter>linenumbering.separator</parameter>,
<parameter>linenumbering.width</parameter> and
<parameter>use.extensions</parameter></para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="linenumbering.extension">
<refmeta>
<refentrytitle>linenumbering.extension</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>linenumbering.extension</refname>
<refpurpose>Enable the line numbering extension</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="linenumbering.extension.frag">
&lt;xsl:param name="linenumbering.extension" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, verbatim environments (<tag>address</tag>, <tag>literallayout</tag>,
<tag>programlisting</tag>, <tag>screen</tag>, <tag>synopsis</tag>) that specify line numbering will
have line numbers.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="linenumbering.separator">
<refmeta>
<refentrytitle>linenumbering.separator</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>linenumbering.separator</refname>
<refpurpose>Specify a separator between line numbers and lines</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="linenumbering.separator.frag">
&lt;xsl:param name="linenumbering.separator"&gt;&lt;xsl:text&gt; &lt;/xsl:text&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>The separator is inserted between line numbers and lines in the
verbatim environment. The default value is a single white space.
Note the interaction with <parameter>linenumbering.width</parameter>
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="linenumbering.width">
<refmeta>
<refentrytitle>linenumbering.width</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>linenumbering.width</refname>
<refpurpose>Indicates the width of line numbers</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="linenumbering.width.frag">
&lt;xsl:param name="linenumbering.width"&gt;3&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If line numbering is enabled, line numbers will appear right
justified in a field "width" characters wide.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="tablecolumns.extension">
<refmeta>
<refentrytitle>tablecolumns.extension</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>tablecolumns.extension</refname>
<refpurpose>Enable the table columns extension function</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="tablecolumns.extension.frag">
&lt;xsl:param name="tablecolumns.extension" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>The table columns extension function adjusts the widths of table
columns in the HTML result to more accurately reflect the specifications
in the CALS table.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="textinsert.extension">
<refmeta>
<refentrytitle>textinsert.extension</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>textinsert.extension</refname>
<refpurpose>Enables the textinsert extension element</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="textinsert.extension.frag">
&lt;xsl:param name="textinsert.extension" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>The textinsert extension element inserts the contents of
a file into the result tree (as text).</para>
<note>
<para>To use the textinsert extension element, you must use
either Saxon or Xalan as your XSLT processor (it doesn&#8217;t
work with xsltproc), along with either the DocBook Saxon
extensions or DocBook Xalan extensions (for more
information about those extensions, see <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="InstallingAProcessor.html#SaxonExtensions">DocBook Saxon Extensions</link> and <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="InstallingAProcessor.html#XalanExtensions">DocBook Xalan Extensions</link>), and you must set both
the <parameter>use.extensions</parameter> and
<parameter>textinsert.extension</parameter> parameters to
<literal>1</literal>.</para>
<para>As an alternative to using the textinsert element,
consider using an Xinclude element with the
<literal>parse="text"</literal> attribute and value
specified, as detailed in <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="ExternalCode.html#XIncludeCode">Using XInclude for text inclusions</link>.</para>
</note>
</refsection>
<refsection><info><title>See Also</title></info>
<para>You can also use the <tag class="xmlpi">dbhtml-include&#160;href</tag> processing
instruction to insert external files &#8212; both files containing
plain text and files with markup content (including HTML
content).</para>
</refsection>
<refsection><info><title>More information</title></info>
<para>For how-to documentation on inserting contents of
external code files and other text files into output, see
<link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="ExternalCode.html">External code files</link>.</para>
<para>For guidelines on inserting contents of
HTML files into output, see <link xmlns:xlink="http://www.w3.org/1999/xlink" role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="textdata.default.encoding">
<refmeta>
<refentrytitle>textdata.default.encoding</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>textdata.default.encoding</refname>
<refpurpose>Default encoding of external text files which are included
using textdata element</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="textdata.default.encoding.frag">
&lt;xsl:param name="textdata.default.encoding"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Specifies the encoding of any external text files included using
<tag>textdata</tag> element. This value is used only when you do
not specify encoding by the appropriate attribute
directly on textdata. An empty string is interpreted as the system
default encoding.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="use.extensions">
<refmeta>
<refentrytitle>use.extensions</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>use.extensions</refname>
<refpurpose>Enable extensions</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="use.extensions.frag">
&lt;xsl:param name="use.extensions" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, extensions may be used. Each extension is
further controlled by its own parameter. But if
<parameter>use.extensions</parameter> is zero, no extensions will
be used.
</para>
</refsection>
</refentry>
</reference>
<reference xml:id="labels"><title>Automatic labelling</title>
<refentry version="5.0" xml:id="appendix.autolabel">
<refmeta>
<refentrytitle>appendix.autolabel</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
</refmeta>
<refnamediv>
<refname>appendix.autolabel</refname>
<refpurpose>Specifies the labeling format for Appendix titles</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="appendix.autolabel.frag">
&lt;xsl:param name="appendix.autolabel"&gt;A&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, then appendices will be numbered using the
parameter value as the number format if the value matches one of the
following:
</para>
<variablelist>
<varlistentry>
<term>1 or arabic</term>
<listitem>
<para>Arabic numeration (1, 2, 3 ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>A or upperalpha</term>
<listitem>
<para>Uppercase letter numeration (A, B, C ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>a or loweralpha</term>
<listitem>
<para>Lowercase letter numeration (a, b, c ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>I or upperroman</term>
<listitem>
<para>Uppercase roman numeration (I, II, III ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>i or lowerroman</term>
<listitem>
<para>Lowercase roman letter numeration (i, ii, iii ...).</para>
</listitem>
</varlistentry>
</variablelist>
<para>Any nonzero value other than the above will generate
the default number format (upperalpha).
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="chapter.autolabel">
<refmeta>
<refentrytitle>chapter.autolabel</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
</refmeta>
<refnamediv>
<refname>chapter.autolabel</refname>
<refpurpose>Specifies the labeling format for Chapter titles</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="chapter.autolabel.frag">
&lt;xsl:param name="chapter.autolabel" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, then chapters will be numbered using the parameter
value as the number format if the value matches one of the following:
</para>
<variablelist>
<varlistentry>
<term>1 or arabic</term>
<listitem>
<para>Arabic numeration (1, 2, 3 ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>A or upperalpha</term>
<listitem>
<para>Uppercase letter numeration (A, B, C ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>a or loweralpha</term>
<listitem>
<para>Lowercase letter numeration (a, b, c ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>I or upperroman</term>
<listitem>
<para>Uppercase roman numeration (I, II, III ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>i or lowerroman</term>
<listitem>
<para>Lowercase roman letter numeration (i, ii, iii ...).</para>
</listitem>
</varlistentry>
</variablelist>
<para>Any nonzero value other than the above will generate
the default number format (arabic).
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="part.autolabel">
<refmeta>
<refentrytitle>part.autolabel</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
</refmeta>
<refnamediv>
<refname>part.autolabel</refname>
<refpurpose>Specifies the labeling format for Part titles</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="part.autolabel.frag">
&lt;xsl:param name="part.autolabel"&gt;I&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, then parts will be numbered using the parameter
value as the number format if the value matches one of the following:
</para>
<variablelist>
<varlistentry>
<term>1 or arabic</term>
<listitem>
<para>Arabic numeration (1, 2, 3 ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>A or upperalpha</term>
<listitem>
<para>Uppercase letter numeration (A, B, C ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>a or loweralpha</term>
<listitem>
<para>Lowercase letter numeration (a, b, c ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>I or upperroman</term>
<listitem>
<para>Uppercase roman numeration (I, II, III ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>i or lowerroman</term>
<listitem>
<para>Lowercase roman letter numeration (i, ii, iii ...).</para>
</listitem>
</varlistentry>
</variablelist>
<para>Any nonzero value other than the above will generate
the default number format (upperroman).
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="reference.autolabel">
<refmeta>
<refentrytitle>reference.autolabel</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
</refmeta>
<refnamediv>
<refname>reference.autolabel</refname>
<refpurpose>Specifies the labeling format for Reference titles</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="reference.autolabel.frag">
&lt;xsl:param name="reference.autolabel"&gt;I&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, references will be numbered using the parameter
value as the number format if the value matches one of the
following:
</para>
<variablelist>
<varlistentry>
<term>1 or arabic</term>
<listitem>
<para>Arabic numeration (1, 2, 3 ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>A or upperalpha</term>
<listitem>
<para>Uppercase letter numeration (A, B, C ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>a or loweralpha</term>
<listitem>
<para>Lowercase letter numeration (a, b, c ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>I or upperroman</term>
<listitem>
<para>Uppercase roman numeration (I, II, III ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>i or lowerroman</term>
<listitem>
<para>Lowercase roman letter numeration (i, ii, iii ...).</para>
</listitem>
</varlistentry>
</variablelist>
<para>Any non-zero value other than the above will generate
the default number format (upperroman).
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="preface.autolabel">
<refmeta>
<refentrytitle>preface.autolabel</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
<refmiscinfo class="other" otherclass="value">0<alt>none</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">1<alt>1,2,3...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">A<alt>A,B,C...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">a<alt>a,b,c...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">i<alt>i,ii,iii...</alt></refmiscinfo>
<refmiscinfo class="other" otherclass="value">I<alt>I,II,III...</alt></refmiscinfo>
</refmeta>
<refnamediv>
<refname>preface.autolabel</refname>
<refpurpose>Specifices the labeling format for Preface titles</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="preface.autolabel.frag">&lt;xsl:param name="preface.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero then prefaces will be numbered using the parameter
value as the number format if the value matches one of the following:
</para>
<variablelist>
<varlistentry>
<term>1 or arabic</term>
<listitem>
<para>Arabic numeration (1, 2, 3 ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>A or upperalpha</term>
<listitem>
<para>Uppercase letter numeration (A, B, C ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>a or loweralpha</term>
<listitem>
<para>Lowercase letter numeration (a, b, c ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>I or upperroman</term>
<listitem>
<para>Uppercase roman numeration (I, II, III ...).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>i or lowerroman</term>
<listitem>
<para>Lowercase roman letter numeration (i, ii, iii ...).</para>
</listitem>
</varlistentry>
</variablelist>
<para>Any nonzero value other than the above will generate
the default number format (arabic).
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="section.autolabel">
<refmeta>
<refentrytitle>section.autolabel</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>section.autolabel</refname>
<refpurpose>Are sections enumerated?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="section.autolabel.frag">&lt;xsl:param name="section.autolabel" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If true (non-zero), unlabeled sections will be enumerated.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="section.autolabel.max.depth">
<refmeta>
<refentrytitle>section.autolabel.max.depth</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">integer</refmiscinfo>
</refmeta>
<refnamediv>
<refname>section.autolabel.max.depth</refname>
<refpurpose>The deepest level of sections that are numbered.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="section.autolabel.max.depth.frag">
&lt;xsl:param name="section.autolabel.max.depth"&gt;8&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>When section numbering is turned on by the
<parameter>section.autolabel</parameter> parameter, then this
parameter controls the depth of <tag>section</tag> nesting that is
numbered. Sections nested to a level deeper than this value will not
be numbered.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="section.label.includes.component.label">
<refmeta>
<refentrytitle>section.label.includes.component.label</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>section.label.includes.component.label</refname>
<refpurpose>Do section labels include the component label?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="section.label.includes.component.label.frag">&lt;xsl:param name="section.label.includes.component.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, section labels are prefixed with the label of the
component that contains them.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="label.from.part">
<refmeta>
<refentrytitle>label.from.part</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>label.from.part</refname>
<refpurpose>Renumber components in each part?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="label.from.part.frag">
&lt;xsl:param name="label.from.part" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If <parameter>label.from.part</parameter> is non-zero, then
numbering of components &#8212; <tag>preface</tag>,
<tag>chapter</tag>, <tag>appendix</tag>, and
<tag>reference</tag> (when <tag>reference</tag> occurs at the
component level) &#8212; is re-started within each
<tag>part</tag>.</para>
<para>If <parameter>label.from.part</parameter> is zero (the
default), numbering of components is <emphasis>not</emphasis>
re-started within each <tag>part</tag>; instead, components are
numbered sequentially throughout each <tag>book</tag>,
regardless of whether or not they occur within <tag>part</tag>
instances.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="component.label.includes.part.label">
<refmeta>
<refentrytitle>component.label.includes.part.label</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>component.label.includes.part.label</refname>
<refpurpose>Do component labels include the part label?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="component.label.includes.part.label.frag">&lt;xsl:param name="component.label.includes.part.label" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, number labels for <tag>chapter</tag>,
<tag>appendix</tag>, and other component elements are prefixed with
the label of the part element that contains them. So you might see
Chapter II.3 instead of Chapter 3. Also, the labels for formal
elements such as <tag>table</tag> and <tag>figure</tag> will include
the part label. If there is no part element container, then no prefix
is generated.
</para>
<para>
This feature is most useful when the
<parameter>label.from.part</parameter> parameter is turned on.
In that case, there would be more than one <tag>chapter</tag>
<quote>1</quote>, and the extra part label prefix will identify
each chapter unambiguously.
</para>
</refsection>
</refentry>
</reference>
<reference xml:id="xslt"><title>XSLT Processing</title>
<refentry version="5.0" xml:id="rootid">
<refmeta>
<refentrytitle>rootid</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>rootid</refname>
<refpurpose>Specify the root element to format</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="rootid.frag">
&lt;xsl:param name="rootid"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If <parameter>rootid</parameter> is not empty, it must be the
value of an ID that occurs in the document being formatted. The entire
document will be loaded and parsed, but formatting will begin at the
element identified, rather than at the root. For example, this allows
you to process only <tag>chapter</tag> 4 of a <tag>book</tag>.</para>
<para>Because the entire document is available to the processor, automatic
numbering, cross references, and other dependencies are correctly
resolved.</para>
</refsection>
</refentry>
</reference>
<reference xml:id="meta"><title>Meta/*Info</title>
<refentry version="5.0" xml:id="make.single.year.ranges">
<refmeta>
<refentrytitle>make.single.year.ranges</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>make.single.year.ranges</refname>
<refpurpose>Print single-year ranges (e.g., 1998-1999)</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="make.single.year.ranges.frag">
&lt;xsl:param name="make.single.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, year ranges that span a single year will be printed
in range notation (1998-1999) instead of discrete notation
(1998, 1999).</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="make.year.ranges">
<refmeta>
<refentrytitle>make.year.ranges</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>make.year.ranges</refname>
<refpurpose>Collate copyright years into ranges?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="make.year.ranges.frag">&lt;xsl:param name="make.year.ranges" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, multiple copyright <tag>year</tag> elements will be
collated into ranges.
This works only if each year number is put into a separate
year element. The copyright element permits multiple
year elements. If a year element contains a dash or
a comma, then that year element will not be merged into
any range.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="author.othername.in.middle">
<refmeta>
<refentrytitle>author.othername.in.middle</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>author.othername.in.middle</refname>
<refpurpose>Is <tag>othername</tag> in <tag>author</tag> a
middle name?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="author.othername.in.middle.frag">
&lt;xsl:param name="author.othername.in.middle" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, the <tag>othername</tag> of an <tag>author</tag>
appears between the <tag>firstname</tag> and
<tag>surname</tag>. Otherwise, <tag>othername</tag>
is suppressed.
</para>
</refsection>
</refentry>
</reference>
<reference xml:id="refentry"><title>Reference Pages</title>
<refentry version="5.0" xml:id="funcsynopsis.decoration">
<refmeta>
<refentrytitle>funcsynopsis.decoration</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>funcsynopsis.decoration</refname>
<refpurpose>Decorate elements of a <tag>funcsynopsis</tag>?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="funcsynopsis.decoration.frag">
&lt;xsl:param name="funcsynopsis.decoration" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, elements of the <tag>funcsynopsis</tag> will be
decorated (e.g. rendered as bold or italic text). The decoration is controlled by
templates that can be redefined in a customization layer.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="funcsynopsis.style">
<refmeta>
<refentrytitle>funcsynopsis.style</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">list</refmiscinfo>
<refmiscinfo class="other" otherclass="value">ansi</refmiscinfo>
<refmiscinfo class="other" otherclass="value">kr</refmiscinfo>
</refmeta>
<refnamediv>
<refname>funcsynopsis.style</refname>
<refpurpose>What style of <tag>funcsynopsis</tag> should be generated?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="funcsynopsis.style.frag">&lt;xsl:param name="funcsynopsis.style"&gt;kr&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If <parameter>funcsynopsis.style</parameter> is <literal>ansi</literal>,
ANSI-style function synopses are generated for a
<tag>funcsynopsis</tag>, otherwise K&amp;R-style
function synopses are generated.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="function.parens">
<refmeta>
<refentrytitle>function.parens</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>function.parens</refname>
<refpurpose>Generate parens after a function?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="function.parens.frag">
&lt;xsl:param name="function.parens" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, the formatting of a <tag>function</tag> element
will include generated parentheses.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="refentry.generate.name">
<refmeta>
<refentrytitle>refentry.generate.name</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.generate.name</refname>
<refpurpose>Output NAME header before <tag>refname</tag>s?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="refentry.generate.name.frag">
&lt;xsl:param name="refentry.generate.name" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, a "NAME" section title is output before the list
of <tag>refname</tag>s. This parameter and
<parameter>refentry.generate.title</parameter> are mutually
exclusive. This means that if you change this parameter to zero, you
should set <parameter>refentry.generate.title</parameter> to non-zero unless
you want get quite strange output.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="refentry.generate.title">
<refmeta>
<refentrytitle>refentry.generate.title</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.generate.title</refname>
<refpurpose>Output title before <tag>refname</tag>s?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="refentry.generate.title.frag">
&lt;xsl:param name="refentry.generate.title" select="0"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, the reference page title or first name is
output before the list of <tag>refname</tag>s. This parameter and
<parameter>refentry.generate.name</parameter> are mutually exclusive.
This means that if you change this parameter to non-zero, you
should set <parameter>refentry.generate.name</parameter> to zero unless
you want get quite strange output.</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="refentry.pagebreak">
<refmeta>
<refentrytitle>refentry.pagebreak</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.pagebreak</refname>
<refpurpose>Start each refentry on a new page</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="refentry.pagebreak.frag">&lt;xsl:param name="refentry.pagebreak" select="1"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero (the default), each <tag>refentry</tag>
element will start on a new page. If zero, a page
break will not be generated between <tag>refentry</tag> elements.
The exception is when the <tag>refentry</tag> elements are children of
a <tag>part</tag> element, in which case the page breaks are always
retained. That is because a <tag>part</tag> element does not generate
a page-sequence for its children, so each <tag>refentry</tag> must
start its own page-sequence.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="refentry.title.properties">
<refmeta>
<refentrytitle>refentry.title.properties</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">attribute set</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.title.properties</refname>
<refpurpose>Title properties for a refentry title</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="refentry.title.properties.frag">
&lt;xsl:attribute-set name="refentry.title.properties"&gt;
&lt;xsl:attribute name="font-family"&gt;
&lt;xsl:value-of select="$title.fontset"&gt;&lt;/xsl:value-of&gt;
&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="font-size"&gt;18pt&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="font-weight"&gt;bold&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after"&gt;1em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="hyphenate"&gt;false&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="keep-with-next.within-column"&gt;always&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.minimum"&gt;0.8em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.optimum"&gt;1.0em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-before.maximum"&gt;1.2em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after.optimum"&gt;0.5em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after.minimum"&gt;0.4em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="space-after.maximum"&gt;0.6em&lt;/xsl:attribute&gt;
&lt;xsl:attribute name="start-indent"&gt;&lt;xsl:value-of select="$title.margin.left"&gt;&lt;/xsl:value-of&gt;&lt;/xsl:attribute&gt;
&lt;/xsl:attribute-set&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Formatting properties applied to the title generated for the
<tag>refnamediv</tag> part of output for
<tag>refentry</tag> when the value of the
<parameter>refentry.generate.title</parameter> parameter is
non-zero. The font size is supplied by the appropriate <parameter>section.level<replaceable>X</replaceable>.title.properties</parameter>
attribute-set, computed from the location of the
<tag>refentry</tag> in the section hierarchy.</para>
<note>
<para>This parameter has no effect on the the title generated for
the <tag>refnamediv</tag> part of output for
<tag>refentry</tag> when the value of the
<parameter>refentry.generate.name</parameter> parameter is
non-zero. By default, that title is formatted with the same
properties as the titles for all other first-level children of
<tag>refentry</tag>.</para>
</note>
</refsection>
</refentry>
<refentry version="5.0" xml:id="refentry.xref.manvolnum">
<refmeta>
<refentrytitle>refentry.xref.manvolnum</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refentry.xref.manvolnum</refname>
<refpurpose>Output <tag>manvolnum</tag> as part of
<tag>refentry</tag> cross-reference?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="refentry.xref.manvolnum.frag">
&lt;xsl:param name="refentry.xref.manvolnum" select="1"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>if non-zero, the <tag>manvolnum</tag> is used when cross-referencing
<tag>refentry</tag>s, either with <tag>xref</tag>
or <tag>citerefentry</tag>.
</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="refclass.suppress">
<refmeta>
<refentrytitle>refclass.suppress</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">boolean</refmiscinfo>
</refmeta>
<refnamediv>
<refname>refclass.suppress</refname>
<refpurpose>Suppress display of refclass contents?</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="refclass.suppress.frag">
&lt;xsl:param name="refclass.suppress" select="0"&gt;&lt;/xsl:param&gt;</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If the value of <parameter>refclass.suppress</parameter> is
non-zero, then display of <tag>refclass</tag> contents is
suppressed in output.</para>
</refsection>
</refentry>
</reference>
<reference xml:id="tables"><title>Tables</title>
<refentry version="5.0" xml:id="default.table.width">
<refmeta>
<refentrytitle>default.table.width</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
</refmeta>
<refnamediv>
<refname>default.table.width</refname>
<refpurpose>The default width of tables</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="default.table.width.frag">
&lt;xsl:param name="default.table.width"&gt;&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>If non-zero, this value will be used for the
<literal>width</literal> attribute on <tag>table</tag>s that do not specify an
alternate width (with the <tag class="xmlpi">dbhtml table-width</tag> or
<tag class="xmlpi">dbfo table-width</tag> processing instruction).</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="nominal.table.width">
<refmeta>
<refentrytitle>nominal.table.width</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">length</refmiscinfo>
</refmeta>
<refnamediv>
<refname>nominal.table.width</refname>
<refpurpose>The (absolute) nominal width of tables</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="nominal.table.width.frag">
&lt;xsl:param name="nominal.table.width"&gt;6in&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>In order to convert CALS column widths into HTML column widths, it
is sometimes necessary to have an absolute table width to use for conversion
of mixed absolute and relative widths. This value must be an absolute
length (not a percentage).</para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="default.table.frame">
<refmeta>
<refentrytitle>default.table.frame</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>default.table.frame</refname>
<refpurpose>The default framing of tables</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="default.table.frame.frag">
&lt;xsl:param name="default.table.frame"&gt;all&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>This value will be used when there is no frame attribute on the
table. </para>
</refsection>
</refentry>
<refentry version="5.0" xml:id="default.table.rules">
<refmeta>
<refentrytitle>default.table.rules</refentrytitle>
<refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>
</refmeta>
<refnamediv>
<refname>default.table.rules</refname>
<refpurpose>The default column and row rules for tables using HTML markup</refpurpose>
</refnamediv>
<refsynopsisdiv>
<programlisting xml:id="default.table.rules.frag">
&lt;xsl:param name="default.table.rules"&gt;none&lt;/xsl:param&gt;
</programlisting>
</refsynopsisdiv>
<refsection><info><title>Description</title></info>
<para>Tables using HTML markup elements can use an attribute
named <tag class="attribute">rules</tag> on the <tag>table</tag> or
<tag>informaltable</tag> element
to specify whether column and row border rules should be
displayed. This parameter lets you specify a global default
style for all HTML tables that don't otherwise have
that attribute.</para>
<para>These are the supported values:</para>
<variablelist>
<varlistentry><term>all</term>