The Web Maestro wrote: > I don't know how the spec deals with this, but I doubt the > spec cares which algorithm is used. That said, would it be a > good idea to determine which algorithm to use based on > something in userconfig.xml or something? If the Knuth system > is more 'expensive' in terms of resources, we could make > non-Knuth the default, and enable Knuth via a config file.
Hi Clay: The good news is that this is an excellent idea. The bad news is that FOP's determination to not even tolerate more than one algorithm is what drove FOP and FOray apart. So you have stumbled in to a somewhat sensitive area, which might explain the absence of responses (so far). BTW, since it is relevant here, thanks for your kind comments last week in another thread. You are ever the peacemaker, a very useful role. As long as the differences remain as great as they are, we *need* more than one FO implementation. In the meantime, I am much more useful and productive outside of FOP than I am in it, and, the FOP developers probably are also. To my perhaps still naive mind, layout consists of exactly two tasks: 1) finding line-breaks within logical blocks (nested blocks consisting of a new logical block), and 2) finding page-breaks between and within logical blocks. All other tasks can be conveniently handled within the two data structures, not being dependent on any strategy. The Knuth-style algorithm is by definition a total-fit algorithm. The scope of such an algorithm for the first task is the logical block itself. The scope of the second task is the page-sequence. So, to implement a Knuth-style algorithm (itself a good idea) for item 2, requires the ability to see an entire page-sequence in the AreaTree at one time. I am a little confused about whether FOP's design will even allow that to happen right now. I understood both Keiron's and Finn's design ideas (and Peter West's also) to be releasing pages from the AreaTree long before a page-sequence was even completely parsed. However, I may have misunderstood, especially Finn's, which I am especially fuzzy on. I read somewhere that Peter Karow was going to try to implement a Knuth-style algorithm for URW, and I have tried desperately and unsuccessfully to get a copy of his book on the topic. If anybody knows that status of that effort or how to find his out-of-print books, please let us know. The general approach that FOray hopes to take eventually is a first-fit algorithm for the initial pass through a page-sequence, then a second optimization look that I hope to make do a Knuth-style evaluation. That may be sub-optimal, but it is my best guess right now about a reasonable way to proceed. Victor Mote