You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-users@xmlgraphics.apache.org by jamesl <ja...@rascalsoftware.com> on 2003/04/10 16:57:23 UTC
Extra space after cross-reference
I am including a template for cross-references in my stylesheet. The template
has the intended result with one exception: it inserts a space when the text
following the cross-reference is a period.
Here is what the output looks like:
"For more information, see Getting Started on page 2 ."
I want the output to be
"For more information, see Getting Started on page 2."
Any ideas on how to fix this would be appreciated.
************************************************
SOURCE FO
<xsl:template match="a">
<xsl:element name="fo:inline">
<xsl:element name="fo:basic-link">
<xsl:attribute name="internal-destination">
<xsl:value-of select="@idref" />
</xsl:attribute>
<xsl:value-of select="document(@idref)/cnt-elm/title"/>
<xsl:text>
on page
</xsl:text>
<xsl:element name="fo:page-number-citation">
<xsl:attribute name="ref-id">
<xsl:value-of select="@idref" />
</xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org
Re: Extra space after cross-reference
Posted by Clay Leeds <cl...@medata.com>.
James,
This is just a guess, but perhaps you've included white-space where
there doesn't need to be. white-space can be a bit tricky to manage.
Although excess white-space is ignored, an extra [carriage-return] or
[tab] in the wrong place may not be ignored (particularly if there's no
white-space around it may produce unexpected (or unwanted) results.
I notice that you've got a couple of extra [carriage-returns] between
some elements. Try removing them. If that doesn't work, try putting all
of the template on one line:
<xsl:template match="a"><xsl:element name="fo:inline"><xsl:element
name="fo:basic-link"><xsl:attribute
name="internal-destination"><xsl:value-of select="@idref"
/></xsl:attribute><xsl:value-of
select="document(@idref)/cnt-elm/title"/><xsl:text>on page
</xsl:text><xsl:element name="fo:page-number-citation"><xsl:attribute
name="ref-id"><xsl:value-of select="@idref"
/></xsl:attribute></xsl:element></xsl:element></xsl:element></xsl:template>
I'm guessing this'll solve it. Also, I don't see the "." anywhere. Since
this template is being called from somewhere else, it might help to have
that portion of your XSL-FL as well.
Good luck!
Web Maestro Clay
jamesl wrote:
> I am including a template for cross-references in my stylesheet. The template
> has the intended result with one exception: it inserts a space when the text
> following the cross-reference is a period.
>
> Here is what the output looks like:
> "For more information, see Getting Started on page 2 ."
>
> I want the output to be
> "For more information, see Getting Started on page 2."
>
> Any ideas on how to fix this would be appreciated.
>
>
> ************************************************
> SOURCE FO
>
> <xsl:template match="a">
> <xsl:element name="fo:inline">
>
> <xsl:element name="fo:basic-link">
> <xsl:attribute name="internal-destination">
> <xsl:value-of select="@idref" />
> </xsl:attribute>
>
> <xsl:value-of select="document(@idref)/cnt-elm/title"/>
>
> <xsl:text>
> on page
> </xsl:text>
>
> <xsl:element name="fo:page-number-citation">
> <xsl:attribute name="ref-id">
> <xsl:value-of select="@idref" />
> </xsl:attribute>
> </xsl:element>
>
> </xsl:element>
>
> </xsl:element>
> </xsl:template>
--
Clay Leeds - cleeds@medata.com
Web Developer - Medata, Inc. - http://www.medata.com
PGP Public Key: https://mail.medata.com/pgp/cleeds.asc
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-user-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-user-help@xml.apache.org