docs: def assemble_caption(begin_line, begin_index, end_line, end_index, lines):
      """
      Take the caption of a picture and put it all together
      in a nice way.  If it spans multiple lines, put it on one line.  If it
      contains controlled characters, strip them out.  If it has tags we don't
      want to worry about, get rid of them, etc.
  
      :param: begin_line (int): the index of the line where the caption begins
      :param: begin_index (int): the index within the line where the caption
          begins
      :param: end_line (int): the index of the line where the caption ends
      :param: end_index (int): the index within the line where the caption ends
      :param: lines ([string, string, ...]): the line strings of the text
  
      :return: caption (string): the caption, formatted and pieced together
      """
  
      # stuff we don't like
      label_head = '\\label{'
  
      # reassemble that sucker
      if end_line > begin_line:
          # our caption spanned multiple lines
          caption = lines[begin_line][begin_index:]
  
          for included_line_index in range(begin_line + 1, end_line):
              caption = caption + ' ' + lines[included_line_index]
  
          caption = caption + ' ' + lines[end_line][:end_index]
          caption = caption.replace('\n', ' ')
          caption = caption.replace('  ', ' ')
      else:
          # it fit on one line
          caption = lines[begin_line][begin_index:end_index]
  
      # clean out a label tag, if there is one
      label_begin = caption.find(label_head)
      if label_begin > -1:
          # we know that our caption is only one line, so if there's a label
          # tag in it, it will be all on one line.  so we make up some args
          dummy_start, dummy_start_line, label_end, dummy_end = \
                  find_open_and_close_braces(0, label_begin, '{', [caption])
          caption = caption[:label_begin] + caption[label_end + 1:]
  
      caption = caption.strip()
  
      if len(caption) > 1 and caption[0] == '{' and caption[-1] == '}':
          caption = caption[1:-1]
  
      return caption