Vincent,

I have finally studied your prototype. It looks very good. Your method
is basically the same as you put forward during your GSoC work: a
single sequence of feasible nodes, mixing both line and pagebreak
nodes.

I found the programming style quite compact, and had trouble getting
into understanding the code. The naming also did not help: A
LineLayout class which has a member lineLayout which is a Layout
object. A member layouts which has a member layouts. I did some
renaming to make this clearer to myself: OneLevelLayout,
TwoLevelLayout, and layoutsholder which holds a list, called layouts,
of Layouts.

The lineLayout member of LineLayout is somewhat redundant: members
previous and alternatives do not play a role;
lineLayout.progress.partNumber counts the lines in a paragraph, and is
only used to skip the first layout of a paragraph in the layout
dump. This redundant information can be misleading when one tries to
understand the algorithm.

The prototype now needs an input module which allows more testing. The
module should allow one to input boxes of various height. This will
help discover errors in the resulting layout. When I have time I will
try to use a module similar to the one I used in my own prototype for
Knuth elements (see my website).

It would be nice if you would try to enable ms windows users to work
with your prototype: /tmp does not exist on ms windows. Re your wiki
page: dot files can be rendered on ms windows.

Regards, Simon

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

Reply via email to