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]

Reply via email to