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
