Added bunch of new parameters (attribute sets) that affect list presentation: list.block.properties, itemizedlist.properties, orderedlist.properties, itemizedlist.label.properties and orderedlist.label.properties. Default behaviour of stylesheets has not been changed but further customizations will be much more easier.
<!-- nested lists don't add extra list-block spacing -->
<xsl:choose>
<xsl:when test="ancestor::listitem">
- <fo:list-block id="{$id}"
- provisional-label-separation="0.2em">
- <xsl:attribute name="provisional-distance-between-starts">
- <xsl:choose>
- <xsl:when test="$label-width != ''">
- <xsl:value-of select="$label-width"/>
- </xsl:when>
- <xsl:otherwise>1.5em</xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
+ <fo:list-block id="{$id}" xsl:use-attribute-sets="itemizedlist.properties">
+ <xsl:if test="$label-width != ''">
+ <xsl:attribute name="provisional-distance-between-starts">
+ <xsl:value-of select="$label-width"/>
+ </xsl:attribute>
+ </xsl:if>
<xsl:copy-of select="$content"/>
</fo:list-block>
</xsl:when>
<xsl:otherwise>
- <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing"
- provisional-label-separation="0.2em">
- <xsl:attribute name="provisional-distance-between-starts">
- <xsl:choose>
- <xsl:when test="$label-width != ''">
- <xsl:value-of select="$label-width"/>
- </xsl:when>
- <xsl:otherwise>1.5em</xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
+ <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing itemizedlist.properties">
+ <xsl:if test="$label-width != ''">
+ <xsl:attribute name="provisional-distance-between-starts">
+ <xsl:value-of select="$label-width"/>
+ </xsl:attribute>
+ </xsl:if>
<xsl:copy-of select="$content"/>
</fo:list-block>
</xsl:otherwise>
<xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
<xsl:variable name="item.contents">
- <fo:list-item-label end-indent="label-end()">
+ <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="itemizedlist.label.properties">
<fo:block>
<xsl:call-template name="itemizedlist.label.markup">
<xsl:with-param name="itemsymbol">
<!-- nested lists don't add extra list-block spacing -->
<xsl:choose>
<xsl:when test="ancestor::listitem">
- <fo:list-block id="{$id}"
- provisional-label-separation="0.2em">
- <xsl:attribute name="provisional-distance-between-starts">
- <xsl:choose>
- <xsl:when test="$label-width != ''">
- <xsl:value-of select="$label-width"/>
- </xsl:when>
- <xsl:otherwise>2em</xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
+ <fo:list-block id="{$id}" xsl:use-attribute-sets="orderedlist.properties">
+ <xsl:if test="$label-width != ''">
+ <xsl:attribute name="provisional-distance-between-starts">
+ <xsl:value-of select="$label-width"/>
+ </xsl:attribute>
+ </xsl:if>
<xsl:copy-of select="$content"/>
</fo:list-block>
</xsl:when>
<xsl:otherwise>
- <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing"
- provisional-label-separation="0.2em">
- <xsl:attribute name="provisional-distance-between-starts">
- <xsl:choose>
- <xsl:when test="$label-width != ''">
- <xsl:value-of select="$label-width"/>
- </xsl:when>
- <xsl:otherwise>2em</xsl:otherwise>
- </xsl:choose>
- </xsl:attribute>
+ <fo:list-block id="{$id}" xsl:use-attribute-sets="list.block.spacing orderedlist.properties">
+ <xsl:if test="$label-width != ''">
+ <xsl:attribute name="provisional-distance-between-starts">
+ <xsl:value-of select="$label-width"/>
+ </xsl:attribute>
+ </xsl:if>
<xsl:copy-of select="$content"/>
</fo:list-block>
</xsl:otherwise>
<xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
<xsl:variable name="item.contents">
- <fo:list-item-label end-indent="label-end()">
+ <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="orderedlist.label.properties">
<fo:block>
<xsl:apply-templates select="." mode="item-number"/>
</fo:block>
<!ENTITY informal.object.properties SYSTEM "../params/informal.object.properties.xml">
<!ENTITY index.preferred.page.properties SYSTEM "../params/index.preferred.page.properties.xml">
<!ENTITY insert.xref.page.number SYSTEM "../params/insert.xref.page.number.xml">
+<!ENTITY itemizedlist.properties SYSTEM "../params/itemizedlist.properties.xml">
+<!ENTITY itemizedlist.label.properties SYSTEM "../params/itemizedlist.label.properties.xml">
<!ENTITY label.from.part SYSTEM "../params/label.from.part.xml">
<!ENTITY line-height SYSTEM "../params/line-height.xml">
<!ENTITY linenumbering.everyNth SYSTEM "../params/linenumbering.everyNth.xml">
<!ENTITY linenumbering.extension SYSTEM "../params/linenumbering.extension.xml">
<!ENTITY linenumbering.separator SYSTEM "../params/linenumbering.separator.xml">
<!ENTITY linenumbering.width SYSTEM "../params/linenumbering.width.xml">
+<!ENTITY list.block.properties SYSTEM "../params/list.block.properties.xml">
<!ENTITY list.block.spacing SYSTEM "../params/list.block.spacing.xml">
<!ENTITY list.item.spacing SYSTEM "../params/list.item.spacing.xml">
<!ENTITY make.single.year.ranges SYSTEM "../params/make.single.year.ranges.xml">
<!ENTITY olink.base.uri SYSTEM "../params/olink.base.uri.xml">
<!ENTITY olink.properties SYSTEM "../params/olink.properties.xml">
<!ENTITY olink.debug SYSTEM "../params/olink.debug.xml">
+<!ENTITY orderedlist.properties SYSTEM "../params/orderedlist.properties.xml">
+<!ENTITY orderedlist.label.properties SYSTEM "../params/orderedlist.label.properties.xml">
<!ENTITY collect.xref.targets SYSTEM "../params/collect.xref.targets.xml">
<!ENTITY targets.filename SYSTEM "../params/targets.filename.xml">
<!ENTITY prefer.internal.olink SYSTEM "../params/prefer.internal.olink.xml">
&list.item.spacing;
&compact.list.item.spacing;
&variablelist.max.termlength;
+&list.block.properties;
+&itemizedlist.properties;
+&itemizedlist.label.properties;
+&orderedlist.properties;
+&orderedlist.label.properties;
</reference>
<reference><title>Cross References</title>
<src:fragref linkend="index.div.title.properties.frag"/>
<src:fragref linkend="index.entry.properties.frag"/>
<src:fragref linkend="insert.xref.page.number.frag"/>
+<src:fragref linkend="itemizedlist.properties.frag"/>
+<src:fragref linkend="itemizedlist.label.properties.frag"/>
<src:fragref linkend="l10n.gentext.default.language.frag"/>
<src:fragref linkend="l10n.gentext.language.frag"/>
<src:fragref linkend="l10n.gentext.use.xref.language.frag"/>
<src:fragref linkend="linenumbering.extension.frag"/>
<src:fragref linkend="linenumbering.separator.frag"/>
<src:fragref linkend="linenumbering.width.frag"/>
+<src:fragref linkend="list.block.properties.frag"/>
<src:fragref linkend="list.block.spacing.frag"/>
<src:fragref linkend="list.item.spacing.frag"/>
<src:fragref linkend="make.index.markup.frag"/>
<src:fragref linkend="olink.debug.frag"/>
<src:fragref linkend="olink.properties.frag"/>
<src:fragref linkend="olink.lang.fallback.sequence.frag"/>
+<src:fragref linkend="orderedlist.properties.frag"/>
+<src:fragref linkend="orderedlist.label.properties.frag"/>
<src:fragref linkend="prefer.internal.olink.frag"/>
<src:fragref linkend="insert.olink.page.number.frag"/>
<src:fragref linkend="insert.olink.pdf.frag.frag"/>
--- /dev/null
+<refentry id="itemizedlist.label.properties">
+<refnamediv>
+<refname>itemizedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside itemized list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='itemizedlist.label.properties.frag'><xsl:attribute-set name="itemizedlist.label.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each label inside itemized list. E.g.:</para>
+<programlisting><![CDATA[<xsl:attribute-set name="itemizedlist.label.properties">
+ <xsl:attribute name="text-align">right</xsl:attribute>
+</xsl:attribute-set>]]></programlisting>
+</refsect1>
+</refentry>
--- /dev/null
+<refentry id="itemizedlist.properties">
+<refnamediv>
+<refname>itemizedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by itemizedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='itemizedlist.properties.frag'><xsl:attribute-set name="itemizedlist.properties" use-attribute-sets="list.block.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each fo:list-block generated by itemizedlist.</para>
+</refsect1>
+</refentry>
--- /dev/null
+<refentry id="list.block.properties">
+<refnamediv>
+<refname>list.block.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='list.block.properties.frag'><xsl:attribute-set name="list.block.properties">
+ <xsl:attribute name="provisional-label-separation">0.2em</xsl:attribute>
+ <xsl:attribute name="provisional-distance-between-starts">1.5em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each fo:list-block generated by itemizedlist/orderedlist.</para>
+</refsect1>
+</refentry>
--- /dev/null
+<refentry id="orderedlist.label.properties">
+<refnamediv>
+<refname>orderedlist.label.properties</refname>
+<refpurpose>Properties that apply to each label inside ordered list.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='orderedlist.label.properties.frag'><xsl:attribute-set name="orderedlist.label.properties">
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each label inside ordered list. E.g.:</para>
+<programlisting><![CDATA[<xsl:attribute-set name="orderedlist.label.properties">
+ <xsl:attribute name="text-align">right</xsl:attribute>
+</xsl:attribute-set>]]></programlisting>
+</refsect1>
+</refentry>
--- /dev/null
+<refentry id="orderedlist.properties">
+<refnamediv>
+<refname>orderedlist.properties</refname>
+<refpurpose>Properties that apply to each list-block generated by orderedlist.</refpurpose>
+</refnamediv>
+
+<refsynopsisdiv>
+<src:fragment id='orderedlist.properties.frag'><xsl:attribute-set name="orderedlist.properties" use-attribute-sets="list.block.properties">
+ <xsl:attribute name="provisional-distance-between-starts">2em</xsl:attribute>
+</xsl:attribute-set></src:fragment>
+</refsynopsisdiv>
+<refsect1><title>Description</title>
+<para>Properties that apply to each fo:list-block generated by orderedlist.</para>
+</refsect1>
+</refentry>