summaryrefslogtreecommitdiff
path: root/toc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'toc.tex')
-rw-r--r--toc.tex48
1 files changed, 48 insertions, 0 deletions
diff --git a/toc.tex b/toc.tex
new file mode 100644
index 0000000..96205f9
--- /dev/null
+++ b/toc.tex
@@ -0,0 +1,48 @@
+\newwrite\tocout
+\def\lastsec{}
+\newcount\subseccount
+\newtoks\subsecs\subsecs={}
+\def\toc{
+ \maketoc
+ \openout\tocout=bguide.toc
+ \def\section##1{\makeoutline
+ \def\lastsec{##1}
+ \thesection{##1 \pdfdest name {##1} fit}
+ \write\tocout{\noexpand\tocentry{##1}{\number\pageno}{0pt}}
+ }
+ \def\subsection##1{%
+ \advance\subseccount by 1
+ \subsecs=\expandafter{\the\subsecs\pdfoutline goto name {##1}{##1}}
+ \thesubsection{##1 \pdfdest name {##1} fit}
+ \write\tocout{\noexpand\tocentry{##1}{\number\pageno}{.5in}}
+ }
+}
+\def\tocentry#1#2#3{%
+ \count1=#2\advance\count1 by 1
+ \line{\hskip#3%
+ \pdfstartlink goto page \number\count1{}
+ {\color{red} #1}
+ \pdfendlink
+ \cleaders\hbox to .1in{\hfil .\hfil}\hfil #2}%
+}
+\def\thesection#1{#1}
+\def\thesubsection#1{#1}
+\def\section#1{\thesection{#1}}
+\def\subsection#1{\thesubsection{#1}}
+% temporary definitions for pre-toc sections
+\def\maketoc{%
+ {\noindent\sectionfont Table of Contents}
+
+ \openin15=bguide.toc \ifeof15 \else
+ \input bguide.toc\fi
+ \closein15
+}
+\def\makeoutline{%
+ \ifx\lastsec\empty\else\pdfoutline goto name
+ {\lastsec} count \number\subseccount{\lastsec}
+ \the\subsecs\subsecs={}\subseccount=0\fi
+}
+\def\fintoc{%
+ \closeout\tocout
+ \makeoutline
+}