Thanks Bob, When I look at this page:
http://docbook.sourceforge.net/release/xsl/1.76.1/doc/fo/index.html I don't see the normal.para.properties attribute set at all. Is the documentation not accurate? Paul On Fri, Mar 2, 2012 at 12:35 PM, Bob Stayton <[email protected]> wrote: > ** > Hi Paul, > I think the normal.para.spacing attribute-set was originally for para, but > has since been used for other purposes to give uniform spacing for several > similar elements. There should be a dedicated attribute-set for para which > has a use-attribute-sets="normal.para.spacing" attribute so it can use > those properties but provide an opportunity for further customization for > just para. > > Looking at some of my previous cusotmization, I have used the > normal.para.properties attribute set and add an xsl:choose to test for the > para context, something like this: > > <xsl:attribute-set name="normal.para.properties"> > <xsl:attribute name="text-indent"> > <xsl:choose> > <xsl:when test="self::d:para"> > para value > </xsl:when> > </xsl:otherwise> > non-para value > </xsl:otherwise> > </xsl:choose> > </xsl:attribute> > </xsl:attribute-set> > > Since attribute-sets of the same name are merged, you will still get the > spacing and add this property. > > Bob Stayton > Sagehill Enterprises > [email protected] > > > > ----- Original Message ----- > *From:* Paul Tremblay <[email protected]> > *To:* DocBook Apps <[email protected]> > *Sent:* Friday, March 02, 2012 7:21 AM > *Subject:* [docbook-apps] formatting for paragraphs with xsl stylesheets > > It seems that the xsl stylesheets have a shortcoming for formatting > paragraphs. Whereas all other elements have an attribute set, para does > not. > > In order to set formatting properties, one has to use the > section.properties attribute set. But then titles inherit this property as > well. For example: > > <xsl:attribute-set name="section.properties"> > <xsl:attribute name="text-indent">12pt</attribute> > </xsl:attribute-set name> > > > Ends up indenting the title as well. In order to get around that, I have > to set the text-indent on the title properties to 0; that seems like a > clumsy workaround. In addition, the lack of formatting for paragraphs does > not allow you to indent paragraphs in certain situations. For example, some > styles don't indent the first paragraph after a title. > > The code below is my workaround. Is there a better way? If not, I would > consider submitting a patch (in which case the code would be more > sophisticated to handle more complicated situations) > > > > > <!--indent first paragraph--> > <xsl:template match="d:para"> > <xsl:variable name="keep.together"> > <xsl:call-template name="pi.dbfo_keep-together"/> > </xsl:variable> > <fo:block xsl:use-attribute-sets="normal.para.spacing"> > <xsl:if test="$keep.together != ''"> > <xsl:attribute name="keep-together.within-column"> > <xsl:value-of select="$keep.together"/> > </xsl:attribute> > </xsl:if> > <xsl:if test="preceding-sibling::d:para"> > <xsl:attribute name="text-indent"> > <xsl:value-of select="$text-indent"/> > </xsl:attribute> > </xsl:if> > <xsl:call-template name="anchor"/> > <xsl:apply-templates/> > </fo:block> > </xsl:template> > > Paul > >
