Hi Keiron, I think this is a good start. I especially like the illustration which covers all aspects of the problem.
I have some suggestions for the proposed text (see below). -Karen Keiron Liddle wrote: > > Hi devs, > > I have attached a picture of how I think this process should work (in > principle not necessarily with actual areas or code). > > The spec should say something like: > > 4.7.2 > A block level formatting object which contains inline level formatting > objects that will create inline areas will create lines. "A block level formatting object may contain both other block-level and inline level formatting objects. The block level FO creates and returns a block area or several block areas if it is split across more than one column or page." > Any block level areas that are return[ed] by child formatting objects will > be placed as direct children of this block area. > Any inline level areas which are[a] return[ed] by child formatting objects > will be placed into line areas. > Consecutive inline areas will be placed into line areas. Minor corrections in "[]" above. > The sequence of child areas returned to this block area will be handled > so that a sequence of inline areas will be placed into a sequence of > line areas and block areas will be placed in the correct order. Not sure this is quite clear enough; it also needs to express the idea that the ordering between the intermingled blocks and inlines is correct. > (part 5. point 1 then says that any child fo that returns a block area > means that the block area is a direct child of the current block area) > > 4.7.3 > An inline level formatting object creates and returns inline areas and > returns any block areas. Each line area can contain only one inline area > created by the inline level formatting object. This inline area is > created by adding child inline areas that are allowed in the parent line > area (it is not required to fit, eg. no wrap). I'm not sure this is the right place to mention linebreak and overflow issues. The main idea is that an inline-level FO creates at least one inline area which holds inline areas generated and returned by any inline level child FOs. It might generate several inline areas, each one being placed in a new line area, if all its content doesn't fit in a single line. If the inline has any block-level FO descendants the block areas which they generate are directly returned by the inline FO. > 6.6.7 (and other inline fo's) > Areas: > The fo:inline returns these areas, any block areas, any > page-level-out-of-line ... > > ---------------- > > So does that make more sense? > I think some of the confusion is that a block area can create multiple > block areas but this only occurs at page/column breaks. I assume you mean a "block level FO can create multiple block areas". And similarly, an inline level FO can create multiple inline areas if it is broken into several lines. > Regards, > Keiron. > > ------------------------------------------------------------------------ > Name: line.svg > line.svg Type: image/svg > Encoding: base64 > > Name: line.gif > line.gif Type: GIF Image (image/gif) > Encoding: base64 > > ------------------------------------------------------------------------ > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, email: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]