RE: nested inlines and baseline scaling

You correct that there is a problem in the draft.

The text as written now works only in the case where 
the font sizes are all the same, and in that case the 
ancestor/descendant constraints are superfluous.

To correct the draft, we will change the first paragraph 
to read:

3. For any inline-area descendant I of P, the distance in
   the shift-direction from the dominant baseline of the
   parent Q of I, to the alignment-point of I equals the
   offset between the dominant baseline of Q and the baseline
   of Q corresponding to the alignment-baseline trait of I,
   plus the baseline-shift for I.

This removes the superfluous constraints and precisely
captures our examples.
 
Paul Grosso
for the XSL FO SG

> -----Original Message-----
> From: xsl-editors-request@w3.org 
> [mailto:xsl-editors-request@w3.org] On Behalf Of Manuel Mall
> Sent: Tuesday, 2005 September 27 10:03
> To: xsl-editors@w3.org
> Subject: nested inlines and baseline scaling
> 
> 
> My apologies for this relatively long post. I am struggling to
> come to terms with some of the fundamentals of line building.
> 
> The spec in 4.6.1 defines what a 'properly stacked' inline-area
> is. Items 1. and 2. deal with stacking in IPD and item 3 repeated here
> deals with stacking in the BPD:
> 
> "3. For any inline-area descendant I of P, the distance in the shift-
> direction from the dominant baseline of P to the alignment-point of I
> equals the offset between the dominant baseline of P and the 
> baseline of
> P corresponding to the alignment-baseline trait of I, plus the sum of
> the baseline-shifts for I and all of its ancestors which are 
> descendants
> of P.
> 
> The first summand is computed to compensate for mixed writing systems
> with different baseline types, and the other summands involve 
> deliberate
> baseline shifts for things like superscripts and subscripts."
> 
> In 7.13 there are examples given and they all work with the above
> definition.
> 
> Now lets take this example:
> 
> <fo:block>Some text
>   <fo:inline font-size=".5em"
>         dominant-baseline="reset-size"
>         alignment-baseline="text-before-edge">top
>   </fo:inline>
> </fo:block>
> 
> The inline gets a new baseline table scaled to its font-size 
> because of
> the dominant-baseline="reset-size" setting. Note that the
> dominant-baseline-indentifier has not changed. Its still "alphabetic"
> although that baseline does not align any more between the two areas
> because of the rescaling of the baseline table. Now lets give the text
> "top" a small suffix.
> 
> <fo:block>Some text
>   <fo:inline font-size=".5em"
>         dominant-baseline="reset-size"
>         alignment-baseline="text-before-edge">top
>     <fo:inline font-size=".5em" alignment-baseline="central">
>     tiny</fo:inline>
>   </fo:inline>
> </fo:block>
> 
> So "tiny" becomes some small text aligned on the central baseline as
> established after rescaling. The problem is that the positioning of
> "tiny" violates the rule 3. above on proper stacking with 
> respect to the
> line-area created by the fo:block. It is OK with respect to its direct
> ancestor but it fails when applied recursively. This is 
> because rule 3.
> doesn't cater at all for rescaling of the baseline table, it 
> only deals
> with changing the alignment point (In my example its first moved to
> "text-before-edge" and then to "central") and baseline-shifts. But I
> couldn't find anywhere in the spec a notion that baseline rescaling
> involves a baseline shift. The problem of course is that when 
> a baseline
> table is rescaled there is no uniform shift and the shift amount per
> baseline also depends on the alignment.
> 
> May be rule 3 is not meant to be applied recursively but than it its 
> formulated inconsistently with the rest of the spec.
> 
> Still seriously confused
> 
> Regards
> 
> Manuel Mall
> 
> 

Received on Thursday, 26 January 2006 15:06:10 UTC