summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-03-11 20:25:44 +0000
committerKarl Berry <karl@freefriends.org>2015-03-11 20:25:44 +0000
commit07d6e78b6d566bc3372ad15604fa20a935f0c048 (patch)
treea200124d779658b63dca422cc93e391fd5ff14ae /Master/texmf-dist/tex
parentd78773b1bd9f5d2a52f7c8e0c0bc7ffd96841667 (diff)
etoc (11mar15)
git-svn-id: svn://tug.org/texlive/trunk@36485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/generic/etoc/etoc.sty (renamed from Master/texmf-dist/tex/latex/etoc/etoc.sty)470
1 files changed, 237 insertions, 233 deletions
diff --git a/Master/texmf-dist/tex/latex/etoc/etoc.sty b/Master/texmf-dist/tex/generic/etoc/etoc.sty
index 22acc4278c8..172af134d4e 100644
--- a/Master/texmf-dist/tex/latex/etoc/etoc.sty
+++ b/Master/texmf-dist/tex/generic/etoc/etoc.sty
@@ -23,10 +23,10 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{etoc}
- [2015/03/05 v1.07n Completely customisable TOCs (jfB)]
+ [2015/03/10 v1.08 Completely customisable TOCs (jfB)]
%%
%% Package: etoc
-%% Version: 1.07n (2015/03/05)
+%% Version: 1.08 (2015/03/10)
%% License: LPPL 1.3c or later (see etoc.dtx)
%% Copyright (C) 2012-2015 Jean-Francois Burnol <jfbu at free dot fr>
%% Copyright (C) 2014-2015 Christine Roemer <Christine_Roemer at t-online dot de>
@@ -40,6 +40,9 @@
\def\etocinline{\def\Etoc@par{}}
\let\etocnopar\etocinline
\def\etocdisplay{\def\Etoc@par{\par}}% 1.07m 2015/01/23
+\let\Etoc@global\@empty % 1.08 2015/03/10
+\def\etocglobaldefs{\let\Etoc@global\global\let\tof@global\global}
+\def\etoclocaldefs {\let\Etoc@global\@empty\let\tof@global\@empty}
\newif\ifEtoc@jj % book
\newif\ifEtoc@j % part
\newif\ifEtoc@ % chapter
@@ -53,14 +56,15 @@
\newif\ifEtoc@parskip % 1.07d
\newif\ifEtoc@tocwithid
\newif\ifEtoc@standard
-\newif\ifEtoc@part
+\newif\ifEtoc@skipprefix % 1.08
+\newif\ifEtoc@isfirst % 1.08
\newif\ifEtoc@localtoc
\newif\ifEtoc@skipthisone
\newif\ifEtoc@stoptoc
\newif\ifEtoc@notactive
-\newcounter{etoc@tocid}
\newif\ifEtoc@mustclosegroup
\def\etoc@{\etoc@}
+\newcounter{etoc@tocid}
\newcounter{etoc@tocdepth}% 1.07g
\@ifclassloaded{memoir}{\def\Etoc@minf{-\thr@@}}{\def\Etoc@minf{-\tw@}}
\def\Etoc@@minustwo@@{-\tw@}
@@ -94,9 +98,10 @@
\let\Etoc@all@@ \Etoc@@five@@
\let\Etoc@none@@ \Etoc@minf
\let\Etoc@levellist\@empty
-\def\Etoc@newlevel#1{%
- \def\Etoc@levellist@elt{\noexpand\Etoc@levellist@elt\noexpand}%
- \edef\Etoc@levellist{\Etoc@levellist\Etoc@levellist@elt#1}}
+\def\Etoc@newlevel #1%
+{\expandafter\def\expandafter\Etoc@levellist\expandafter
+ {\Etoc@levellist\Etoc@levellist@elt #1}%
+}
\def\etocsetlevel#1#2{%
\expandafter\Etoc@newlevel\csname l@#1\endcsname
\ifcase#2\relax
@@ -141,8 +146,16 @@
\etocsetlevel{subsubsection}{3}
\etocsetlevel{paragraph}{4}
\etocsetlevel{subparagraph}{5}
-\def\Etoc@setflags #1{%
- \ifcase #1\relax
+\AtBeginDocument{%
+\@ifpackageloaded{parskip}{\Etoc@parskiptrue}{}%
+\@ifpackageloaded{hyperref}{\Etoc@hyperreftrue
+ \def\Etoc@et@hop#1#2#3#4#5{#2{#3}{#4}{#5}#1}%
+ \long\def\Etoc@gobblesixorfive#1#2#3#4#5#6{}}
+ {\def\Etoc@et@hop#1#2#3#4{#2{#3}{#4}#1}%
+ \long\def\Etoc@gobblesixorfive#1#2#3#4#5{}}%
+}
+\def\Etoc@setflags {%
+ \ifcase \Etoc@level
\global\Etoc@vfalse
\global\Etoc@ivfalse
\global\Etoc@iiifalse
@@ -170,147 +183,129 @@
\or
\global\Etoc@vtrue
\else
- \ifnum#1=\m@ne
- \global\Etoc@vfalse
- \global\Etoc@ivfalse
- \global\Etoc@iiifalse
- \global\Etoc@iifalse
- \global\Etoc@ifalse
- \global\Etoc@false
+ \global\Etoc@vfalse
+ \global\Etoc@ivfalse
+ \global\Etoc@iiifalse
+ \global\Etoc@iifalse
+ \global\Etoc@ifalse
+ \global\Etoc@false
+ \ifnum\Etoc@level=\m@ne
\global\Etoc@jtrue
\else
- \global\Etoc@vfalse
- \global\Etoc@ivfalse
- \global\Etoc@iiifalse
- \global\Etoc@iifalse
- \global\Etoc@ifalse
- \global\Etoc@false
\global\Etoc@jfalse
\global\Etoc@jjtrue
\fi
\fi}
-\AtBeginDocument{%
-\@ifpackageloaded{parskip}{\Etoc@parskiptrue}{}%
-\@ifpackageloaded{hyperref}{\Etoc@hyperreftrue
- \def\Etoc@et@hop#1#2#3#4#5{#1{#3}{#4}{#5}#2}%
- \long\def\Etoc@gobblesixorfive#1#2#3#4#5#6{}}
- {\def\Etoc@et@hop#1#2#3#4{#1{#3}{#4}#2}%
- \long\def\Etoc@gobblesixorfive#1#2#3#4#5{}}%
+\def\Etoc@doends {%
+ \ifcase \Etoc@level
+ \ifEtoc@v \Etoc@end@five\fi
+ \ifEtoc@iv \Etoc@end@four\fi
+ \ifEtoc@iii\Etoc@end@three\fi
+ \ifEtoc@ii \Etoc@end@two\fi
+ \ifEtoc@i \Etoc@end@one\fi
+ \or
+ \ifEtoc@v \Etoc@end@five\fi
+ \ifEtoc@iv \Etoc@end@four\fi
+ \ifEtoc@iii\Etoc@end@three\fi
+ \ifEtoc@ii \Etoc@end@two\fi
+ \or
+ \ifEtoc@v \Etoc@end@five\fi
+ \ifEtoc@iv \Etoc@end@four\fi
+ \ifEtoc@iii\Etoc@end@three\fi
+ \or
+ \ifEtoc@v \Etoc@end@five\fi
+ \ifEtoc@iv\Etoc@end@four\fi
+ \or
+ \ifEtoc@v \Etoc@end@five\fi
+ \or
+ \else
+ \ifEtoc@v \Etoc@end@five \fi
+ \ifEtoc@iv \Etoc@end@four \fi
+ \ifEtoc@iii\Etoc@end@three\fi
+ \ifEtoc@ii \Etoc@end@two \fi
+ \ifEtoc@i \Etoc@end@one \fi
+ \ifEtoc@ \Etoc@end@zero \fi
+ \ifnum \Etoc@level =-\tw@
+ \ifEtoc@j \Etoc@end@minusone\fi
+ \fi
+ \fi
}
-\def\Etoc@swa#1{%
- \Etoc@et@hop
- {\Etoc@savedcontentsline{#1}}
- {\Etoc@prefix\Etoc@contents}}
-\def\Etoc@swb#1{%
- \Etoc@et@hop
- {\Etoc@savedcontentsline{#1}}
- {\Etoc@contents}}
-\let\etocskipfirstprefix\@thirdofthree
-\def\Etoc@etoccontentsline#1{%
- \global\expandafter\let\expandafter\Etoc@tmp\csname Etoc@#1@@\endcsname
+\def\etocskipfirstprefix {\global\Etoc@skipprefixtrue }
+\def\Etoc@etoccontentsline #1{%
+ \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname
\Etoc@skipthisonefalse
- \let\Etoc@next\Etoc@gobblesixorfive
- \ifnum\Etoc@tmp=\Etoc@@six@@
+ \ifnum\Etoc@level=\Etoc@@six@@
\Etoc@skipthisonetrue
\else
\ifEtoc@localtoc
- \let\Etoc@prenext\relax
+ \let\Etoc@next\relax
\ifEtoc@stoptoc
\Etoc@skipthisonetrue
\fi
- \ifnum\Etoc@tmp<\Etoc@localtop
- \def\Etoc@prenext{\global\Etoc@stoptoctrue}%
+ \ifnum\Etoc@level<\Etoc@localtop
+ \def\Etoc@next{\global\Etoc@stoptoctrue}%
\Etoc@skipthisonetrue
\fi
\ifEtoc@notactive
- \def\Etoc@prenext{\Etoc@setflags{\Etoc@tmp}}%
+ \def\Etoc@next{\Etoc@setflags}%
\Etoc@skipthisonetrue
\fi
- \Etoc@prenext
+ \Etoc@next
\fi
\fi
- \ifnum\c@tocdepth<\Etoc@tmp\relax\else
- \ifEtoc@skipthisone\else
- \global\let\Etoc@next\relax
- \ifcase\Etoc@tmp
- \ifEtoc@v \Etoc@end@five\fi
- \ifEtoc@iv \Etoc@end@four\fi
- \ifEtoc@iii \Etoc@end@three\fi
- \ifEtoc@ii \Etoc@end@two\fi
- \ifEtoc@i \Etoc@end@one\fi
- \ifEtoc@ \else \def\Etoc@next{\Etoc@begin@zero}\fi
- \def\Etoc@contents{\Etoc@contents@zero}%
- \def\Etoc@prefix{\Etoc@prefix@zero}%
- \or
- \ifEtoc@v \Etoc@end@five\fi
- \ifEtoc@iv \Etoc@end@four\fi
- \ifEtoc@iii \Etoc@end@three\fi
- \ifEtoc@ii \Etoc@end@two\fi
- \ifEtoc@i \else \def\Etoc@next{\Etoc@begin@one}\fi
- \def\Etoc@contents{\Etoc@contents@one}%
- \def\Etoc@prefix{\Etoc@prefix@one}%
- \or
- \ifEtoc@v \Etoc@end@five\fi
- \ifEtoc@iv \Etoc@end@four\fi
- \ifEtoc@iii \Etoc@end@three\fi
- \ifEtoc@ii \else \def\Etoc@next{\Etoc@begin@two}\fi
- \def\Etoc@contents{\Etoc@contents@two}%
- \def\Etoc@prefix{\Etoc@prefix@two}%
- \or
- \ifEtoc@v \Etoc@end@five\fi
- \ifEtoc@iv \Etoc@end@four\fi
- \ifEtoc@iii \else \def\Etoc@next{\Etoc@begin@three}\fi
- \def\Etoc@contents{\Etoc@contents@three}%
- \def\Etoc@prefix{\Etoc@prefix@three}%
- \or
- \ifEtoc@v \Etoc@end@five\fi
- \ifEtoc@iv \else \def\Etoc@next{\Etoc@begin@four}\fi
- \def\Etoc@contents{\Etoc@contents@four}%
- \def\Etoc@prefix{\Etoc@prefix@four}%
- \or
- \ifEtoc@v \else \def\Etoc@next{\Etoc@begin@five}\fi
- \def\Etoc@contents{\Etoc@contents@five}%
- \def\Etoc@prefix{\Etoc@prefix@five}%
+ \let\Etoc@next\Etoc@gobblesixorfive
+ \ifnum\c@tocdepth<\Etoc@level
\else
- \ifnum\Etoc@tmp=\m@ne
- \ifEtoc@v \Etoc@end@five\fi
- \ifEtoc@iv \Etoc@end@four\fi
- \ifEtoc@iii \Etoc@end@three\fi
- \ifEtoc@ii \Etoc@end@two\fi
- \ifEtoc@i \Etoc@end@one\fi
- \ifEtoc@ \Etoc@end@zero\fi
- \ifEtoc@j \else \def\Etoc@next{\Etoc@begin@minusone}\fi
- \def\Etoc@contents{\Etoc@contents@minusone}%
- \def\Etoc@prefix{\Etoc@prefix@minusone}%
+ \ifEtoc@skipthisone
+ \else
+ \ifEtoc@standard\let\Etoc@next\@thirdofthree
+ \else
+ \Etoc@doends
+ \let\Etoc@next\@empty
+ \Etoc@global\Etoc@isfirstfalse
+ \ifcase\Etoc@level
+ \ifEtoc@\else \def\Etoc@next{\Etoc@begin@zero}\fi
+ \or
+ \ifEtoc@i\else \def\Etoc@next{\Etoc@begin@one}\fi
+ \or
+ \ifEtoc@ii\else \def\Etoc@next{\Etoc@begin@two}\fi
+ \or
+ \ifEtoc@iii\else \def\Etoc@next{\Etoc@begin@three}\fi
+ \or
+ \ifEtoc@iv\else \def\Etoc@next{\Etoc@begin@four}\fi
+ \or
+ \ifEtoc@v\else \def\Etoc@next{\Etoc@begin@five}\fi
\else
- \ifEtoc@v \Etoc@end@five\fi
- \ifEtoc@iv \Etoc@end@four\fi
- \ifEtoc@iii \Etoc@end@three\fi
- \ifEtoc@ii \Etoc@end@two\fi
- \ifEtoc@i \Etoc@end@one\fi
- \ifEtoc@ \Etoc@end@zero\fi
- \ifEtoc@j \Etoc@end@minusone\fi
- \ifEtoc@jj \else \def\Etoc@next{\Etoc@begin@minustwo}\fi
- \def\Etoc@contents{\Etoc@contents@minustwo}%
- \def\Etoc@prefix{\Etoc@prefix@minustwo}%
+ \ifnum\Etoc@level=\m@ne
+ \ifEtoc@j\else \def\Etoc@next{\Etoc@begin@minusone}\fi
+ \else
+ \ifEtoc@jj\else \def\Etoc@next{\Etoc@begin@minustwo}\fi
\fi
- \fi
- \ifnum\Etoc@tmp=\m@ne\Etoc@parttrue\else\Etoc@partfalse\fi
- \Etoc@setflags{\Etoc@tmp}%
- \fi\fi
+ \fi
+ \Etoc@setflags
+ \Etoc@next
+ \let\Etoc@next\@empty
+ \Etoc@global\expandafter\def\expandafter\Etoc@prefix\expandafter
+ {\csname Etoc@prefix@\csname Etoc@#1@\endcsname\endcsname }%
+ \Etoc@global\expandafter\def\expandafter\Etoc@contents\expandafter
+ {\csname Etoc@contents@\csname Etoc@#1@\endcsname\endcsname }%
+ \ifEtoc@skipprefix \Etoc@global\let\Etoc@prefix\@empty\fi
+ \global\Etoc@skipprefixfalse
+ \fi\fi\fi
\Etoc@next
- \@firstoftwo{\Etoc@swa{#1}}{\Etoc@swb{#1}}}
+ \Etoc@et@hop{\Etoc@prefix\Etoc@contents}{\Etoc@savedcontentsline{#1}}%
+}
\def\Etoc@lxyz #1#2{%
- \@namedef {etoclink }{\leavevmode}% fall-back
- \let\etocthelink \@empty % fall-back
- \@namedef {etocname }{\leavevmode #1}% fall-back (perhaps linked)
- \def\etocthename {#1}% (if link, will be removed later)
- \def\etocthelinkedname {#1}% will probably get redefined
- \@namedef {etocpage }{\leavevmode #2}% (perhaps linked)
+ \Etoc@global\@namedef {etoclink }{\leavevmode}% fall-back
+ \Etoc@global\let\etocthelink \@empty % fall-back
+ \Etoc@global\@namedef {etocname }{\leavevmode #1}% fall-back (perhaps linked)
+ \Etoc@global\def\etocthename {#1}% (if link, will be removed later)
+ \Etoc@global\def\etocthelinkedname {#1}% will probably get redefined
+ \Etoc@global\@namedef {etocpage }{\leavevmode #2}% (perhaps linked)
\Etoc@getthepage #2\etoc@ % defines also \etocthelinkedpage (and \etoclink)
\Etoc@getnb #1\relax\relax\etoc@ % gets number *and* name, and \etoclink
\ifEtoc@number\else
- \ifEtoc@part
+ \ifnum\Etoc@level=\m@ne
\Etoc@getit #1\hspace\relax\etoc@ % additional job for parts
\fi
\fi}
@@ -322,15 +317,15 @@
\Etoc@next #1%
}
\def\Etoc@getthepage@nohyp #1\etoc@ {%
- \def\etocthepage {#1}%
- \def\etocthelinkedpage {#1}%
+ \Etoc@global\def\etocthepage {#1}%
+ \Etoc@global\def\etocthelinkedpage {#1}%
}
\def\Etoc@getthepage@hyp #1#2#3#4#5\etoc@ {%
- \@namedef{etoclink }##1{\leavevmode #1{#2}{#3}{##1}#5}%
- \edef\etocthelink ##1{\noexpand\hyperlink {#3}{##1}}%
- \def\etocthepage {#4}%
+ \Etoc@global\@namedef{etoclink }##1{\leavevmode #1{#2}{#3}{##1}#5}%
+ \Etoc@global\edef\etocthelink ##1{\noexpand\hyperlink {#3}{##1}}%
+ \Etoc@global\def\etocthepage {#4}%
\edef\Etoc@tmp {{#3}}%
- \expandafter\def\expandafter\etocthelinkedpage\expandafter
+ \Etoc@global\expandafter\def\expandafter\etocthelinkedpage\expandafter
{\expandafter\hyperlink \Etoc@tmp{#4}}%
}
\def\Etoc@getnb #1{%
@@ -349,85 +344,85 @@
}
\def\Etoc@getnb@nohyp #1#2#3\etoc@ {%
\def\Etoc@getname ##1\relax\relax\etoc@ {%
- \@namedef {etocname }{\leavevmode ##1}%
- \def\etocthename {##1}%
- \def\etocthelinkedname {##1}%
+ \Etoc@global\@namedef {etocname }{\leavevmode ##1}%
+ \Etoc@global\def\etocthename {##1}%
+ \Etoc@global\def\etocthelinkedname {##1}%
}%
\ifx #1\numberline
- \@namedef {etocnumber }{\leavevmode #2}%
- \def\etocthenumber {#2}%
- \def\etocthelinkednumber {#2}%
- \Etoc@numbertrue
+ \Etoc@global\@namedef {etocnumber }{\leavevmode #2}%
+ \Etoc@global\def\etocthenumber {#2}%
+ \Etoc@global\def\etocthelinkednumber {#2}%
+ \Etoc@global\Etoc@numbertrue
\Etoc@getname #3\etoc@
\else % then \etocthename and \etocthelinkedname already defined
- \@namedef {etocnumber }{\leavevmode}%
- \let\etocthenumber \@empty
- \let\etocthelinkednumber \@empty
- \Etoc@numberfalse
+ \Etoc@global\@namedef {etocnumber }{\leavevmode}%
+ \Etoc@global\let\etocthenumber \@empty
+ \Etoc@global\let\etocthelinkednumber \@empty
+ \Etoc@global\Etoc@numberfalse
\fi
}
\def\Etoc@getnb@hyp #1#2#3#4#5#6\etoc@ {%
- \def\Etoc@getname ##1\relax\relax\etoc@ {%
- \@namedef {etocname }{\leavevmode #1{#2}{#3}{##1}#5}%
- \def\etocthename {##1}%
- \edef\Etoc@tmp {{#3}}%
- \expandafter\def\expandafter\etocthelinkedname\expandafter
+ \Etoc@global\def\Etoc@getname ##1\relax\relax\etoc@ {%
+ \Etoc@global\@namedef {etocname }{\leavevmode #1{#2}{#3}{##1}#5}%
+ \Etoc@global\def\etocthename {##1}%
+ \edef\Etoc@tmp {{#3}}%
+ \Etoc@global\expandafter\def\expandafter\etocthelinkedname\expandafter
{\expandafter\hyperlink \Etoc@tmp{##1}}%
}%
\def\Etoc@getnbr ##1##2##3\etoc@ {%
\ifx ##1\numberline
- \@namedef {etocnumber }{\leavevmode #1{#2}{#3}{##2}#5}%
- \def\etocthenumber {##2}%
+ \Etoc@global\@namedef {etocnumber }{\leavevmode #1{#2}{#3}{##2}#5}%
+ \Etoc@global\def\etocthenumber {##2}%
\edef\Etoc@tmp {{#3}}%
- \expandafter\def\expandafter\etocthelinkednumber\expandafter
- {\expandafter\hyperlink \Etoc@tmp{##2}}%
- \Etoc@numbertrue
+ \Etoc@global\expandafter\def\expandafter\etocthelinkednumber
+ \expandafter{\expandafter\hyperlink \Etoc@tmp{##2}}%
+ \Etoc@global\Etoc@numbertrue
\Etoc@getname ##3\etoc@
\else
- \@namedef {etocnumber }{\leavevmode}%
- \let\etocthenumber \@empty
- \let\etocthelinkednumber \@empty
- \Etoc@numberfalse
- \def\etocthename {#4}%
+ \Etoc@global\@namedef {etocnumber }{\leavevmode}%
+ \Etoc@global\let\etocthenumber \@empty
+ \Etoc@global\let\etocthelinkednumber \@empty
+ \Etoc@global\Etoc@numberfalse
+ \Etoc@global\def\etocthename {#4}%
\edef\Etoc@tmp {{#3}}%
- \expandafter\def\expandafter\etocthelinkedname\expandafter
- {\expandafter\hyperlink \Etoc@tmp{#4}}%
+ \Etoc@global\expandafter\def\expandafter\etocthelinkedname
+ \expandafter {\expandafter\hyperlink \Etoc@tmp{#4}}%
\fi
}%
- \@namedef {etoclink }##1{\leavevmode #1{#2}{#3}{##1}#5}%
- \edef\etocthelink ##1{\noexpand\hyperlink {#3}{##1}}%
+ \Etoc@global\@namedef {etoclink }##1{\leavevmode #1{#2}{#3}{##1}#5}%
+ \Etoc@global\edef\etocthelink ##1{\noexpand\hyperlink {#3}{##1}}%
\Etoc@getnbr #4\relax\relax\etoc@
}
\def\Etoc@getit@nohyp #1\hspace#2#3\etoc@ {%
\def\Etoc@getname ##1\hspace\relax\etoc@ {%
- \@namedef {etocname }{\leavevmode ##1}%
- \def\etocthename {##1}%
- \def\etocthelinkedname {##1}%
+ \Etoc@global\@namedef {etocname }{\leavevmode ##1}%
+ \Etoc@global\def\etocthename {##1}%
+ \Etoc@global\def\etocthelinkedname {##1}%
}%
\ifx\relax#2\else
- \@namedef {etocnumber }{\leavevmode #1}%
- \def\etocthenumber {#1}%
- \def\etocthelinkednumber {#1}%
- \Etoc@numbertrue
+ \Etoc@global\@namedef {etocnumber }{\leavevmode #1}%
+ \Etoc@global\def\etocthenumber {#1}%
+ \Etoc@global\def\etocthelinkednumber {#1}%
+ \Etoc@global\Etoc@numbertrue
\Etoc@getname #3\etoc@
\fi
}
\def\Etoc@getit@hyp #1#2#3#4#5#6\etoc@ {%
\def\Etoc@getname ##1\hspace\relax\etoc@ {%
- \@namedef {etocname }{\leavevmode #1{#2}{#3}{##1}#5}%
- \def\etocthename {##1}%
+ \Etoc@global\@namedef {etocname }{\leavevmode #1{#2}{#3}{##1}#5}%
+ \Etoc@global\def\etocthename {##1}%
\edef\Etoc@tmp {{#3}}%
- \expandafter\def\expandafter\etocthelinkedname\expandafter
- {\expandafter\hyperlink \Etoc@tmp{##1}}%
+ \Etoc@global\expandafter\def\expandafter\etocthelinkedname
+ \expandafter{\expandafter\hyperlink \Etoc@tmp{##1}}%
}%
\def\Etoc@getnbr ##1\hspace##2##3\etoc@ {%
\ifx\relax##2\else
- \@namedef {etocnumber }{\leavevmode #1{#2}{#3}{##1}#5}%
- \def\etocthenumber {##1}%
+ \Etoc@global\@namedef {etocnumber }{\leavevmode #1{#2}{#3}{##1}#5}%
+ \Etoc@global\def\etocthenumber {##1}%
\edef\Etoc@tmp {{#3}}%
- \expandafter\def\expandafter\etocthelinkednumber\expandafter
- {\expandafter\hyperlink \Etoc@tmp{##1}}%
- \Etoc@numbertrue
+ \Etoc@global\expandafter\def\expandafter\etocthelinkednumber
+ \expandafter{\expandafter\hyperlink \Etoc@tmp{##1}}%
+ \Etoc@global\Etoc@numbertrue
\Etoc@getname ##3\etoc@
\fi
}%
@@ -446,6 +441,10 @@
\DeclareRobustCommand*{\etoclink} {}
\DeclareRobustCommand*{\etocifnumbered}
{\ifEtoc@number\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
+\expandafter\let\expandafter\etocxifnumbered\csname etocifnumbered \endcsname
+\DeclareRobustCommand*{\etociffirst}
+ {\ifEtoc@isfirst\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
+\expandafter\let\expandafter\etocxiffirst\csname etociffirst \endcsname
\def\Etoc@readtoc {%
\ifeof \Etoc@tf
\else
@@ -491,22 +490,6 @@
\global\Etoc@false
\global\Etoc@jfalse
\global\Etoc@jjfalse
-\ifEtoc@standard
- \etoc@setstyle{@minustwo}{}{}{}{}%
- \etoc@setstyle{@minusone}{}{}{}{}%
- \etoc@setstyle{@zero}{}{}{}{}%
- \etoc@setstyle{@one}{}{}{}{}%
- \etoc@setstyle{@two}{}{}{}{}%
- \etoc@setstyle{@three}{}{}{}{}%
- \etoc@setstyle{@four}{}{}{}{}%
- \etoc@setstyle{@five}{}{}{}{}%
-\else
- \def\Etoc@levellist@elt##1{\let##1\Etoc@lxyz}%
- \Etoc@levellist
- \let\booknumberline\numberline
- \let\partnumberline\numberline
- \let\chapternumberline\numberline
-\fi
\the\Etoc@toctoks
\ifEtoc@notactive\else
\ifEtoc@v \Etoc@end@five\fi
@@ -523,14 +506,14 @@
\ifEtoc@localtoc
\ifEtoc@notactive
\ifnum #1=#2\relax
- \ifEtoc@jj \let\Etoc@localtop\Etoc@@minusone@@ \fi
- \ifEtoc@j \let\Etoc@localtop\Etoc@@zero@@ \fi
- \ifEtoc@ \let\Etoc@localtop\Etoc@@one@@ \fi
- \ifEtoc@i \let\Etoc@localtop\Etoc@@two@@ \fi
- \ifEtoc@ii \let\Etoc@localtop\Etoc@@three@@ \fi
- \ifEtoc@iii \let\Etoc@localtop\Etoc@@four@@ \fi
- \ifEtoc@iv \let\Etoc@localtop\Etoc@@five@@ \fi
- \ifEtoc@v \let\Etoc@localtop\Etoc@@six@@ \fi
+ \ifEtoc@jj \Etoc@global\let\Etoc@localtop\Etoc@@minusone@@ \fi
+ \ifEtoc@j \Etoc@global\let\Etoc@localtop\Etoc@@zero@@ \fi
+ \ifEtoc@ \Etoc@global\let\Etoc@localtop\Etoc@@one@@ \fi
+ \ifEtoc@i \Etoc@global\let\Etoc@localtop\Etoc@@two@@ \fi
+ \ifEtoc@ii \Etoc@global\let\Etoc@localtop\Etoc@@three@@ \fi
+ \ifEtoc@iii \Etoc@global\let\Etoc@localtop\Etoc@@four@@ \fi
+ \ifEtoc@iv \Etoc@global\let\Etoc@localtop\Etoc@@five@@ \fi
+ \ifEtoc@v \Etoc@global\let\Etoc@localtop\Etoc@@six@@ \fi
\def\Etoc@next{\global\Etoc@notactivefalse
\global\Etoc@vfalse
\global\Etoc@ivfalse
@@ -605,54 +588,75 @@
\Etoc@openouttoc
\Etoc@par
\begingroup % closed in \Etoc@t@bleofcontents or \Etoc@localtableofcontents
- \def\etoc@startlocaltoc##1{\etoc@@startlocaltoc{##1}{\c@etoc@tocid}}%
- \@ifstar
- {\def\Etoc@aftertitlehook{}\Etoc@table@fcontents}
- {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@table@fcontents}}
+ \let\tof@begingroup\@empty
+ \let\tof@endgroup \@empty
+ \def\etoc@startlocaltoc##1{\etoc@@startlocaltoc{##1}{\c@etoc@tocid}}%
+ \@ifstar
+ {\def\Etoc@aftertitlehook{}\Etoc@table@fcontents}
+ {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@table@fcontents}}
\let\tableofcontents\etoctableofcontents
\newcommand*\localtableofcontents{%
\Etoc@openouttoc
\Etoc@par
\begingroup % closed in \Etoc@t@bleofcontents or \Etoc@localtableofcontents
- \@ifstar
- {\def\Etoc@aftertitlehook{}\Etoc@localtable@fcontents}
- {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@localtable@fcontents}}
+ \let\tof@begingroup\@empty
+ \let\tof@endgroup \@empty
+ \@ifstar
+ {\def\Etoc@aftertitlehook{}\Etoc@localtable@fcontents}
+ {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@localtable@fcontents}}
+\long\def\Etoc@gobbletoetoc@ #1\etoc@ {}
\newcommand\etocsettocstyle[2]{%
\def\Etoc@tableofcontents
-{\ifnum\c@tocdepth>\Etoc@minf
- \let\Etoc@@next\@firstofone\else
- \let\Etoc@@next\@gobble
-\fi
-\Etoc@@next{\etocbeforetitlehook % 1.07m
- \Etoc@storetocdepth % 1.07g
- #1\ifEtoc@parskip\parskip\z@skip\fi %1.07d
- \Etoc@aftertitlehook
- \let\Etoc@savedcontentsline\contentsline
- \let\contentsline\Etoc@etoccontentsline
- \Etoc@toctoc
- \let\Etoc@@next\relax
- \ifEtoc@tocwithid\else
- \ifEtoc@localtoc
+{%
+ \ifnum\c@tocdepth>\Etoc@minf\else
+ \expandafter\Etoc@gobbletoetoc@
+ \fi
+ \etocbeforetitlehook % 1.07m
+ \Etoc@storetocdepth % 1.07g
+ \let\Etoc@savedcontentsline\contentsline % moved up here 1.08
+ \let\contentsline\Etoc@etoccontentsline
+ \ifEtoc@standard
+ \else % moved here from \Etoc@toctoc (1.08)
+ \def\Etoc@levellist@elt####1{\let####1\Etoc@lxyz}%
+ \Etoc@levellist
+ \let\booknumberline\numberline
+ \let\partnumberline\numberline
+ \let\chapternumberline\numberline
+ \fi
+ #1%
+ \ifEtoc@parskip\parskip\z@skip\fi %1.07d
+ \Etoc@aftertitlehook
+ \Etoc@toctoc
+ \ifEtoc@tocwithid\else
+ \ifEtoc@localtoc
\ifEtoc@notactive
- \def\Etoc@@next{\Etoc@localtocfalse
- \global\Etoc@notactivefalse
- \Etoc@toctoc}%
- \fi\fi
+ \Etoc@localtocfalse
+ \global\Etoc@notactivefalse
+ \Etoc@toctoc
+ \fi
\fi
- \Etoc@@next
- \Etoc@resettocdepth % 1.07g
- \etocaftercontentshook
- #2\@nobreakfalse}}} % 1.07d: \@nobreakfalse moved here
+ \fi
+ \etocaftercontentshook
+ #2\@nobreakfalse % 1.07d: \@nobreakfalse moved here
+ \Etoc@resettocdepth % 1.07g. moved here from before #2 by 1.08
+ \ifx\Etoc@global\global\ifx\tof@finish\@empty\else
+ \global\let\contentsline\Etoc@savedcontentsline
+ \fi\fi
+ \@gobble\etoc@
+}% end of \Etoc@tableofcontents definition by \etocsettocstyle
+}
\def\etocsetstyle{\Etoc@standardfalse\etoc@setstyle}
\long\def\etoc@setstyle#1#2#3#4#5{%
-\long\expandafter\def
- \csname Etoc@begin@\csname Etoc@#1@\endcsname\endcsname {#2}%
-\long\expandafter\def
- \csname Etoc@prefix@\csname Etoc@#1@\endcsname\endcsname {#3}%
-\long\expandafter\def
+ \long\expandafter\def
+ \csname Etoc@begin@\csname Etoc@#1@\endcsname\endcsname
+ {#2\Etoc@global\Etoc@isfirsttrue}%
+ \long\expandafter\def
+ \csname Etoc@prefix@\csname Etoc@#1@\endcsname\endcsname {#3}%
+ \long\expandafter\def
\csname Etoc@contents@\csname Etoc@#1@\endcsname\endcsname {#4}%
-\long\expandafter\def
- \csname Etoc@end@\csname Etoc@#1@\endcsname\endcsname {#5}}
+ \long\expandafter\def
+ \csname Etoc@end@\csname Etoc@#1@\endcsname\endcsname {#5}%
+}
\def\etocfontminustwo {\normalfont \LARGE \bfseries}
\def\etocfontminusone {\normalfont \large \bfseries}
\def\etocfontzero {\normalfont \large \bfseries}