code: def text(self):
          r
          for descendant in self.contents:
              if isinstance(descendant, TokenWithPosition):
                  yield descendant
              elif hasattr(descendant, 'text'):
                  yield from descendant.text
docs: r"""All text in descendant nodes.
  
          This is equivalent to contents, keeping text elements and excluding
          Tex expressions.
  
          >>> from TexSoup import TexSoup
          >>> soup = TexSoup(r'''
          ... \begin{itemize}
          ...     \begin{itemize}
          ...         \item Nested
          ...     \end{itemize}
          ... \end{itemize}''')
          >>> next(soup.text)
          'Nested\n    '