OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] Changing line spacing in variablelists


Hi Bob,
The extra space is coming from the <para> element embedded in the listitem. The para element generates a block with its own spacing coming from the "para.properties" attribute-set. I was able to remove the extra space by customizing para.properties as follows to make it conditional:

    <xsl:attribute-set name="para.properties">
        <xsl:attribute name="space-before.maximum">
            <xsl:choose>
                <xsl:when test="ancestor::varlistentry">0pt</xsl:when>
                <xsl:otherwise>1.2em</xsl:otherwise>
            </xsl:choose>
        </xsl:attribute>
        <xsl:attribute name="space-before.optimum">
            <xsl:choose>
                <xsl:when test="ancestor::varlistentry">0pt</xsl:when>
                <xsl:otherwise>1.0em</xsl:otherwise>
            </xsl:choose>
        </xsl:attribute>
        <xsl:attribute name="space-before.minimum">
            <xsl:choose>
                <xsl:when test="ancestor::varlistentry">0pt</xsl:when>
                <xsl:otherwise>.8em</xsl:otherwise>
            </xsl:choose>
        </xsl:attribute>

    </xsl:attribute-set>

Note that this applies to all paras in varlistentry, so if you have two paras in a listitem, there will be no space between them as well.


Bob Stayton
Sagehill Enterprises
bobs@sagehill.net

On 8/17/2016 10:49 AM, Bob McIlvride wrote:
Dear friends,



I want to remove all line spacing for list items in the PDF output of a
Docbook 4.5 document, using Saxon6.5.5 and Apache FOP.  I've been able
to do this successfully, except for one line in variablelists.  The
spacing between the term and listitem in a variablelist remains.  I have
made a number of attempts in my custom stylesheet, but no luck.



For example, one part of my source document looks like this:



<varlistentry>

    <term><parameter moreinfo="none">modbus</parameter></term>

    <listitem>

    <para>The modbus instance pointer. Always enter <literal

        moreinfo="none">modbus</literal> for this

        parameter</para>

    </listitem>

</varlistentry>

<varlistentry>

    <term><parameter moreinfo="none">slaveid</parameter></term>

    <listitem>

    <para>The slave ID for this point. An entry of zero (<literal

       moreinfo="none">0</literal>) will use the default slave

       ID for the Modbus connection.</para>

    </listitem>

</varlistentry>

...



My custom stylesheet currently contains this:



    <xsl:attribute-set name="list.item.spacing">

        <xsl:attribute name="space-before.optimum">0em</xsl:attribute>

        <xsl:attribute name="space-before.minimum">0em</xsl:attribute>

        <xsl:attribute name="space-before.maximum">0em</xsl:attribute>

        <xsl:attribute name="space-after.optimum">0em</xsl:attribute>

        <xsl:attribute name="space-after.minimum">0em</xsl:attribute>

        <xsl:attribute name="space-after.maximum">0em</xsl:attribute>

    </xsl:attribute-set>



    <xsl:attribute-set name="list.block.spacing">

        <xsl:attribute name="padding-top">0em</xsl:attribute>

        <xsl:attribute name="padding-bottom">0em</xsl:attribute>

        <xsl:attribute name="space-before.optimum">0em</xsl:attribute>

        <xsl:attribute name="space-before.minimum">0em</xsl:attribute>

        <xsl:attribute name="space-before.maximum">0em</xsl:attribute>

        <xsl:attribute name="space-after.optimum">0em</xsl:attribute>

        <xsl:attribute name="space-after.minimum">0em</xsl:attribute>

        <xsl:attribute name="space-after.maximum">0em</xsl:attribute>

    </xsl:attribute-set>



    <xsl:template match="d:varlistentry" mode="vl.as.blocks">

        <xsl:variable name="id">

            <xsl:call-template name="object.id"/>

        </xsl:variable>



        <fo:block id="{$id}"
xsl:use-attribute-sets="variablelist.term.properties

            list.item.spacing"

            keep-together.within-column="always"

            keep-with-next.within-column="always"

            space-after.minimum="0pt"

            space-after.maximum="0pt"

            space-after.optimum="0pt"

            space-after.precedence="3"

            padding-top="0pt"

            padding-bottom="0pt"

            >

            <xsl:apply-templates select="d:term"/>

        </fo:block>



        <fo:block

            space-before.minimum="0pt"

            space-before.maximum="0pt"

            space-before.optimum="0pt"

            space-before.precedence="3"

            padding-top="0pt"

            padding-bottom="0pt"

            >

            <xsl:attribute
name="margin-{$direction.align.start}">0.25in</xsl:attribute>

            <xsl:apply-templates select="d:listitem"/>

        </fo:block>

    </xsl:template>



My output is in the attached screenshot, VariableListSpacing.jpg.  As
you can see, all of the line spacing is removed, except for the area
between the term and the listitem.  Can anyone help with this?



Best regards,



Bob





COGENT <http://cogent.ca/>

	

*Bob McIlvride **   Communications Manager*

Cogent Real-Time Systems Inc., a Skkynet company

T   1 905 702 7851 ext 103

cogent.ca <http://cogent.ca/>






---------------------------------------------------------------------
To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]