def table(rows, columns, *widths)
         node = TableNode.new(self, rows, columns, *widths)
         yield node if block_given?
         store(node)
         node
      end
def table(rows, columns, *widths)
         node = TableNode.new(self, rows, columns, *widths)
         yield node if block_given?
         store(node)
         node
      end
This method creates a new table node and returns it. The method accepts
 a block that will be passed the table as a parameter. The node is added
 to the node the method is called upon after the block is complete.

 ==== Parameters
 rows::     The number of rows that the table contains.
 columns::  The number of columns that the table contains.
 *widths::  One or more integers representing the widths for the table
            columns.