1. A method of laying out content-driven treetables having at least one cell, comprising: determining the total number of characters contained in each subtree; assigning an initial width to the treatable as a whole, used as the initial width of a cell representing the root of the tree; assigning an initial width to each child cell of the treetable, as a proportion of the width assigned to the parent cell representing its parent node, which proportion is based on the number of characters in the subtree headed by the node represented by the child cell, relative to the total number of characters in all subtrees headed by children of the node's parent. 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 said width assignment.