Hi,
Keep in mind that a top level parameter is processed once only, when the
stylesheet is loaded. As such, a parameter is good for global properties.
For properties on elements with different attributes or content, you can use
something similar in the value of an attribute inside an attribute-set. For
an example of that syntax, see:
http://www.sagehill.net/docbookxsl/PrintTableStyles.html#TableTitle
An attribute-set is evaluated each time it is used on an element, so the
condition can resolve differently for different element instances.
Bob Stayton
Sagehill Enterprises
----- Original Message -----
From: "Geraint North" <>
To: "Thomas Schraitle" <>
Cc: <>
Sent: Thursday, December 13, 2007 12:29 AM
Subject: Re: [docbook-apps] Something like an attribute-set, but different
> That's great - I didn't realise that the parameters could be dynamically
> configured in that way (but of course they can be, thinking about it) -
> that will make life very easy indeed.
>
> Thanks,
>
> Geraint North
> Principal Engineer
> Transitive
>
>
> On 12 Dec 2007, at 19:29, Thomas Schraitle wrote:
>
>> Hi,
>>
>> On Mittwoch, 12. Dezember 2007, Geraint North wrote:
>>>
>>> I've got a few situations where I'd like to set some attributes based
>>> on some top-level properties of my DocBook Book. For example:
>>> - If the <book>'s lang is "ja", use a set of Japanese fonts, rather
>>> than the defaults.
>>
>> That's pretty easy. You have to create a customization layer as shown in
>> [1] and insert the following parameter:
>>
>> <xsl:param name="body.font.family">
>> <xsl:choose>
>> <xsl:when test="/book/@lang='ja'">
>> <xsl:text><!-- Insert your fonts here --></xsl:text>
>> </xsl:when>
>> <xsl:otherwise>serif</xsl:otherwise>
>> </xsl:choose>
>> </xsl:param>
>>
>> Probably you need to configure the other parameters like
>> sans.font.family
>> as well (see [2]).
>>
>>
>>> - If the confidentiality level of the document (my own tag) is
>>> "Confidential", print the chapter titles in black rather than blue.
>>
>> For this check I need to know where your confidentiality element is
>> allowed.
>>
>> I am not 100% sure, maybe there are better methods, but you can change
>> the
>> attribute set chapter.titlepage.recto.style (untested):
>>
>> <xsl:attribute-set name="chapter.titlepage.recto.style">
>> <xsl:attribute name="color">
>> <xsl:choose>
>> <!-- Adapt the XPath in test to your needs -->
>> <xsl:when test="/*/confidentiality = 'Confidental'">
>> <xsl:text>black</xsl:text>
>> </xsl:when>
>> <xsl:otherwise>blue</xsl:otherwise>
>> </xsl:choose>
>> </xsl:attribute>
>> </xsl:attribute-set>
>>
>> Insert it into your customization layer too. :)
>>
>>
>> Hope that helps,
>> Tom
>>
>> ---------
>> [1]
>> http://www.sagehill.net/docbookxsl/ CustomMethods.html#CustomizationLayer
>> [2] http://docbook.sourceforge.net/release/xsl/current/doc/fo/ fonts.html
>>
>>
>> --
>> Thomas Schraitle
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> For additional commands, e-mail: - open.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:
>
>
>