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] space between chapter number and chapter text?


Hi,
If you want to position the title at a constant distance from the left 
margin, regardless of the width of the chapter number, then you can use an 
fo:list-block.  I called it 'side-by-side' formatting, and an example for 
section titles is described here:

http://www.sagehill.net/docbookxsl/SideBySide.html

The trick is to use mode="label.markup" to generate just the chapter number 
and mode="title.markup" to generate just the title, putting each in a 
separate part of the fo:list-item.

Bob Stayton
Sagehill Enterprises
bobs@sagehill.net


----- Original Message ----- 
From: "Johannes Katelaan" <jk@e-integration.de>
To: <docbook-apps@lists.oasis-open.org>
Sent: Wednesday, November 11, 2009 6:23 AM
Subject: Re: [docbook-apps] space between chapter number and chapter text?


OK - I found a solution myself. I don't know if this is the best way to do 
it, but it works fine for me.
In case somebody is interested in my solution, here it is:

Change the customization layer for the chapter and section titles as 
follows:

    <l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0";>
        <l:l10n language="de">
            <l:context name="title-numbered">
                <l:template name="chapter" text="%n|%t"/>
                <l:template name="sect1" text="%n|%t"/>
                <l:template name="sect2" text="%n|%t"/>
            </l:context>
        </l:l10n>
    </l:i18n>

This adds a pipe character as a separator between the chapter or section 
number and the text.

Copy the template "component.title" to the customization layer stylesheet 
and modify the end of this template as follows:

                <xsl:otherwise>
                    <!-- not in a section: do nothing special -->
                    <!-- original code: -->
                    <!-- 
                        <xsl:copy-of select="$title"/>
                    -->
                    <!-- modified code: -->
                    <fo:inline>
                        <xsl:copy-of select="substring-before($title,'|')"/>
                    </fo:inline>
                    <fo:inline space-start="15mm">
                        <xsl:copy-of select="substring-after($title,'|')"/>
                    </fo:inline>
                </xsl:otherwise>

Copy the template "section.heading" to the customization layer stylesheet 
and modify as follows:

            <xsl:choose>
                <xsl:when test="$level=1">
                    <fo:block 
xsl:use-attribute-sets="section.title.level1.properties">
                        <!-- original code: -->
                        <!-- 
                            <xsl:copy-of select="$title"/>
                        -->
                        <!-- modified code: -->
                        <fo:inline>
                            <xsl:copy-of 
select="substring-before($title,'|')"/>
                        </fo:inline>
                        <fo:inline space-start="11.5mm">
                            <xsl:copy-of 
select="substring-after($title,'|')"/>
                        </fo:inline>
                    </fo:block>
                </xsl:when>
                <xsl:when test="$level=2">
                    <fo:block 
xsl:use-attribute-sets="section.title.level2.properties">
                        <!-- original code: -->
                        <!-- 
                            <xsl:copy-of select="$title"/>
                        -->
                        <!-- modified code: -->
                        <fo:inline>
                            <xsl:copy-of 
select="substring-before($title,'|')"/>
                        </fo:inline>
                        <fo:inline space-start="10mm">
                            <xsl:copy-of 
select="substring-after($title,'|')"/>
                        </fo:inline>
                    </fo:block>
                </xsl:when>

Yes, the space between the number and the text is hard-coded and this will 
break, if the font sizes for chapter and section titles are changed.
A better solution would be to position the title text relative to the left 
border of the page. But I don't know how to do this.

Johannes

Am 11.11.2009 um 10:16 schrieb Johannes Katelaan:

> Hi!
>
> In my customization layer I changed the chapter titles as follows:
>
>   <xsl:param name="local.l10n.xml" select="document('')"/>
>   <l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0";>
>       <l:l10n language="de">
>           <l:context name="title-numbered">
>               <l:template name="chapter" text="%n %t"/>
>           </l:context>
>       </l:l10n>
>   </l:i18n>
>
> I did this to get rid of the word "Kapitel" in the German chapter title. 
> This work fine. So I get chapter titles in the form "number and text" now.
>
> My question: Is it possible to change the amount of space between the 
> number and the text? I tried to insert additional space characters between 
> the %n and the %t, but this had no effect at all.
>
> In my final layout I intend to have something like this:
>
> 1         title chapter one
> 1.1       title section level one
> 1.1.1     title section level two
>
> with all the texts starting at the same distance from the left border of 
> the paper.
>
> Is this possible?
>
> Johannes
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>


---------------------------------------------------------------------
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]