I have published an update at
http://www.leverkruid.eu/GKPLinebreaking/index.html. Bells and
whistles have been implemented. Text alignment has been implemented. I
am working on text-align-last.

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