On Tue, Nov 01, 2005 at 11:40:42PM +0800, Manuel Mall wrote:
> This is probably a question for Luca or Simon.
>
> In LineLM we have this code:
> // ignore KnuthGlue and KnuthPenalty objects
> // at the beginning of the line
> seqIterator = seq.listIterator(iStartElement);
> tempElement = (KnuthElement) seqIterator.next();
> while (!tempElement.isBox() && seqIterator.hasNext()) {
> tempElement = (KnuthElement) seqIterator.next();
> iStartElement++;
> }
> What is the background to this? This seems to interfere with certain
> combinations of white-space-collapse="false" and
> white-space-treatment="preserve/ignore-if-before-linefeed". I think
> there is similar code to remove trailing stuff with similar
> interference.
Glue and penalty items are removed at the start of a line. This is
part of the Knuth algorithm. It does not touch the matter of
white-space-collapse. If there is whitespace that may not be
removed/collapsed at the start of the line, it must be protected by a
preceding zero-width box. I.o.w., the value of white-space-collapse
needs to be taken into account at the phase of getNextKnuthElements.
Simon
--
Simon Pepping
home page: http://www.leverkruid.nl