I missed that this only happened when there was a sibling. The example I tried 
only had one instance of replaceable embedded. When I added a second instance, 
it worked exactly as Stefan describes. Sorry for any confusion.

To complete what I suspect Bob was going to suggest, you can add a template to 
your customization that removes this behavior (the template below would do the 
job).

I just looked at the stylesheets, and they include a parameter called 
function.parens, which when set will take input of the following type:

<function>foo<replaceable>x</replaceable><replaceable>y</replaceable></function>
and render it as: foo(x, y).

The problem seems to be that the template for d:function checks this parameter, 
but the template for d:function/d:replaceable (and d:function/d:parameter) 
doesn't . The result when function.parens is set to 0 is inconsistent.

I think the following change would fix the problem for Stefan, and leave the 
capability in for anyone who wants to use function.parens:

<xsl:template match="d:function/d:replaceable" priority="2">
  <xsl:call-template name="inline.italicmonoseq"/>
  <xsl:if test="$function.parens != '0' and following-sibling::*">  <!-- here 
is the changed line -->
    <xsl:text>, </xsl:text>
  </xsl:if>
</xsl:template>

You'd need to do the same with d:function/d:parameter, too, though it appears 
that parameter is not allowed inside function, so it may be a moot point.

Dick
-------
XML Press
XML for Technical Communicators
http://xmlpress.net
[email protected]



On Nov 5, 2012, at 5:13 PM, Bob Stayton wrote:

> I checked the archives, and apparently these templates that add a comma in 
> the context of the function element were added very early in the XSL 
> development, back in 2001.  Given the variety of elements that function can 
> contain, including indexterms,and the variety of contexts in which function 
> can appear, including para, does anyone think these generated commas are 
> appropriate?  Are there more restricted contexts where they might be 
> appropriate?  If we eliminate the generated commas, would that mess up a lot 
> of output?
> 
> For now, I would suggest that you
> 
> Bob Stayton
> Sagehill Enterprises
> [email protected]
> 
> --------------------------------------------------
> From: "Stefan Seefeld" <[email protected]>
> Sent: Monday, November 05, 2012 4:05 PM
> To: "Richard Hamilton" <[email protected]>
> Cc: "DocBook Apps Mailing List" <[email protected]>
> Subject: Re: [docbook-apps] semantics of "replaceable" element.
> 
>> On 11/05/2012 06:50 PM, Richard Hamilton wrote:
>>> Hi Stefan,
>>> 
>>> I suspect the problem is in your customization. I just tried this with 
>>> 1.77.1 (PDF and HTML), and there were no commas inserted in the output.
>> 
>> Hi Richard,
>> 
>> thanks for following up so quickly. I don't yet use a customization for
>> this. Please have a look at either the fo/inline.xsl or html/inline.xsl
>> stylesheets and look for the template matching
>> "d:function/d:replaceable". It does indeed add a comma if there is more
>> content after the replaceable element:
>> 
>> <xsl:template match="d:function/d:replaceable" priority="2">
>> <xsl:call-template name="inline.italicmonoseq"/>
>> <xsl:if test="following-sibling::*">
>>   <xsl:text>, </xsl:text>
>> </xsl:if>
>> </xsl:template>
>> 
>> (In my docs I have things like
>> <function>vsip_<replaceable>d</replaceable>clip</function>, such that
>> the comma would be inserted between the 'd' and the 'clip'.
>> 
>>   Stefan
>> 
>> -- 
>> 
>>     ...ich hab' noch einen Koffer in Berlin...
>> 
>> 
>> ---------------------------------------------------------------------
>> 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]

Reply via email to