'Return column specification for longtable.
Assumes reST line length being 80 characters.
Table width is hairy.
ABC DEF
usually gets to narrow, therefore we add 1 (fiddlefactor).'

def get_colspecs(self):

    width = 80
    total_width = 0.0
    for node in self._col_specs:
        colwidth = (float((node['colwidth'] + 1)) / width)
        total_width += colwidth
    self._col_width = []
    self._rowspan = []
    factor = 0.93
    if (total_width > 1.0):
        factor /= total_width
    bar = self.get_vertical_bar()
    latex_table_spec = ''
    for node in self._col_specs:
        colwidth = ((factor * float((node['colwidth'] + 1))) / width)
        self._col_width.append((colwidth + 0.005))
        self._rowspan.append(0)
        latex_table_spec += ('%sp{%.3f\\locallinewidth}' % (bar, (colwidth + 0.005)))
    return (latex_table_spec + bar)
