Patent ID: 7698637

Claim:
A computer-implemented method for laying out at least one footnote comprising a footnote reference within body text and footnote text corresponding to each footnote reference on a page, the method comprising: communicating, from a document manager to a layout manager, a request to layout the page, wherein communicating, from the document manager to the layout manager, comprises implementing callback routines comprising a callback code, the callback code enabling the layout manager to query the document manager for information necessary to lay out the page; requesting, by the layout manager employing the callback code, for additional information regarding the page; providing, by the document manager, to the layout manager the additional information comprising a style of text to be laid out, the style of text indicating a typestyle and a text size; laying out the page by the layout manager, wherein laying out the page by the layout manager comprises: laying out the body text including the at least one footnote reference; laying out the footnote text for the at least one footnote reference on the page, the footnote text being laid out in at least one column; determining whether the page includes an unacceptable amount of white space, the unacceptable amount of white space comprising an amount of white space capable of holding another complete footnote; in response to determining that the page includes the unacceptable amount of white space, laying out the footnote text for the at least one footnote reference in at least one additional column; placing a dividing line between the body text and the footnote text, the dividing line serving as a bottom of the page for a figure on the page and prohibits the figure from being placed below the dividing line; determining whether an acceptable layout has been achieved; determining if additional white space is available; laying out the footnote text in the located available white space if it is determined that the acceptable layout has not been achieved; and displaying, on an electronic display device, the page.