Page 1 of 1

docbook v5 customization layer - indent 1st paragraph line

Posted: Mon Mar 25, 2013 5:50 pm
by osprofi
Hello DocBook users
I am trying to introduce a customization layer for docbook v5 to indent the 1st paragraph line.
Normally, by re-defining normal.para.spacing attribute set in the customization layer this is possible:

Code: Select all


<xsl:attribute-set name="normal.para.spacing">
<xsl:attribute name="text-indent">24pt</xsl:attribute>
</xsl:attribute-set>
How and where this code should be introduced in the docbook v5 xsl ?

Thanks very much for your assistance

regards, Peter

Re: docbook v5 customization layer - indent 1st paragraph line

Posted: Mon Mar 25, 2013 6:51 pm
by sorin_ristache
Hello Peter,

The attribute set normal.para.spacing is defined in the various param.xsl stylesheets from Docbook XSL used for generating output formats like PDF and XHTML. These stylesheets are located in directory [Oxygen-install-dir]\frameworks\docbook\xsl, for example the stylesheets for the PDF output are located in the fo subdirectory of this directory, the stylesheets for the XHTML output are located in the xhtml subdirectory, etc. You just have to add the attribute called text-indent in this set, for example:

Code: Select all


<xsl:attribute-set name="normal.para.spacing">
<xsl:attribute name="text-indent">24pt</xsl:attribute>
<xsl:attribute name="space-before.optimum">1em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
<xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
</xsl:attribute-set>
The steps for creating and applying a Docbook customization layer in Oxygen are explained in a video demonstration on the video demo page of the Oxygen website. Please let us know if the process outlined there is not clear / helpful enough.


Regards,
Sorin

Re: docbook v5 customization layer - indent 1st paragraph line

Posted: Mon Mar 25, 2013 7:16 pm
by osprofi
Hello Sorin
thanks for quick reply
Your idea was also mine but this does not work, see the xsl file:

Code: Select all

<?xml version='1.0'?> 
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="xhtml/docbook.xsl"/>
<xsl:attribute-set name="normal.para.spacing">
<xsl:attribute name="text-indent">24pt</xsl:attribute>
<xsl:attribute name="space-before.optimum">1em</xsl:attribute>
<xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
<xsl:attribute name="space-before.maximum">1.2em</xsl:attribute>
</xsl:attribute-set>
</xsl:stylesheet>
- the html subdir does not contain the docbook.xsl
- the xhtml transformation in Oxygenxml transforms OK but does not show the transformed file
- the customization layer for docbook v5 is described here http://www.docbook.org/tdg51/en/html/ch05.html fully differently.

- do you have any idea what I have to change here ?

best regards, peter

Re: docbook v5 customization layer - indent 1st paragraph line

Posted: Tue Mar 26, 2013 2:07 pm
by sorin_ristache
Hi Peter,

The location where you save your new XSLT stylesheet (your customization layer) is very important for resolving the relative path in your import element:

Code: Select all

<xsl:import href="xhtml/docbook.xsl"/>
For the above import element to work you have to place your stylesheet in the [Oxygen-install-dir]/frameworks/docbook/xsl directory.

Please follow the example of the XSLT stylesheet from the built-in Oxygen scenario called DocBook XHTML, that is [Oxygen-install-dir]/frameworks/docbook/xsl/xhtml/docbook_custom.xsl. It imports (indirectly) the same docbook.xsl stylesheet and it works, but it is located in the [Oxygen-install-dir]/frameworks/docbook/xsl/xhtml/docbook_custom.xsl directory, otherwise the relative paths for the imported stylesheets would not work.

You should validate your XSLT customization layer stylesheet with the Validate action (with the shortcut Ctrl+Shift+V) available on the toolbar and also on the menu Document -> Validate. Usually fixing all validation errors prevents any transformation errors.


Regards,
Sorin