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
[EMAIL PROTECTED]
----- Original Message -----
From: "Geraint North" <[EMAIL PROTECTED]>
To: "Thomas Schraitle" <[EMAIL PROTECTED]>
Cc: <[email protected]>
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED] open.org
---------------------------------------------------------------------
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]