1. A method of laying out and displaying, on a display, content-driven treetables having at least one cell, comprising: determining a total number of characters contained in each cell, each cell being a subtree headed by a node; assigning an initial width to the treetable as a whole, the initial width of the treetable being a width of a cell representing a root of the treetable; assigning an initial width to a child cell representing a child node of the treetable, as a proportion of a width assigned to a parent cell representing a parent node of the child node, which proportion is based on the number of characters in the subtree headed by the child node, relative to a total number of characters in all subtrees headed by nodes of children of the child node's parent node, wherein at least one of a plurality of child cells having a same parent cell has a height and width that is different from another of the plurality of child cells having the same parent cell; wherein a first child cell of the plurality of child cells having the same parent cell of the treetable has a first content, and a second child cell of the plurality of child cells having the same parent cell has a second content that is larger in size than the first content by a content size difference, the second child cell having the height or width that is larger than the height or width of the first child cell to accommodate the content size difference; determining a modified number of characters associated with each node as an approximate area of a rectangular cell needed to accommodate the content of that node by the width assignment; and adjusting the initial cell widths based on (a) re-computing an amount of content in each cell of the content-driven treetables to account for unused white space in the cells of the content-driven treetables based on the initial cell widths and then (b) reallocating the widths by proportional assignment as above, using the recomputed amount of content.