Hi Markus,
Glad you found a workaround.  The purpose of the fo:inlines is as follows:

1. The first one with keep-with-next.within-line="always" is intended to keep the text of the entry connected to the dot leader. If a line is long and has to break, it breaks by carrying the last word or words of the entry, plus dot leader, plus page number to the next line. That prevents the dot leader from breaking to the next line by itself, leaving the text above it. This is a typesetting nicety, not a necessity.

2. The second one with keep-together.within-line="always" is intended to keep the dot leader connected to the page number. That prevents the page number from breaking to the next line by itself, leaving the dot leader above it.

If removing them makes no difference in your output, it may be that FOP does not support such keeps for fo:inline. The FOP compliance page isn't quite clear on that:

http://xmlgraphics.apache.org/fop/compliance.html

Bob Stayton
Sagehill Enterprises
[email protected]


----- Original Message ----- From: <[email protected]>
To: <[email protected]>
Sent: Saturday, July 30, 2011 2:47 PM
Subject: Re: AW: [docbook-apps] ragged index with recent fop snapshots


ben.guillon writes:
> Thanks Mike and Robert for mentionning dblatex. Dblatex can detect the
> figure format (by checking the filename suffix),  automatically convert
> SVG to PDF, and then compile the tex file. For SVG figures, it calls
> inkscape.
>
> Therefore, provided that inkscape(*) is installed there is no need to
> convert manually the figures.
>

Hi,

it took a while to sort things out. This is a brief summary of what
has happened since:

1) I gave dblatex a whirl. It took a while to install missing packages
from CTAN until dblatex ran at all. Eventually I got stuck when
(La)TeX told me that a glyph was missing from a font that it intended
to use. My document uses quite a few greek characters and other
symbols, but I wouldn't expect LaTeX to have a problem with that. As it
wasn't apparent to me how to move on from there, I had to give up.

2) I obtained XEP from RenderX. I was not able to make this work
either on my FreeBSD box. XEP was not able to make use of the
installed PDF core fonts, resulting in a document mostly made up from
hashes. However, as far as I could tell the TOC page numbers were
aligned :-) I tried to add the custom fonts that I use according to
the instructions shipped with XEP, but I couldn't find any indication
that XEP would pick up this config file. Moreover, XEP was not able to
handle approx. half of the 130 images (a mixture of SVG, TIFF, JPEG,
and PNG created with an eclectic assortment of software). I had to
give up on that too.

3) I asked the folks on the fop mailing list. They think it may indeed
be a fop bug, but they kindly provided a workaround which does the
trick. I've added the following to my customization layer (taken from
fo/autotoc.xsl):

<xsl:template name="toc.line">
 <xsl:param name="toc-context" select="NOTANODE"/>

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

 <xsl:variable name="label">
   <xsl:apply-templates select="." mode="label.markup"/>
 </xsl:variable>

 <fo:block xsl:use-attribute-sets="toc.line.properties">
   <!--    <fo:inline keep-with-next.within-line="always"> -->
     <fo:basic-link internal-destination="{$id}">
       <xsl:if test="$label != ''">
         <xsl:copy-of select="$label"/>
         <xsl:value-of select="$autotoc.label.separator"/>
       </xsl:if>
       <xsl:apply-templates select="." mode="titleabbrev.markup"/>
     </fo:basic-link>
     <!--    </fo:inline>
   <fo:inline keep-together.within-line="always"> -->
     <xsl:text> </xsl:text>
     <fo:leader leader-pattern="dots"
                leader-pattern-width="3pt"
                leader-alignment="reference-area"
                keep-with-next.within-line="always"/>
     <xsl:text> </xsl:text>
     <fo:basic-link internal-destination="{$id}">
       <fo:page-number-citation ref-id="{$id}"/>
     </fo:basic-link>
     <!--    </fo:inline> -->
 </fo:block>
</xsl:template>

The trick is to remove the fo:inline elements (I've commented them out
so they're easier to spot for you).

It is no big deal to do this in a customization layer. However, what
is the purpose of these elements? Their presence does not seem to make
any difference except that it breaks the page number alignment.

regards,
Markus

--
Markus Hoenicka
http://www.mhoenicka.de
AQ score 38

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to