def lines_to_latex(linelist, baselevel=0, startstr='\\begin{itemize}'):
    """Convert a list of pyp_parser.lines into latex code, accounting
    for the possiblity that the lines may contain nested lists
    (itemize)."""
    line_parser = env_popper.pyp_env_popper(linelist, def_level=0)
    line_parser.Execute()
    outlist = pytexutils.objlist_to_latex(line_parser.objlist, \
                               Document_mapper,
                               baselevel=baselevel, \
                               startstr=startstr)
    return outlist
    def to_latex(self, baselevel=1):
        reveal = self.reveal
        part1 = '\\begin{frame}%[label=current]'
        if self.fragile:
            part1 = '\\begin{frame}[fragile]%,label=current]'

        startstr = '\\begin{itemize}'
        if reveal:
            startstr += '[<+-| alert@+>]'

        outlist = [part1,'\\frametitle{%s}'%self.title]
        if self.verb:
            list2 = [item.string for item in self.body_lines]
            outlist += list2
        else:
            mainlist = pytexutils.objlist_to_latex(self.objlist, \
                                        Beamer_slide_mapper, \
                                        baselevel=baselevel, \
                                        startstr=startstr)
            outlist.extend(mainlist)
##             prev_level = 1
##             for item in self.objlist:#body_lines:
##                 cur_ws = ws*(item.level-1)
##                 if item.level < prev_level and (prev_level > 1):
##                     prev_ws = ws*(prev_level-1)
##                     close_list = [prev_ws+'\\end{itemize}']*(prev_level-item.level)
##                     outlist.extend(close_list)
##                 if item.level <= 1:
##                     if Beamer_slide_mapper.has_key(type(item)):
##                         my_class = Beamer_slide_mapper[type(item)]
##                         my_instance = my_class(item)
##                         outlist.extend(my_instance.to_latex())
##                     else:
##                         outlist.append(item.string)
##                 if item.level > prev_level:
##                     outlist.append(cur_ws+startstr)
##                 if item.level >=2:
##                     outlist.append(cur_ws+'\\item '+item.string)
##                 prev_level = item.level

##             #close any open itemize's:
##             if prev_level != 0:
##                 num_to_close = prev_level-1
##                 for n in range(num_to_close):
##                     cur_ws = (num_to_close-n)*ws
##                     outlist.append(cur_ws+'\\end{itemize}')

        outlist.append('\\end{frame}')
        outlist.extend(['']*2)
        return outlist
 def to_latex(self):
     mylist = pytexutils.objlist_to_latex(self.objlist, \
                                          Beamer_slide_mapper, \
                                          baselevel=self.baselevel, \
                                          startstr=self.startstr)
     return mylist