- \def\chapentry ##1##2##3{}
- \def\secentry ##1##2##3##4{\advancenumber{chap##2}}
- \def\subsecentry ##1##2##3##4##5{\advancenumber{sec##2.##3}}
- \def\subsubsecentry ##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
- \let\appendixentry = \chapentry
- \let\unnumbchapentry = \chapentry
- \let\unnumbsecentry = \secentry
- \let\unnumbsubsecentry = \subsecentry
- \let\unnumbsubsubsecentry = \subsubsecentry
+ % Read toc first time in order to get the counts of subentries for
+ % \pdfoutline.
+ \def\chapentry##1##2##3{}
+ \def\secentry##1##2##3##4{\advancenumber{chap##2}}
+ \def\subsecentry##1##2##3##4##5{\advancenumber{sec##2.##3}}
+ \def\subsubsecentry##1##2##3##4##5##6{\advancenumber{subsec##2.##3.##4}}
+ % use \def rather than \let here because we redefine \chapentry et
+ % al. a second time, below.
+ \def\appendixentry{\chapentry}
+ \def\unnumbchapentry{\chapentry}
+ \def\unnumbsecentry{\secentry}
+ \def\unnumbsubsecentry{\subsecentry}
+ \def\unnumbsubsubsecentry{\subsubsecentry}