'Return a pretty-printed string representation of a given edge
in this chart.
:rtype: str
:param width: The number of characters allotted to each
index in the sentence.'

def pretty_format_edge(self, edge, width=None):

    if (width is None):
        width = (50 // (self.num_leaves() + 1))
    (start, end) = (edge.start(), edge.end())
    str = (u'|' + ((u'.' + (u'    ' * (width - 1))) * start))
    if (start == end):
        if edge.is_complete():
            str += u'#'
        else:
            str += u'>'
    elif (edge.is_complete() and (edge.span() == (0, self._num_leaves))):
        str += (((u'[' + ((u'=' * width) * ((end - start) - 1))) + (u'=' * (width - 1))) + u']')
    elif edge.is_complete():
        str += (((u'[' + ((u'-' * width) * ((end - start) - 1))) + (u'-' * (width - 1))) + u']')
    else:
        str += (((u'[' + ((u'-' * width) * ((end - start) - 1))) + (u'-' * (width - 1))) + u'>')
    str += (((u'    ' * (width - 1)) + u'.') * (self._num_leaves - end))
    return (str + (u'|    %s' % edge))
