protected void layoutBody(Element e, LayoutState ls) {
   ls.pushBlock(e);
   for (Element c : getChildElements(e)) {
     if (isElement(c, ttDivisionElementName)) layoutDivision(c, ls);
   }
   ls.pop();
 }
 protected void layoutParagraph(Paragraph p, LayoutState ls) {
   ls.pushBlock(p.getElement());
   for (LineArea l : new ParagraphLayout(p, ls).layout()) {
     ls.addLine(l);
   }
   AreaNode b = ls.peek();
   if (b instanceof BlockArea) alignLineAreas((BlockArea) b, ls);
   ls.pop();
 }
 protected void layoutDivision(Element e, LayoutState ls) {
   ls.pushBlock(e);
   for (Element c : getChildElements(e)) {
     if (isElement(c, ttDivisionElementName)) {
       layoutDivision(c, ls);
     } else if (isElement(c, ttParagraphElementName)) {
       layoutParagraph(c, ls);
     }
   }
   ls.pop();
 }