Hi, Jeremias Maerki a écrit : > On 22.03.2007 11:41:28 Vincent Hennebert wrote: >> Hi,
<snip/> >> This raises the question as to how retained borders and paddings are >> handled: their widths will count in the penalty width of resolved break >> elements. How are borders from elements surrounding the list handled? >> >> Example: >> <fo:block border-after-width.length="4pt" >> border-after-width.conditionality="retain" >> border-after-style="solid" border-after-color="red"> >> <fo:block-container> >> <fo:block border-after-width.length="4pt" >> border-after-width.conditionality="retain" >> border-after-style="solid" border-after-color="blue"> >> some text... >> </fo:block> >> </fo:block-container> >> </fo:block> >> >> IIUC the element list will be cut at the beginning of the >> block-container. > > Not cut. BlockContainerLM starts a new element list. Ok. >> How will the red border of the enclosing block be taken >> into account in the penalties produced by SpaceResolver on the list of >> elements inside the block-container? > > Not at all, since they don't interact according to the rules in 4.3.1: > http://www.w3.org/TR/xsl11/#area-space Well, the width of the border from the outer block must still be considered. IIUC the inner block generates pending elements for its border-after, which will be converted by SpaceResolver into a Knuth penalty at each legal break of the sequence it generates, with a penalty length equal to the border width. At the outer block level, each penalty from subsequences must be modified to also take the border-after of the outer block into account. At least that's a way to implement things. Is that actually implemented that way? Vincent