Hello,
I reexamined the marker problematic again.
There are a few issues not yet mentioned. First some odd wording:
"The properties of the fo:retrieve-marker impose a hierarchy of
 preference on the areas of the area tree..."
Unfortunately, they don't define this hierarchy directly but
instead define how preferences are derived from this hierarchy.
"Every area in the hierarchy is considered preferential to, or
 "better" than, any area below it in the hierarchy."
I suppose the 'hierarchy' mentioned here is the marker preference
hierarchy rather than the area tree hierarchy. Further:
"When comparing two areas to determine which one is better, the
 terms "first" and "last" refer to the pre-order traversal order
 of the area tree."
It's hard to see what purpose the marker preference hierarchy
serves, as the real definition of the preferences is still done
in terms of the area tree hierarchy.

The quote above shows another problem: I'm used to the term
"pre-order" in context of binary trees, where it means that
first the "first"/"left" subtree is visited, then the node
itself, then the "last"/"right" subtree. Unfortunately, the
area tree is hardly a binary tree. How should the term be
interpreted in this context?

Let's take an example:
 <fo:block id="A">
   <fo:marker marker-class="I" id="m1"/>
   <fo:block id="B">
     <fo:marker marker-class="I" id="m2"/>
     ...
   </fo:block>
 </fo:block>
Block B is, according to my interpretation of "pre-order"
before block A, therefore retrieving class I with
first-starting-within-page would get marker 2. Also,
retrieving with either last-starting-within-page or
last-ending-within-page should return marker m1.

A "common sense" approach should probably yield
first-starting-within-page: m1
last-starting-within-page: m2
last-ending-within-page: m1
The last one is of course debatable, there are arguments
(using a "glossary" example) in favor of resulting in m2.

If "hierarchy" in
"Every area in the hierarchy is considered preferential to, or
 "better" than, any area below it in the hierarchy."
is interpreted as "area tree hierarchy", always m1 would be
retrieved, because the area generated by block A has both
isFirst() and isLast() and is always "above" the area from
block B. This interpretation is a bit better than the "to
the letter" interpretation for first-starting-within-page
and last-ending-within-page but doesn't really fit well for
last-starting-within-page.

Another interesting example
 <fo:block id="A">
   <fo:marker marker-class="I" id="m1"/>
   <fo:block id="B" break-after="page">
     <fo:marker marker-class="I" id="m2"/>
     ...
   </fo:block>
 </fo:block>
I interpret this that the area block A creates two areas,
one of the first and one zero size area on the second page.
Mind you, this is not at all clear from the spec, I more or
less grabbed this out of the blue.
The "common sense" result for the first page would mean
last-ending-within-page returns m2.
On the second page, every retrieve-position retrieves m1,
of course.

J.Pietschmann


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]



Reply via email to