diff options
author | Karl Berry <karl@freefriends.org> | 2015-03-11 20:25:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-03-11 20:25:44 +0000 |
commit | 07d6e78b6d566bc3372ad15604fa20a935f0c048 (patch) | |
tree | a200124d779658b63dca422cc93e391fd5ff14ae /Master/texmf-dist/tex | |
parent | d78773b1bd9f5d2a52f7c8e0c0bc7ffd96841667 (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} |