You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-dev@xmlgraphics.apache.org by Simon Pepping <sp...@leverkruid.eu> on 2006/05/01 20:20:04 UTC

Re: Generalized Knuth-Plass Linebreaking Algorithm

Hello,

During the past weeks I added a test facility. This allows one to feed
test texts in an XHTML-like document. It is now available on my web
site, http://www.leverkruid.eu/GKPLinebreaking/index.html. Since
publication, I discovered that there is a problem with the treatment
of soft-hyphens. I am working on it.

Note that I am changing web domain from nl to eu.

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.
> 
> See http://www.leverkruid.nl/GKPLinebreaking/index.html.
> 
> Please, let me know what you think of it.
> 
> Regards, Simon
> 
> -- 
> Simon Pepping
> home page: http://www.leverkruid.nl
> 

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

Re: Knuth linebreaking elements for Formatting Objects

Posted by Simon Pepping <sp...@leverkruid.eu>.
On Mon, May 01, 2006 at 08:20:04PM +0200, Simon Pepping wrote:
> Hello,
> 
> During the past weeks I added a test facility. This allows one to feed
> test texts in an XHTML-like document. It is now available on my web
> site, http://www.leverkruid.eu/GKPLinebreaking/index.html. Since
> publication, I discovered that there is a problem with the treatment
> of soft-hyphens. I am working on it.

The problem has been solved. In doing so I introduced a new element,
box-penalty. I also added a section to my essay about a derivation of
the elements. Finally I changed the title into something less
generalized.

> Note that I am changing web domain from nl to eu.
> 
> 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.

Regards, Simon

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