This is the mail archive of the docbook-apps@lists.oasis-open.org mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [docbook-apps] xsl-stylesheets: long titles / splitting gentext output


On Fri, Feb 06, 2004 at 11:29:28PM -0800, Bob Stayton wrote:
> > But I'd rather have it look like
> >
> > 2.3.2 This is a title so long that it has to
> >       be broken onto the next line
> >
> > ^^^^^^ This space should be automatically adjusted to the width of the
> > label
> I've formatted section titles with number labels in the manner you want.
> The trick is to customize a template earlier in the sequence to avoid
> having the parse the string returned by the gentext machinery.
[...]
> The label.markup mode returns just the number label for the current element.
> The title.markup mode returns just the title for the current element.
> Those templates are used by the gentext machinery as well.
Thanks a lot, that did it. I had to modify it slightly to fit into the
section/title template in titlepage.mode. There I've inserted the
following:

   <!-- get our own label markup without gentext -->
   <xsl:variable name="label">
    <xsl:apply-templates select="$section" mode="label.markup">
     <xsl:with-param name="allow-anchors" select="1"/>
    </xsl:apply-templates>
    <xsl:text>. </xsl:text>
   </xsl:variable>

   <xsl:variable name="label.length">
    <xsl:value-of select="concat(string-length($label), 'em*0.37')"/>
   </xsl:variable>

   <!-- change title from flat string to list/table, section.heading
        will xsl:copy-of it into place -->
   <xsl:variable name="title">
    <fo:list-block provisional-label-separation="0.2em"
                   provisional-distance-between-starts="{$label.length}">
     <fo:list-item>
      <fo:list-item-label end-indent="label-end()" text-align="start">
       <fo:block>
        <xsl:copy-of select="$label"/>
       </fo:block>
      </fo:list-item-label>
      <fo:list-item-body start-indent="body-start()">
       <fo:block hyphenation-remain-character-count="5"
         hyphenation-push-character-count="5">
        <xsl:apply-templates select="$section" mode="title.markup">
         <xsl:with-param name="allow-anchors" select="1"/>
        </xsl:apply-templates>
       </fo:block>
      </fo:list-item-body>
     </fo:list-item>
    </fo:list-block>
   </xsl:variable>

It works fine and the estimate of length(label)*0.37 is surprisingly
close to what it looked like with just a space.

Thanks again.
-- 
bye, Micha

To unsubscribe from this list, send a post to docbook-apps-unsubscribe@lists.oasis-open.org, or visit http://www.oasis-open.org/mlmanage/.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]