Hi,

I have a question for the XSL-FO scholars out there. Given the following
FO snippet:
    <fo:block>Lorem ipsum dolor <fo:inline id="outer"
      border="1pt solid red"><fo:inline id="inner"
        font-size="30pt">sit</fo:inline></fo:inline> amet</fo:block>

how tall is the border supposed to be?

Section 4.6, “Inline-areas”, states that “An inline-area with
inline-area children has a content-rectangle which extends from its
dominant baseline by its text-depth in the block-progression-direction,
and in the opposite direction by its text-altitude”.

In the case of the outer inline-area, text-altitude and text-depth are
taken from the font metrics and amount to 11100mpt. So the
border-rectangle is 11.1pt high.

The inner inline-area has a font-size of 30pt, which makes its
content-rectangle 27750mpt high, which largely overflows the
border-rectangle of the outer inline-area.

Have I missed anything, or is this behaviour utterly counter-intuitive?

Note that the height of the inner inline-area still is taken into
account when building lines; this is explained in details in section
4.5, “Line-areas” but, basically, when the inline-stacking-strategy is
left to its default value, the maximum-line-rectangle is used and
determined according to the content-rectangles of /all/ the inline-areas
stacked within the line-area.

I came to think about this issue when it was mentioned to me that only
the bottom part of an image surrounded by an fo:basic-link element is
active. The description of fo:basic-link closely follows the one for
fo:inline so the explanation above applies. If I understand well, the
only way to increase the content-rectangle of the basic-link area is to
increase the font size, but that font-size would need to be computed in
a pre-processing step. It would have to take into account the active
font where the basic-link occurs, and the size of the image, and
possibly content-height set on the fo:external-graphic. That would be
horribly tricky and fragile.


Any thoughts?
Thanks,
Vincent

Reply via email to