Hi Alexey,
Thanks for pointing out this inconsistency. It seems that over time several
changes were made to the formatting of inline glossterms, and that one was
probably missed. I will fix that for 1.78.1.
However, I don't particularly like that italicseq is hard coded here. That
should probably be an attribute-set so it can be more easily customized,
especially since it overrides the properties provided by the
'xref.properties' attribute-set. But I'm not going to make that change for
1.78.1.
Bob Stayton
Sagehill Enterprises
[email protected]
--------------------------------------------------
From: "Alexey Neyman" <[email protected]>
Sent: Tuesday, January 29, 2013 4:55 PM
To: "DocBook Apps" <[email protected]>
Subject: [docbook-apps] Formatting of <glossterm>
Hi all,
Is there a reason why glossterms in FO output are formatted in italics,
EXCEPT
the case where it is linked implicitly by virtue of the term's text (or
@baseform, if specified) and the glossary is internal
($glossary.collection =
'')?
Here is the template from 1.78.0. As you may see, there's only one case
where
inline.charseq template is called, the rest of cases call
inline.italicseq.
Regards,
Alexey.
<xsl:template match="glossterm" name="glossterm">
<xsl:param name="firstterm" select="0"/>
<xsl:choose>
<xsl:when test="($firstterm.only.link = 0 or $firstterm = 1) and
@linkend">
<xsl:variable name="targets" select="key('id',@linkend)"/>
<xsl:variable name="target" select="$targets[1]"/>
<xsl:choose>
<xsl:when test="$target">
<fo:basic-link internal-destination="{@linkend}"
xsl:use-attribute-sets="xref.properties">
<xsl:call-template name="inline.italicseq"/>
</fo:basic-link>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="inline.italicseq"/>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="not(@linkend)
and ($firstterm.only.link = 0 or $firstterm = 1)
and ($glossterm.auto.link != 0)
and $glossary.collection != ''">
<xsl:variable name="term">
<xsl:choose>
<xsl:when test="@baseform"><xsl:value-of
select="@baseform"/></xsl:when>
<xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="cterm"
select="(document($glossary.collection,.)//glossentry[glossterm=$term])[1]"/>
<xsl:choose>
<xsl:when test="not($cterm)">
<xsl:message>
<xsl:text>There's no entry for </xsl:text>
<xsl:value-of select="$term"/>
<xsl:text> in </xsl:text>
<xsl:value-of select="$glossary.collection"/>
</xsl:message>
<xsl:call-template name="inline.italicseq"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="id">
<xsl:call-template name="object.id">
<xsl:with-param name="object" select="$cterm"/>
</xsl:call-template>
</xsl:variable>
<fo:basic-link internal-destination="{$id}"
xsl:use-attribute-sets="xref.properties">
<xsl:call-template name="inline.italicseq"/>
</fo:basic-link>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:when test="not(@linkend)
and ($firstterm.only.link = 0 or $firstterm = 1)
and $glossterm.auto.link != 0">
<xsl:variable name="term">
<xsl:choose>
<xsl:when test="@baseform">
<xsl:value-of select="normalize-space(@baseform)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="normalize-space(.)"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="targets"
select="key('glossentries', $term)"/>
<xsl:variable name="target" select="$targets[1]"/>
<xsl:choose>
<xsl:when test="count($targets)=0">
<xsl:message>
<xsl:text>Error: no glossentry for glossterm: </xsl:text>
<xsl:value-of select="."/>
<xsl:text>.</xsl:text>
</xsl:message>
<xsl:call-template name="inline.italicseq"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="termid">
<xsl:call-template name="object.id">
<xsl:with-param name="object" select="$target"/>
</xsl:call-template>
</xsl:variable>
<fo:basic-link internal-destination="{$termid}"
xsl:use-attribute-sets="xref.properties">
<xsl:call-template name="inline.charseq"/>
</fo:basic-link>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="inline.italicseq"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]