\ProvidesPackage{txttoc}
\newwrite\@toctxt
\immediate\openout\@toctxt\jobname-toc.txt



\def\@part[#1]#2{%
    \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}%
      \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
      \write\@toctxt{\thepart\space #1 \thepage}%
    \else
      \addcontentsline{toc}{part}{#1}%
      \write\@toctxt{#1 \thepage}%
    \fi
    \markboth{}{}%
    {\centering
     \interlinepenalty \@M
     \normalfont
     \ifnum \c@secnumdepth >-2\relax
       \huge\bfseries \partname\nobreakspace\thepart
       \par
       \vskip 20\p@
     \fi
     \Huge \bfseries #2\par}%
    \@endpart}

\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                       \if@mainmatter
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter}#1}%
                         \write\@toctxt{\thechapter\space #1 \thepage}%
                       \else
                         \addcontentsline{toc}{chapter}{#1}%
                         \write\@toctxt{#1 \thepage}%
                       \fi
                    \else
                      \addcontentsline{toc}{chapter}{#1}%
                      \write\@toctxt{#1 \thepage}%
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}
                    
                    
                    
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth
    \let\@svsec\@empty
  \else
    \refstepcounter{#1}%
    \protected@edef\@svsec{\@seccntformat{#1}\relax}%
  \fi
  \@tempskipa #5\relax
  \ifdim \@tempskipa>\z@
    \begingroup
      #6{%
        \@hangfrom{\hskip #3\relax\@svsec}%
          \interlinepenalty \@M #8\@@par}%
    \endgroup
    \csname #1mark\endcsname{#7}%
    \addcontentsline{toc}{#1}{%
      \ifnum #2>\c@secnumdepth \else
        \protect\numberline{\csname the#1\endcsname}%
      \fi
      #7}%
     \write\@toctxt{%
      \ifnum #2>\c@secnumdepth \else
        \csname the#1\endcsname\space%
      \fi
      #7 \thepage}%
  \else
    \def\@svsechd{%
      #6{\hskip #3\relax
      \@svsec #8}%
      \csname #1mark\endcsname{#7}%
      \addcontentsline{toc}{#1}{%
        \ifnum #2>\c@secnumdepth \else
          \protect\numberline{\csname the#1\endcsname}%
        \fi
        #7}%
        \write\@toctxt{%
        \ifnum #2>\c@secnumdepth \else
          \csname the#1\endcsname\space%
        \fi
        #7 \thepage}%
        }%
  \fi
  \@xsect{#5}}
  
  
\endinput