Hi David,
The mode="item-number" template just returns a number, but
it doesn't place it anywhere. Trying to use float sounds hard,
as you'll have to deal with alignment and such to match your other
listitems.
I would suggest creating a customized copy of
the template for the listitem itself:
<xsl:template
match="orderedlist/listitem[@role='no_number']">
I would have it create two fo:list-items. Put
everything that precedes the first para in the first list-item's list-item-body,
and give it an empty list-item-label. Then put the first para and
everything that follows it in the second list-item's list-body, and put the
number in its list-item-label. That would keep everything lined up the way
you want.
----- Original Message -----
Sent: Friday, May 12, 2006 7:37 AM
Subject: [docbook-apps] listitems and FO
numbering
Hello everyone,
I'm looking to control how the listitems
are formatted in XSL-FO. I have XML that is formatted like this for my
list:
< listitem
role="no_number">
< figure>
< title/>
< mediaobject><imageobject><imagedata fileref="A.tif"/></imageobject></mediaobject>
</ figure>
< para>some text<para>
</ listitem>
What I'm trying to do is
move the listitem number to the <para> tag instead of immediately
rendering after the <listitem> tag.
Below is my XSLT
modification to the <xsl:template match="orderedlist/listitem" mode="item-number"> template:
< xsl:choose>
< xsl:when
test="self::listitem/@role='no_number' and
parent::orderedlist">
<!-- This dosnt render the listitem
immediately after the element tag -->
<!-- <xsl:apply-templates
select="child::para[1]" mode="item-number" />-->
< fo:inline
height="15pt" float="left" padding-right="2pt" >
<xsl:apply-templates
select="ancestor::listitem[parent::orderedlist][1]" mode="item-number"/>
</ fo:inline>
< xsl:number
value="$item-number" format="{$type}"/>
</ xsl:when>
< xsl:otherwise>
<xsl:if test="parent::orderedlist/@inheritnum='inherit' and
ancestor::listitem[parent::orderedlist]">
<xsl:apply-templates
select="ancestor::listitem[parent::orderedlist][1]" mode="item-number"/>
</xsl:if>
<xsl:number value="$item-number" format="{$type}"/>
</xsl:otherwise>
</xsl:choose>
Any suggestions as to how I can correct this
code to allow flexiblity in where a list item is rendered?
Thanks,
David White
Ken Cook Co.,
Content Management
tel: 414.847.1322
-- No virus found in this outgoing message. Checked by
AVG Free Edition. Version: 7.1.392 / Virus Database: 268.5.6/337 - Release
Date: 5/11/2006
|