I have published another update at
http://www.leverkruid.eu/GKPLinebreaking/index.html. With this update
I consider my essay and test implementation complete.

Regards, Simon

On Mon, Apr 03, 2006 at 09:38:13PM +0200, Simon Pepping wrote:
> Hello,
> Some time ago Manuel Mall pointed out a number of problems with
> linebreaking in FOP. Specifically, there are some hard to solve
> problems with suppression of whitespace before a linebreak.
> I propose that the problems can be solved using a generalized set of
> building blocks (a.k.a. Knuth elements):
> 1.  Box, with elastic width. A box has two boolean properties:
>     1.  suppress-at-linebreak, default value false. According to
>         the FO specification, in the default case in an FO text
>         it is true for the space character U+0020. The user may
>         deviate from the default and set it to false for the
>         space character, and to true for other characters.
>     2.  is-BP, default value false. This property indicates
>         whether a box corresponds to a border and/or a padding
>         width. It is true for boxes which are generated by
>         padding widths and borders.
> 2.  Penalty, with a penalty value and two elastic widths. When the
>     penalty element is the chosen linebreak, it contributes the
>     first elastic width before the linebreak and the second elastic
>     width after the linebreak.
> Penalties are legal breakpoints. Boxes are not.
> On my website I have published a detailed account of my proposal in
> the essay 'Generalized Knuth-Plass Linebreaking Algorithm'. In order
> to test my ideas in practice, I have written a simple implementation
> in Java of this approach.

Simon Pepping
home page: http://www.leverkruid.eu

Reply via email to