Simon, I've tried to think your example through. If I read the spec right about space resolution then I get the impression that we may need to do more in this area than find a suitable box/glue/penalty combination. There may be several spaces which need to be taken into account during resolution. There's the precedence and the conditionality that needs to be evaluated. I think we may need to create special elements that can hold this information (or reference it). They need to be distinguishable so we can apply the resolution rules properly.
I believe your example should then look like this: - box - penalty (w=0, p=infinite) - space - glue (w=0, y=0, z=0) - space - penalty (w=0, p=infinite) - box A more complex example would look like this: <fo:block space-after="5pt"> <fo:block>a line</fo:block> <fo:block space-after="3pt"> blah blah </fo:block> </fo:block> <fo:block space-before="10pt"> blah bla </fo:block> - box ("a line") - box ("blah blah") - penalty (w=0, p=infinite) - space (w=3pt, ref to the space property) - penalty (w=0, p=infinite) - space (w=5pt, ref to the space property) - glue (w=0, y=0, z=0) - space (w=10pt, ref to the space property) - penalty (w=0, p=infinite) - box The algorithm would have to track down the space element before and after the break and then apply the space resolution rules. The space elements would behave much like glue elements. What do you think? On 25.02.2005 22:50:17 SimonPepping wrote: > +=== Space specifiers === > + > +When the space specifiers resolve to zero around a page break, we are > +in the same situation as that of a word space in line breaking. It is > +represented by the sequence `box - glue - box`. > + > +When the space specifiers do not resolve to zero around a page break, > +we are in the same situation as that of a word space in line breaking > +in the case of centered lines. It is represented by the sequence > +{{{ > +box - infinite penalty - glue(ha) - zero penalty - glue(hn-ha-hb) - zero > width box - infinite penalty - glue(hb) - box > +}}} > +where ha is the bpd of > +the space-after before the page break, hb is the bpd of the > +space-before after the page-break, hw is the space when there is no > +page break. Jeremias Maerki