| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178 |
- %%
- %% This is file etoc_doxygen.sty
- %%
- %% Apart from this header notice and the renaming from etoc to
- %% etoc_doxygen (also in \ProvidesPackage) it is an identical
- %% copy of
- %%
- %% etoc.sty
- %%
- %% at version 1.2b of 2023/07/01.
- %%
- %% This file has been provided to Doxygen team courtesy of the
- %% author for benefit of users having a LaTeX installation not
- %% yet providing version 1.2a or later of etoc, whose
- %% deeplevels feature is required.
- %%
- %% The original source etoc.dtx (only of the latest version at
- %% any given time) is available at
- %%
- %% https://ctan.org/pkg/etoc
- %%
- %% and contains the terms for copying and modification as well
- %% as author contact information.
- %%
- %% In brief any modified versions of this file must be renamed
- %% with new filenames distinct from etoc.sty.
- %%
- %% Package: etoc
- %% Version: 1.2b
- %% License: LPPL 1.3c
- %% Copyright (C) 2012-2023 Jean-Francois B. <user jfbu at github>
- \NeedsTeXFormat{LaTeX2e}[2003/12/01]
- \ProvidesPackage{etoc_doxygen}[2023/07/01 v1.2b Completely customisable TOCs (JFB)]
- \newif\ifEtoc@oldLaTeX
- \@ifl@t@r\fmtversion{2020/10/01}
- {}
- {\Etoc@oldLaTeXtrue
- \PackageInfo{etoc}{Old LaTeX (\fmtversion) detected!\MessageBreak
- Since 1.1a (2023/01/14), etoc prefers LaTeX at least\MessageBreak
- as recent as 2020-10-01, for reasons of the .toc file,\MessageBreak
- and used to require it (from 1.1a to 1.2).\MessageBreak
- This etoc (1.2b) does not *require* it, but has not been\MessageBreak
- tested thoroughly on old LaTeX (especially if document\MessageBreak
- does not use hyperref) and retrofitting was done only\MessageBreak
- on basis of author partial remembrances of old context.\MessageBreak
- Reported}}
- \RequirePackage{kvoptions}
- \SetupKeyvalOptions{prefix=Etoc@}
- \newif\ifEtoc@lof
- \DeclareVoidOption{lof}{\Etoc@loftrue
- \PackageInfo{etoc}{Experimental support for \string\locallistoffigures.\MessageBreak
- Barely tested, use at own risk}%
- }
- \newif\ifEtoc@lot
- \DeclareVoidOption{lot}{\Etoc@lottrue
- \PackageInfo{etoc}{Experimental support for \string\locallistoftables.\MessageBreak
- Barely tested, use at own risk}%
- }
- \@ifclassloaded{memoir}{
- \PackageInfo{etoc}
- {As this is with memoir class, all `...totoc' options\MessageBreak
- are set true by default. Reported}
- \DeclareBoolOption[true]{maintoctotoc}
- \DeclareBoolOption[true]{localtoctotoc}
- \DeclareBoolOption[true]{localloftotoc}
- \DeclareBoolOption[true]{locallottotoc}
- }{
- \DeclareBoolOption[false]{maintoctotoc}
- \DeclareBoolOption[false]{localtoctotoc}
- \DeclareBoolOption[false]{localloftotoc}
- \DeclareBoolOption[false]{locallottotoc}
- }
- \DeclareBoolOption[true]{ouroboros}
- \DeclareBoolOption[false]{deeplevels}
- \DeclareDefaultOption{\PackageWarning{etoc}{Option `\CurrentOption' is unknown.}}
- \ProcessKeyvalOptions*
- \DisableKeyvalOption[action=error,package=etoc]{etoc}{lof}
- \DisableKeyvalOption[action=error,package=etoc]{etoc}{lot}
- \DisableKeyvalOption[action=error,package=etoc]{etoc}{deeplevels}
- \def\etocsetup#1{\setkeys{etoc}{#1}}
- \def\etocifmaintoctotoc{\ifEtoc@maintoctotoc
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
- \def\etociflocaltoctotoc{\ifEtoc@localtoctotoc
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
- \def\etociflocalloftotoc{\ifEtoc@localloftotoc
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
- \def\etociflocallottotoc{\ifEtoc@locallottotoc
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
- \RequirePackage{multicol}
- \def\etoc@{\etoc@}
- \long\def\Etoc@gobtoetoc@ #1\etoc@{}
- \newtoks\Etoc@toctoks
- \def\Etoc@par{\par}
- \def\etocinline{\def\Etoc@par{}}
- \let\etocnopar\etocinline
- \def\etocdisplay{\def\Etoc@par{\par}}
- \let\Etoc@global\@empty
- \def\etocglobaldefs{\let\Etoc@global\global\let\tof@global\global}
- \def\etoclocaldefs {\let\Etoc@global\@empty\let\tof@global\@empty}
- \newif\ifEtoc@numbered
- \newif\ifEtoc@hyperref
- \newif\ifEtoc@parskip
- \newif\ifEtoc@tocwithid
- \newif\ifEtoc@standardlines
- \newif\ifEtoc@etocstyle
- \newif\ifEtoc@classstyle
- \newif\ifEtoc@keeporiginaltoc
- \newif\ifEtoc@skipprefix
- \newif\ifEtoc@isfirst
- \newif\ifEtoc@localtoc
- \newif\ifEtoc@skipthisone
- \newif\ifEtoc@stoptoc
- \newif\ifEtoc@notactive
- \newif\ifEtoc@mustclosegroup
- \newif\ifEtoc@isemptytoc
- \newif\ifEtoc@checksemptiness
- \def\etocchecksemptiness {\Etoc@checksemptinesstrue }
- \def\etocdoesnotcheckemptiness {\Etoc@checksemptinessfalse }
- \newif\ifEtoc@notocifnotoc
- \def\etocnotocifnotoc {\Etoc@checksemptinesstrue\Etoc@notocifnotoctrue }
- \newcounter{etoc@tocid}
- \def\Etoc@tocext{toc}
- \def\Etoc@lofext{lof}
- \def\Etoc@lotext{lot}
- \let\Etoc@currext\Etoc@tocext
- \def\etocifislocal{\ifEtoc@localtoc\expandafter\@firstoftwo\else
- \expandafter\@secondoftwo\fi
- }
- \def\etocifislocaltoc{\etocifislocal{\ifx\Etoc@currext\Etoc@tocext
- \expandafter\@firstoftwo\else
- \expandafter\@secondoftwo\fi}%
- {\@secondoftwo}%
- }
- \def\etocifislocallof{\etocifislocal{\ifx\Etoc@currext\Etoc@lofext
- \expandafter\@firstoftwo\else
- \expandafter\@secondoftwo\fi}%
- {\@secondoftwo}%
- }
- \def\etocifislocallot{\etocifislocal{\ifx\Etoc@currext\Etoc@lotext
- \expandafter\@firstoftwo\else
- \expandafter\@secondoftwo\fi}%
- {\@secondoftwo}%
- }
- \expandafter\def\csname Etoc@-3@@\endcsname {-\thr@@}
- \expandafter\def\csname Etoc@-2@@\endcsname {-\tw@}
- \expandafter\let\csname Etoc@-1@@\endcsname \m@ne
- \expandafter\let\csname Etoc@0@@\endcsname \z@
- \expandafter\let\csname Etoc@1@@\endcsname \@ne
- \expandafter\let\csname Etoc@2@@\endcsname \tw@
- \expandafter\let\csname Etoc@3@@\endcsname \thr@@
- \expandafter\chardef\csname Etoc@4@@\endcsname 4
- \expandafter\chardef\csname Etoc@5@@\endcsname 5
- \expandafter\chardef\csname Etoc@6@@\endcsname 6
- \ifEtoc@deeplevels
- \expandafter\chardef\csname Etoc@7@@\endcsname 7
- \expandafter\chardef\csname Etoc@8@@\endcsname 8
- \expandafter\chardef\csname Etoc@9@@\endcsname 9
- \expandafter\chardef\csname Etoc@10@@\endcsname 10
- \expandafter\chardef\csname Etoc@11@@\endcsname 11
- \expandafter\chardef\csname Etoc@12@@\endcsname 12
- \fi
- \expandafter\let\expandafter\Etoc@maxlevel
- \csname Etoc@\ifEtoc@deeplevels12\else6\fi @@\endcsname
- \edef\etocthemaxlevel{\number\Etoc@maxlevel}
- \@ifclassloaded{memoir}{\def\Etoc@minf{-\thr@@}}{\def\Etoc@minf{-\tw@}}
- \let\Etoc@none@@ \Etoc@minf
- \expandafter\let\expandafter\Etoc@all@@
- \csname Etoc@\ifEtoc@deeplevels11\else5\fi @@\endcsname
- \let\Etoc@dolevels\@empty
- \def\Etoc@newlevel #1{\expandafter\def\expandafter\Etoc@dolevels\expandafter
- {\Etoc@dolevels\Etoc@do{#1}}}
- \ifdefined\expanded
- \def\etocsetlevel#1#2{\expanded{\noexpand\etoc@setlevel{#1}{#2}}}%
- \else
- \def\etocsetlevel#1#2{{\edef\Etoc@tmp{\noexpand\etoc@setlevel{#1}{#2}}\expandafter}\Etoc@tmp}%
- \fi
- \def\etoc@setlevel#1#2{%
- \edef\Etoc@tmp{\the\numexpr#2}%
- \if1\ifnum\Etoc@tmp>\Etoc@maxlevel0\fi\unless\ifnum\Etoc@minf<\Etoc@tmp;\fi1%
- \ifEtoc@deeplevels
- \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,%
- .7,.8,.9,.10,.11,.12,}%
- \else
- \in@{.#1,}{.none,.all,.figure,.table,.-3,.-2,.-1,.0,.1,.2,.3,.4,.5,.6,}%
- \fi
- \ifin@\else\if\@car#1\@nil @\in@true\fi\fi
- \ifin@
- \PackageWarning{etoc}
- {Sorry, but `#1' is forbidden as level name.\MessageBreak
- \if\@car#1\@nil @%
- (because of the @ as first character)\MessageBreak\fi
- Reported}%
- \else
- \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}%
- \expandafter\let\csname Etoc@#1@@\expandafter\endcsname
- \csname Etoc@\Etoc@tmp @@\endcsname
- \expandafter\edef\csname Etoc@@#1@@\endcsname
- {\expandafter\noexpand\csname Etoc@#1@@\endcsname}%
- \expandafter\edef\csname toclevel@@#1\endcsname
- {\expandafter\noexpand\csname toclevel@#1\endcsname}%
- \fi
- \else
- \PackageWarning{etoc}
- {Argument `\detokenize{#2}' of \string\etocsetlevel\space should
- represent one of\MessageBreak
- \ifnum\Etoc@minf=-\thr@@-2, \fi-1, 0, 1, 2, \ifEtoc@deeplevels ...\else3, 4\fi,
- \the\numexpr\Etoc@maxlevel-1, or \number\Etoc@maxlevel\space
- but evaluates to \Etoc@tmp.\MessageBreak
- The level of `#1' will be set to \number\Etoc@maxlevel.\MessageBreak
- Tables of contents will ignore `#1' as long\MessageBreak
- as its level is \number\Etoc@maxlevel\space (=\string\etocthemaxlevel).%
- \MessageBreak
- Reported}%
- \etocifunknownlevelTF{#1}{\Etoc@newlevel{#1}}{}%
- \expandafter\let\csname Etoc@#1@@\endcsname\Etoc@maxlevel
- \fi
- }
- \def\etoclevel#1{\csname Etoc@#1@@\endcsname}
- \def\etocthelevel#1{\number\csname Etoc@#1@@\endcsname}
- \def\etocifunknownlevelTF#1{\@ifundefined{Etoc@#1@@}}
- \@ifclassloaded{memoir}{\etocsetlevel{book}{-2}}{}
- \etocsetlevel{part}{-1}
- \etocsetlevel{chapter}{0}
- \etocsetlevel{section}{1}
- \etocsetlevel{subsection}{2}
- \etocsetlevel{subsubsection}{3}
- \etocsetlevel{paragraph}{4}
- \etocsetlevel{subparagraph}{5}
- \ifdefined\c@chapter
- \etocsetlevel{appendix}{0}
- \else
- \etocsetlevel{appendix}{1}
- \fi
- \def\Etoc@do#1{\@namedef{l@@#1}{\csname l@#1\endcsname}}
- \Etoc@dolevels
- \let\Etoc@figure@@\Etoc@maxlevel
- \let\Etoc@table@@ \Etoc@maxlevel
- \let\Etoc@gobblethreeorfour\@gobblefour
- \ifdefined\@gobblethree
- \let\Etoc@gobblethree\@gobblethree
- \else
- \long\def\Etoc@gobblethree#1#2#3{}%
- \fi
- \AtBeginDocument{%
- \@ifpackageloaded{parskip}{\Etoc@parskiptrue}{}%
- \@ifpackageloaded{hyperref}
- {\Etoc@hyperreftrue}
- {\ifEtoc@oldLaTeX
- \let\Etoc@gobblethreeorfour\Etoc@gobblethree
- \let\Etoc@etoccontentsline@fourargs\Etoc@etoccontentsline@
- \long\def\Etoc@etoccontentsline@#1#2#3{%
- \Etoc@etoccontentsline@fourargs{#1}{#2}{#3}{}%
- }%
- \fi
- }%
- }
- \def\etocskipfirstprefix {\global\Etoc@skipprefixtrue }
- \def\Etoc@updatestackofends#1\etoc@{\gdef\Etoc@stackofends{#1}}
- \def\Etoc@stackofends{{-3}{}}
- \def\Etoc@doendsandbegin{%
- \expandafter\Etoc@traversestackofends\Etoc@stackofends\etoc@
- }
- \def\Etoc@traversestackofends#1{%
- \ifnum#1>\Etoc@level
- \csname Etoc@end@#1\endcsname
- \expandafter\Etoc@traversestackofends
- \else
- \Etoc@traversestackofends@done{#1}%
- \fi
- }
- \def\Etoc@traversestackofends@done#1#2{#2%
- \ifnum#1<\Etoc@level
- \csname Etoc@begin@\the\numexpr\Etoc@level\endcsname
- \Etoc@global\Etoc@isfirsttrue
- \edef\Etoc@tmp{{\the\numexpr\Etoc@level}}%
- \else
- \Etoc@global\Etoc@isfirstfalse
- \let\Etoc@tmp\@empty
- \fi
- \expandafter\Etoc@updatestackofends\Etoc@tmp{#1}%
- }
- \def\Etoc@etoccontentsline #1{%
- \let\Etoc@next\Etoc@gobblethreeorfour
- \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel
- \else
- \Etoc@skipthisonefalse
- \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname
- \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi
- \ifEtoc@localtoc
- \ifEtoc@stoptoc
- \Etoc@skipthisonetrue
- \else
- \ifEtoc@notactive
- \Etoc@skipthisonetrue
- \else
- \unless\ifnum\Etoc@level>\etoclocaltop
- \Etoc@skipthisonetrue
- \global\Etoc@stoptoctrue
- \fi
- \fi
- \fi
- \fi
- \ifEtoc@skipthisone
- \else
- \unless\ifnum\Etoc@level>\c@tocdepth
- \ifEtoc@standardlines
- \let\Etoc@next\Etoc@savedcontentsline
- \else
- \let\Etoc@next\Etoc@etoccontentsline@
- \fi
- \fi
- \fi
- \fi
- \Etoc@next{#1}%
- }
- \def\Etoc@etoccontentsline@ #1#2#3#4{%
- \Etoc@doendsandbegin
- \Etoc@global\edef\Etoc@prefix {\expandafter\noexpand
- \csname Etoc@prefix@\the\numexpr\Etoc@level\endcsname }%
- \Etoc@global\edef\Etoc@contents{\expandafter\noexpand
- \csname Etoc@contents@\the\numexpr\Etoc@level\endcsname }%
- \ifEtoc@skipprefix \Etoc@global\def\Etoc@prefix{\@empty}\fi
- \global\Etoc@skipprefixfalse
- \Etoc@lxyz{#2}{#3}{#4}%
- \Etoc@prefix
- \Etoc@contents
- }
- \def\Etoc@lxyz #1#2#3{%
- \ifEtoc@hyperref
- \Etoc@global\def\etocthelink##1{\hyperlink{#3}{##1}}%
- \else
- \Etoc@global\let\etocthelink\@firstofone
- \fi
- \Etoc@global\def\etocthepage {#2}%
- \ifEtoc@hyperref
- \ifx\etocthepage\@empty
- \Etoc@global\let\etocthelinkedpage\@empty
- \else
- \Etoc@global\def\etocthelinkedpage{\hyperlink {#3}{#2}}%
- \fi
- \else
- \Etoc@global\let\etocthelinkedpage\etocthepage
- \fi
- \Etoc@global\def\etocthename{#1}%
- \futurelet\Etoc@getnb@token\Etoc@@getnb #1\hspace\etoc@
- \ifEtoc@hyperref
- \def\Etoc@tmp##1##2{\Etoc@global\def##2{\hyperlink{#3}{##1}}}%
- \expandafter\Etoc@tmp\expandafter{\etocthename}\etocthelinkedname
- \ifEtoc@numbered
- \expandafter\Etoc@tmp\expandafter{\etocthenumber}\etocthelinkednumber
- \else
- \Etoc@global\let\etocthelinkednumber\@empty
- \fi
- \else
- \Etoc@global\let\etocthelinkedname \etocthename
- \Etoc@global\let\etocthelinkednumber\etocthenumber
- \fi
- \Etoc@global\expandafter\let\csname etoclink \endcsname \etocthelink
- \Etoc@global\expandafter\let\csname etocname \endcsname \etocthename
- \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthenumber
- \Etoc@global\expandafter\let\csname etocpage \endcsname \etocthepage
- \ifEtoc@hyperref
- \Etoc@lxyz@linktoc
- \fi
- }
- \def\Etoc@lxyz@linktoc{%
- \ifcase\Hy@linktoc
- \or
- \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname
- \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber
- \or % page
- \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage
- \else % all
- \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname
- \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber
- \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage
- \fi
- }
- \def\Etoc@@getnb {%
- \let\Etoc@next\Etoc@getnb
- \ifx\Etoc@getnb@token\@sptoken\let\Etoc@next\Etoc@getnb@nonbr\fi
- \ifx\Etoc@getnb@token\bgroup \let\Etoc@next\Etoc@getnb@nonbr\fi
- \Etoc@next
- }
- \def\Etoc@getnb #1{%
- \in@{#1}{\numberline\chapternumberline\partnumberline\booknumberline}%
- \ifin@
- \let\Etoc@next\Etoc@getnb@nmbrd
- \else
- \ifnum\Etoc@level=\m@ne
- \let\Etoc@next\Etoc@@getit
- \else
- \let\Etoc@next\Etoc@getnb@nonbr
- \fi
- \in@{#1}{\nonumberline}%
- \ifin@
- \let\Etoc@next\Etoc@getnb@nonumberline
- \fi
- \fi
- \Etoc@next #1%
- }
- \def\Etoc@getnb@nmbrd #1#2{%
- \Etoc@global\Etoc@numberedtrue
- \Etoc@global\def\etocthenumber {#2}%
- \Etoc@getnb@nmbrd@getname\@empty
- }%
- \def\Etoc@getnb@nmbrd@getname #1\hspace\etoc@ {%
- \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}%
- }
- \def\Etoc@getnb@nonbr #1\etoc@ {%
- \Etoc@global\Etoc@numberedfalse
- \Etoc@global\let\etocthenumber \@empty
- }
- \def\Etoc@getnb@nonumberline #1\hspace\etoc@ {%
- \Etoc@global\Etoc@numberedfalse
- \Etoc@global\let\etocthenumber \@empty
- \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{\@gobble#1}%
- }
- \def\Etoc@@getit #1\hspace#2{%
- \ifx\etoc@#2%
- \Etoc@global\Etoc@numberedfalse
- \Etoc@global\let\etocthenumber \@empty
- \else
- \Etoc@global\Etoc@numberedtrue
- \Etoc@global\def\etocthenumber {#1}%
- \expandafter\Etoc@getit@getname \expandafter\@empty
- \fi
- }
- \def\Etoc@getit@getname #1\hspace\etoc@ {%
- \Etoc@global\expandafter\def\expandafter\etocthename\expandafter{#1}%
- }
- \let\etocthename \@empty
- \let\etocthenumber \@empty
- \let\etocthepage \@empty
- \let\etocthelinkedname \@empty
- \let\etocthelinkednumber \@empty
- \let\etocthelinkedpage \@empty
- \let\etocthelink \@firstofone
- \DeclareRobustCommand*{\etocname} {}
- \DeclareRobustCommand*{\etocnumber}{}
- \DeclareRobustCommand*{\etocpage} {}
- \DeclareRobustCommand*{\etoclink} {\@firstofone}
- \DeclareRobustCommand*{\etocifnumbered}
- {\ifEtoc@numbered\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
- \read \Etoc@tf to \Etoc@buffer
- \Etoc@toctoks=\expandafter\expandafter\expandafter
- {\expandafter\the\expandafter\Etoc@toctoks\Etoc@buffer}%
- \expandafter\Etoc@readtoc
- \fi
- }
- \Etoc@toctoks {}% (superfluous, but for clarity)
- \AtBeginDocument{\IfFileExists{\jobname.toc}
- {{\endlinechar=\m@ne
- \makeatletter
- \newread\Etoc@tf
- \openin\Etoc@tf\@filef@und
- \Etoc@readtoc
- \global\Etoc@toctoks=\expandafter{\the\Etoc@toctoks}%
- \closein\Etoc@tf}}
- {\typeout{No file \jobname.toc.}}}
- \def\Etoc@openouttoc{%
- \ifEtoc@hyperref
- \ifx\hyper@last\@undefined
- \IfFileExists{\jobname .toc}
- {\Hy@WarningNoLine
- {old toc file detected; run LaTeX again (cheers from `etoc')}%
- \global\Etoc@toctoks={}%
- }
- {}%
- \fi
- \fi
- \if@filesw
- \newwrite \tf@toc
- \immediate \openout \tf@toc \jobname .toc\relax
- \fi
- \global\let\Etoc@openouttoc\empty
- }
- \def\Etoc@toctoc{%
- \gdef\Etoc@stackofends{{-3}{}}%
- \global\let\Etoc@level\Etoc@minf
- \global\let\Etoc@virtualtop\Etoc@minf
- \the\Etoc@toctoks
- \ifEtoc@notactive
- \else
- \gdef\Etoc@level{-\thr@@}%
- \Etoc@doendsandbegin
- \fi
- }
- \def\Etoc@@startlocaltoc#1#2{%
- \ifEtoc@localtoc
- \ifnum #1=#2\relax
- \global\let\etoclocaltop\Etoc@virtualtop
- \Etoc@@startlocaltochook
- \etoclocaltableofcontentshook
- \ifEtoc@etocstyle
- \etocetoclocaltocmaketitle
- \fi
- \ifx\Etoc@aftertitlehook\@empty
- \else
- \ifEtoc@localtoctotoc
- \ifEtoc@ouroboros
- \else
- \let\Etoc@tmp\contentsline
- \def\contentsline{\let\contentsline\Etoc@tmp\Etoc@gobblethreeorfour}%
- \fi
- \fi
- \fi
- \global\Etoc@notactivefalse
- \fi
- \fi
- }
- \let\etoc@startlocaltoc\@gobble
- \let\Etoc@@startlocaltoc@toc\Etoc@@startlocaltoc
- \let\Etoc@@startlocaltochook\@empty
- \unless\ifEtoc@deeplevels
- \def\etocdivisionnameatlevel#1{%
- \ifcase\numexpr#1\relax
- \ifdefined\c@chapter chapter\else section\fi%
- \or section%
- \or subsection%
- \or subsubsection%
- \or paragraph%
- \or subparagraph%
- \or empty%
- \else\ifnum\numexpr#1<\m@ne
- book%
- \else
- part%
- \fi
- \fi
- }
- \else
- \def\etocdivisionnameatlevel#1{%
- \ifcase\numexpr#1\relax
- \ifdefined\c@chapter chapter\else section\fi%
- \or section%
- \or subsection%
- \or subsubsection%
- \or subsubsubsection%
- \or subsubsubsubsection%
- \or subsubsubsubsubsection%
- \or subsubsubsubsubsubsection%
- \or paragraph%
- \or subparagraph%
- \else\ifnum\numexpr#1>\z@
- empty%
- \else\ifnum\numexpr#1=\m@ne
- part%
- \else
- book%
- \fi\fi
- \fi
- }
- \fi
- \def\etoclocalheadtotoc#1#2{\addcontentsline{toc}{@#1}{#2}}
- \def\etocglobalheadtotoc{\addcontentsline{toc}}
- \providecommand*\UseName{\@nameuse}
- \def\etocetoclocaltocmaketitle{%
- \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\localcontentsname}%
- \if@noskipsec\leavevmode\par\fi
- \etociflocaltoctotoc
- {\etocifisstarred
- {}% star variant, do not add to toc
- {\etoclocalheadtotoc
- {\etocdivisionnameatlevel{\etoclocaltop+1}}%
- {\localcontentsname}%
- }%
- }%
- {}%
- }%
- \def\localcontentsname {\contentsname}%
- \let\etoclocaltableofcontentshook\@empty
- \if1\ifEtoc@lof0\fi\ifEtoc@lot0\fi1%
- \else
- \AtBeginDocument{%
- \let\Etoc@originaladdcontentsline\addcontentsline
- \def\addcontentsline{\Etoc@hackedaddcontentsline}%
- }%
- \fi
- \ifEtoc@lof
- \ifEtoc@lot
- \def\Etoc@hackedaddcontentsline#1{%
- \expanded{\noexpand\in@{.#1,}}{.lof,.lot,}%
- \ifin@\expandafter\Etoc@hackedaddcontentsline@i
- \else\expandafter\Etoc@originaladdcontentsline
- \fi {#1}}
- \else
- \def\Etoc@hackedaddcontentsline#1{%
- \expanded{\noexpand\in@{.#1,}}{.lof,}%
- \ifin@\expandafter\Etoc@hackedaddcontentsline@i
- \else\expandafter\Etoc@originaladdcontentsline
- \fi {#1}}
- \fi
- \else
- \def\Etoc@hackedaddcontentsline#1{%
- \expanded{\noexpand\in@{.#1,}}{.lot,}%
- \ifin@\expandafter\Etoc@hackedaddcontentsline@i
- \else\expandafter\Etoc@originaladdcontentsline
- \fi {#1}}
- \fi
- \def\Etoc@hackedaddcontentsline@i#1#2#3{%
- \expanded{\noexpand\in@{.#1;#2,}}{.lof;figure,.lot;table,}%
- \ifin@
- \addtocontents {toc}{%
- \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}%
- \ifdefined\protected@file@percent\protected@file@percent\fi
- }%
- \fi
- \Etoc@originaladdcontentsline{#1}{#2}{#3}%
- }
- \unless\ifdefined\expanded
- \def\Etoc@hackedaddcontentsline#1{%
- {\edef\Etoc@tmp{\noexpand\in@{.#1,}{\ifEtoc@lof.lof,\fi\ifEtoc@lot.lot,\fi}}\expandafter}%
- \Etoc@tmp
- \ifin@\expandafter\Etoc@hackedaddcontentsline@i
- \else\expandafter\Etoc@originaladdcontentsline
- \fi {#1}%
- }
- \def\Etoc@hackedaddcontentsline@i#1#2#3{%
- {\edef\Etoc@tmp{\noexpand\in@{.#1;#2,}}\expandafter}%
- \Etoc@tmp{.lof;figure,.lot;table,}%
- \ifin@
- \addtocontents {toc}{%
- \protect\contentsline{#2}{#3}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}%
- \ifdefined\protected@file@percent\protected@file@percent\fi
- }%
- \fi
- \Etoc@originaladdcontentsline{#1}{#2}{#3}%
- }
- \fi
- \def\Etoc@@startlocallistof#1#2#3{%
- \ifEtoc@localtoc
- \ifnum #2=#3\relax
- \global\let\etoclocaltop\Etoc@virtualtop
- \global\Etoc@notactivefalse
- \Etoc@@startlocaltochook
- \csname etoclocallistof#1shook\endcsname
- \ifEtoc@etocstyle
- \csname etocetoclistof#1smaketitle\endcsname
- \fi
- \fi
- \fi
- }
- \def\Etoc@@startlocallistof@setlevels#1{%
- \ifnum\etoclocaltop<\z@
- \expandafter\let\csname Etoc@#1@@\endcsname\@ne
- \else
- \expandafter\let\csname Etoc@#1@@\expandafter\endcsname
- \csname Etoc@\the\numexpr\etoclocaltop+\@ne @@\endcsname
- \fi
- \def\Etoc@do##1{%
- \ifnum\etoclevel{##1}>\etoclocaltop
- \expandafter\let\csname Etoc@##1@@\endcsname\Etoc@maxlevel
- \fi}%
- \Etoc@dolevels
- }
- \def\etoclocallistoffigureshook{\etocstandardlines}
- \def\etoclocallistoftableshook {\etocstandardlines}
- \def\locallistfigurename{\listfigurename}
- \def\locallisttablename {\listtablename}
- \def\etocetoclistoffiguresmaketitle{%
- \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallistfigurename}%
- \ifnum\etoclocaltop>\tw@\mbox{}\par\fi
- \etociflocalloftotoc
- {\etocifisstarred
- {}% star variant, do not add to toc
- {\etoclocalheadtotoc
- {\etocdivisionnameatlevel{\etoclocaltop+1}}%
- {\locallistfigurename}%
- }%
- }%
- {}%
- }%
- \def\etocetoclistoftablesmaketitle{%
- \UseName{\etocdivisionnameatlevel{\etoclocaltop+1}}*{\locallisttablename}%
- \ifnum\etoclocaltop>\tw@\mbox{}\par\fi
- \etociflocallottotoc
- {\etocifisstarred
- {}% star variant, do not add to toc
- {\etoclocalheadtotoc
- {\etocdivisionnameatlevel{\etoclocaltop+1}}%
- {\locallisttablename}%
- }%
- }%
- {}%
- }%
- \let\Etoc@listofreset\@empty
- \ifEtoc@lof
- \def\locallistoffigures{%
- \def\Etoc@listofreset{%
- \let\Etoc@currext\Etoc@tocext
- \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc
- \let\Etoc@@startlocaltochook\@empty
- \let\Etoc@listofreset\@empty
- \let\Etoc@listofhook\@empty
- }%
- \let\Etoc@currext\Etoc@lofext
- \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{figure}}%
- \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{figure}}%
- \def\Etoc@listofhook{%
- \def\Etoc@do####1{%
- \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel
- }%
- \Etoc@dolevels
- }%
- \localtableofcontents
- }
- \else
- \def\locallistoffigures{%
- \PackageError{etoc}{%
- \string\locallistoffigures \on@line\space but\MessageBreak
- package was loaded without `lof' option}%
- {Try again with \string\usepackage[lof]{etoc}}%
- }
- \fi
- \ifEtoc@lot
- \def\locallistoftables{%
- \def\Etoc@listofreset{%
- \let\Etoc@currext\Etoc@tocext
- \let\Etoc@@startlocaltoc\Etoc@@startlocaltoc@toc
- \let\Etoc@@startlocaltochook\@empty
- \let\Etoc@listofreset\@empty
- \let\Etoc@listofhook\@empty
- }%
- \let\Etoc@currext\Etoc@lotext
- \def\Etoc@@startlocaltoc{\Etoc@@startlocallistof{table}}%
- \def\Etoc@@startlocaltochook{\Etoc@@startlocallistof@setlevels{table}}%
- \def\Etoc@listofhook{%
- \def\Etoc@do####1{%
- \expandafter\let\csname Etoc@@####1@@\endcsname\Etoc@maxlevel
- }%
- \Etoc@dolevels
- }%
- \localtableofcontents
- }
- \else
- \def\locallistoftables{%
- \PackageError{etoc}{%
- \string\locallistoftable \on@line\space but\MessageBreak
- package was loaded without `lot' option}%
- {Try again with \string\usepackage[lot]{etoc}}%
- }
- \fi
- \def\Etoc@checkifempty {%
- \global\Etoc@isemptytoctrue
- \global\Etoc@stoptocfalse
- \global\let\Etoc@level\Etoc@minf
- \global\let\Etoc@virtualtop\Etoc@minf
- \gdef\Etoc@stackofends{{-3}{}}%
- \begingroup
- \ifEtoc@localtoc
- \def\etoc@startlocaltoc##1{%
- \ifnum##1=\Etoc@tocid\relax
- \global\let\etoclocaltop\Etoc@virtualtop
- \Etoc@@startlocaltochook
- \global\Etoc@notactivefalse
- \fi
- }%
- \let\contentsline\Etoc@testingcontentslinelocal
- \else
- \let\contentsline\Etoc@testingcontentsline
- \fi
- \Etoc@storetocdepth
- \let\Etoc@setlocaltop@doendsandbegin\@empty
- \the\Etoc@toctoks
- \Etoc@restoretocdepth
- \endgroup
- }
- \DeclareRobustCommand*\etocifwasempty
- {\ifEtoc@isemptytoc\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi }
- \expandafter\let\expandafter\etocxifwasempty\csname etocifwasempty \endcsname
- \def\Etoc@testingcontentslinelocal #1{%
- \ifEtoc@stoptoc
- \else
- \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel
- \else
- \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname
- \if @\@car#1\@nil\else\global\let\Etoc@virtualtop\Etoc@level\fi
- \ifEtoc@notactive
- \else
- \ifnum\Etoc@level>\etoclocaltop
- \unless\ifnum\Etoc@level>\c@tocdepth
- \global\Etoc@isemptytocfalse
- \global\Etoc@stoptoctrue
- \fi
- \else
- \global\Etoc@stoptoctrue
- \fi
- \fi
- \fi
- \fi
- \Etoc@gobblethreeorfour{}%
- }
- \def\Etoc@testingcontentsline #1{%
- \ifEtoc@stoptoc
- \else
- \ifnum\csname Etoc@#1@@\endcsname=\Etoc@maxlevel
- \else
- \unless\ifnum\csname Etoc@#1@@\endcsname>\c@tocdepth
- \global\Etoc@isemptytocfalse
- \global\Etoc@stoptoctrue
- \fi
- \fi
- \fi
- \Etoc@gobblethreeorfour{}%
- }
- \def\Etoc@localtableofcontents#1{%
- \gdef\etoclocaltop{-\@m}%
- \Etoc@localtoctrue
- \global\Etoc@isemptytocfalse
- \edef\Etoc@tocid{#1}%
- \ifnum\Etoc@tocid<\@ne
- \setbox0\hbox{\ref{Unknown toc ref \@secondoftwo#1. \space Rerun LaTeX}}%
- \global\Etoc@stoptoctrue
- \gdef\etoclocaltop{-\thr@@}%
- \Etoc@tableofcontents
- \expandafter\Etoc@gobtoetoc@
- \fi
- \global\Etoc@notactivetrue
- \ifEtoc@checksemptiness
- \Etoc@checkifempty
- \fi
- \ifEtoc@isemptytoc
- \ifEtoc@notactive
- \setbox0\hbox{\ref{Unknown toc ID \number\Etoc@tocid. \space Rerun LaTeX}}%
- \global\Etoc@isemptytocfalse
- \global\Etoc@stoptoctrue
- \gdef\etoclocaltop{-\thr@@}%
- \Etoc@tableofcontents
- \expandafter\expandafter\expandafter\Etoc@gobtoetoc@
- \fi
- \else
- \global\Etoc@stoptocfalse
- \global\Etoc@notactivetrue
- \edef\etoc@startlocaltoc##1%
- {\noexpand\Etoc@@startlocaltoc{##1}{\Etoc@tocid}}%
- \Etoc@tableofcontents
- \fi
- \@gobble\etoc@
- \endgroup\ifEtoc@mustclosegroup\endgroup\fi
- \Etoc@tocdepthreset
- \Etoc@listofreset
- \etocaftertochook
- }% \Etoc@localtableofcontents
- \def\Etoc@getref #1{%
- \@ifundefined{r@#1}
- {0}
- {\expandafter\Etoc@getref@i\romannumeral-`0%
- \expandafter\expandafter\expandafter
- \@car\csname r@#1\endcsname0\@nil\@etoc
- }%
- }
- \def\Etoc@getref@i#1#2\@etoc{\ifnum9<1\string#1 #1#2\else 0\fi}
- \def\Etoc@ref#1{\Etoc@localtableofcontents{\Etoc@getref{#1}}}
- \def\Etoc@label#1{\label{#1}\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents}
- \@firstofone{\def\Etoc@again} {\futurelet\Etoc@nexttoken\Etoc@t@bleofcontents}
- \def\Etoc@dothis #1#2\etoc@ {\fi #1}
- \def\Etoc@t@bleofcontents{%
- \gdef\etoclocaltop{-\@M}%
- \ifx\Etoc@nexttoken\label\Etoc@dothis{\expandafter\Etoc@label\@gobble}\fi
- \ifx\Etoc@nexttoken\@sptoken\Etoc@dothis{\Etoc@again}\fi
- \ifx\Etoc@nexttoken\ref\Etoc@dothis{\expandafter\Etoc@ref\@gobble}\fi
- \ifEtoc@tocwithid\Etoc@dothis{\Etoc@localtableofcontents{\c@etoc@tocid}}\fi
- \global\Etoc@isemptytocfalse
- \ifEtoc@checksemptiness\Etoc@checkifempty\fi
- \ifEtoc@isemptytoc
- \ifEtoc@notocifnotoc
- \expandafter\expandafter\expandafter\@gobble
- \fi
- \fi
- \Etoc@tableofcontents
- \endgroup
- \ifEtoc@mustclosegroup\endgroup\fi
- \Etoc@tocdepthreset
- \Etoc@listofreset
- \etocaftertochook
- \@gobble\etoc@
- }% \Etoc@t@bleofcontents
- \def\Etoc@table@fcontents{%
- \refstepcounter{etoc@tocid}%
- \Etoc@tocwithidfalse
- \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents
- }
- \def\Etoc@localtable@fcontents{%
- \refstepcounter{etoc@tocid}%
- \addtocontents{toc}{\string\etoc@startlocaltoc{\the\c@etoc@tocid}}%
- \Etoc@tocwithidtrue
- \futurelet\Etoc@nexttoken\Etoc@t@bleofcontents
- }
- \def\etoctableofcontents{%
- \Etoc@openouttoc
- \Etoc@tocdepthset
- \begingroup
- \@ifstar
- {\let\Etoc@aftertitlehook\@empty\Etoc@table@fcontents}
- {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@table@fcontents}%
- }% \etoctableofcontents
- \def\etocifisstarred{\ifx\Etoc@aftertitlehook\@empty
- \expandafter\@firstoftwo\else
- \expandafter\@secondoftwo
- \fi}
- \let\etocoriginaltableofcontents\tableofcontents
- \let\tableofcontents\etoctableofcontents
- \let\Etoc@listofhook\@empty
- \newcommand*\localtableofcontents{%
- \Etoc@openouttoc
- \Etoc@tocdepthset
- \begingroup
- \Etoc@listofhook
- \@ifstar
- {\let\Etoc@aftertitlehook\@empty\Etoc@localtable@fcontents}
- {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@localtable@fcontents}%
- }% \localtableofcontents
- \newcommand*\localtableofcontentswithrelativedepth[1]{%
- \def\Etoc@@startlocaltochook{%
- \global\c@tocdepth\numexpr\etoclocaltop+#1\relax
- }%
- \def\Etoc@listofreset{\let\Etoc@@startlocaltochook\@empty
- \let\Etoc@listofreset\@empty}%
- \localtableofcontents
- }% \localtableofcontentswithrelativedepth
- \newcommand\etocsettocstyle[2]{%
- \Etoc@etocstylefalse
- \Etoc@classstylefalse
- \def\Etoc@tableofcontents@user@before{#1}%
- \def\Etoc@tableofcontents@user@after {#2}%
- }%
- \def\etocstoretocstyleinto#1{%
- %% \@ifdefinable#1{%
- \edef#1{\noexpand\Etoc@etocstylefalse\noexpand\Etoc@classstylefalse
- \def\noexpand\Etoc@tableofcontents@user@before{%
- \unexpanded\expandafter{\Etoc@tableofcontents@user@before}%
- }%
- \def\noexpand\Etoc@tableofcontents@user@after{%
- \unexpanded\expandafter{\Etoc@tableofcontents@user@after}%
- }%
- }%
- %% }%
- }%
- \def\Etoc@tableofcontents {%
- \Etoc@tableofcontents@etoc@before
- \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi
- \Etoc@tableofcontents@user@before
- \Etoc@tableofcontents@contents
- \ifEtoc@localtoc\ifEtoc@etocstyle\expandafter\expandafter\expandafter\@gobble\fi\fi
- \Etoc@tableofcontents@user@after
- \Etoc@tableofcontents@etoc@after
- \@gobble\etoc@
- }
- \def\Etoc@tableofcontents@etoc@before{%
- \ifnum\c@tocdepth>\Etoc@minf
- \else
- \expandafter\Etoc@gobtoetoc@
- \fi
- \Etoc@par
- \Etoc@beforetitlehook
- \etocbeforetitlehook
- \Etoc@storetocdepth
- \let\Etoc@savedcontentsline\contentsline
- \let\contentsline\Etoc@etoccontentsline
- \ifEtoc@standardlines
- \else
- \def\Etoc@do##1{%
- \expandafter\def\csname etocsaved##1tocline\endcsname
- {\PackageError{etoc}{%
- \expandafter\string\csname etocsaved##1tocline\endcsname\space
- has been deprecated\MessageBreak
- at 1.1a and is removed at 1.2.\MessageBreak
- Use \expandafter\string\csname l@##1\endcsname\space directly.\MessageBreak
- Reported \on@line}%
- {I will use \expandafter\string
- \csname l@##1\endcsname\space myself for this time.%
- }%
- \csname l@##1\endcsname
- }%
- }%
- \Etoc@dolevels
- \fi
- }%
- \def\Etoc@tableofcontents@contents{%
- \Etoc@tocdepthset
- \ifEtoc@parskip\parskip\z@skip\fi
- \Etoc@aftertitlehook
- \gdef\etoclocaltop{-\thr@@}%
- \Etoc@toctoc
- \etocaftercontentshook
- }%
- \def\Etoc@tableofcontents@etoc@after{%
- \@nobreakfalse
- \Etoc@restoretocdepth
- \ifx\Etoc@global\global
- \@ifundefined{tof@finish}
- {}
- {\ifx\tof@finish\@empty
- \else
- \global\let\contentsline\Etoc@savedcontentsline
- \fi
- }%
- \fi
- }
- \def\etocsetstyle#1{\ifcsname Etoc@#1@@\endcsname
- \expandafter\Etoc@setstyle@a
- \else
- \expandafter\Etoc@setstyle@error
- \fi {#1}%
- }
- \def\Etoc@setstyle@error #1{%
- \PackageWarning{etoc}{`#1' is unknown to etoc. \space Did you\MessageBreak
- forget some \string\etocsetlevel{#1}{<level>}?\MessageBreak
- Reported}%
- \@gobblefour
- }
- \def\Etoc@setstyle@a #1{%
- \edef\Etoc@tmp{\the\numexpr\csname Etoc@#1@@\endcsname}%
- \if1\unless\ifnum\Etoc@tmp<\Etoc@maxlevel 0\fi
- \unless\ifnum\Etoc@tmp>\Etoc@minf 0\fi1%
- \Etoc@standardlinesfalse
- \expandafter\Etoc@setstyle@b\expandafter\Etoc@tmp
- \else
- \ifnum\Etoc@tmp=\Etoc@maxlevel
- \in@{.#1,}{.figure,.table,}%
- \ifin@
- \PackageWarning{etoc}
- {You can not use \string\etocsetstyle\space with `#1'.\MessageBreak
- Check the package documentation (in particular about\MessageBreak
- \string\etoclocallistoffigureshook/\string\etoclocallistoftableshook)%
- \MessageBreak on how to customize
- figure and table entries in local\MessageBreak lists. Reported}%
- \else
- \PackageInfo{etoc}
- {Attempt to set the style of `#1',\MessageBreak
- whose level is currently the maximal one \etocthemaxlevel,\MessageBreak
- which is never displayed. \space This will be ignored\MessageBreak
- but note that we do quit compatibility mode.\MessageBreak
- Reported}%
- \Etoc@standardlinesfalse
- \fi
- \else
- \PackageWarning{etoc}{This should not happen. Reported}%
- \fi
- \expandafter\@gobblefour
- \fi
- }
- \long\def\Etoc@setstyle@b#1#2#3#4#5{%
- \expandafter\def\csname Etoc@begin@#1\endcsname {#2}%
- \expandafter\def\csname Etoc@prefix@#1\endcsname {#3}%
- \expandafter\def\csname Etoc@contents@#1\endcsname {#4}%
- \expandafter\def\csname Etoc@end@#1\endcsname {#5}%
- }
- \def\Etoc@setstyle@e#1{%
- \expandafter\let\csname Etoc@begin@#1\endcsname \@empty
- \expandafter\let\csname Etoc@prefix@#1\endcsname \@empty
- \expandafter\let\csname Etoc@contents@#1\endcsname \@empty
- \expandafter\let\csname Etoc@end@#1\endcsname \@empty
- }
- \def\Etoc@storelines@a#1{%
- \noexpand\Etoc@setstyle@b{#1}%
- {\expandafter\Etoc@expandonce\csname Etoc@begin@#1\endcsname}%
- {\expandafter\Etoc@expandonce\csname Etoc@prefix@#1\endcsname}%
- {\expandafter\Etoc@expandonce\csname Etoc@contents@#1\endcsname}%
- {\expandafter\Etoc@expandonce\csname Etoc@end@#1\endcsname}%
- }
- \def\Etoc@expandonce#1{\unexpanded\expandafter{#1}}
- \def\etocstorelinestylesinto#1{%
- \edef#1{\Etoc@storelines@a{-2}\Etoc@storelines@a{-1}\Etoc@storelines@a{0}%
- \Etoc@storelines@a {1}\Etoc@storelines@a {2}\Etoc@storelines@a{3}%
- \Etoc@storelines@a {4}\Etoc@storelines@a {5}%
- \ifEtoc@deeplevels
- \Etoc@storelines@a{6}\Etoc@storelines@a{7}\Etoc@storelines@a{8}%
- \Etoc@storelines@a{9}\Etoc@storelines@a{10}\Etoc@storelines@a{11}%
- \fi
- }%
- }
- \def\etocstorethislinestyleinto#1#2{%
- \edef#2{\expandafter\Etoc@storelines@a\expandafter{\number\etoclevel{#1}}}%
- }%
- \def\etocfontminustwo {\normalfont \LARGE \bfseries}
- \def\etocfontminusone {\normalfont \large \bfseries}
- \def\etocfontzero {\normalfont \large \bfseries}
- \def\etocfontone {\normalfont \normalsize \bfseries}
- \def\etocfonttwo {\normalfont \normalsize}
- \def\etocfontthree {\normalfont \footnotesize}
- \def\etocsepminustwo {4ex \@plus .5ex \@minus .5ex}
- \def\etocsepminusone {4ex \@plus .5ex \@minus .5ex}
- \def\etocsepzero {2.5ex \@plus .4ex \@minus .4ex}
- \def\etocsepone {1.5ex \@plus .3ex \@minus .3ex}
- \def\etocseptwo {.5ex \@plus .1ex \@minus .1ex}
- \def\etocsepthree {.25ex \@plus .05ex \@minus .05ex}
- \def\etocbaselinespreadminustwo {1}
- \def\etocbaselinespreadminusone {1}
- \def\etocbaselinespreadzero {1}
- \def\etocbaselinespreadone {1}
- \def\etocbaselinespreadtwo {1}
- \def\etocbaselinespreadthree {.9}
- \def\etocminustwoleftmargin {1.5em plus 0.5fil}
- \def\etocminustworightmargin {1.5em plus -0.5fil}
- \def\etocminusoneleftmargin {1em}
- \def\etocminusonerightmargin {1em}
- \def\etoctoclineleaders
- {\hbox{\normalfont\normalsize\hb@xt@2ex {\hss.\hss}}}
- \def\etocabbrevpagename {p.~}
- \def\etocpartname {Part}
- \def\etocbookname {Book}
- \def\etocdefaultlines{%
- \Etoc@standardlinesfalse
- \etocdefaultlines@setbook
- \etocdefaultlines@setpart
- \etocdefaultlines@setchapter
- \etocdefaultlines@setsection
- \etocdefaultlines@setsubsection
- \etocdefaultlines@setsubsubsection
- \etocdefaultlines@setdeeperones
- }
- \def\etocnoprotrusion{\leavevmode\kern-\p@\kern\p@}
- \@ifclassloaded{memoir}{%
- \def\etocdefaultlines@setbook{%
- \Etoc@setstyle@b
- {-2}%
- {\addpenalty\@M\etocskipfirstprefix}
- {\addpenalty\@secpenalty}
- {\begingroup
- \etocfontminustwo
- \addvspace{\etocsepminustwo}%
- \parindent \z@
- \leftskip \etocminustwoleftmargin
- \rightskip \etocminustworightmargin
- \parfillskip \@flushglue
- \vbox{\etocifnumbered{\etoclink{\etocbookname\enspace\etocthenumber:\quad}}{}%
- \etocname
- \baselineskip\etocbaselinespreadminustwo\baselineskip
- \par}%
- \addpenalty\@M\addvspace{\etocsepminusone}%
- \endgroup}
- {}%
- }
- }{\let\etocdefaultlines@setbook\@empty}
- \def\etocdefaultlines@setpart{%
- \Etoc@setstyle@b
- {-1}%
- {\addpenalty\@M\etocskipfirstprefix}
- {\addpenalty\@secpenalty}
- {\begingroup
- \etocfontminusone
- \addvspace{\etocsepminusone}%
- \parindent \z@
- \leftskip \etocminusoneleftmargin
- \rightskip \etocminusonerightmargin
- \parfillskip \@flushglue
- \vbox{\etocifnumbered{\etoclink{\etocpartname\enspace\etocthenumber.\quad}}{}%
- \etocname
- \baselineskip\etocbaselinespreadminusone\baselineskip
- \par}%
- \addpenalty\@M\addvspace{\etocsepzero}%
- \endgroup}
- {}%
- }
- \def\etocdefaultlines@setchapter{%
- \Etoc@setstyle@b
- {0}%
- {\addpenalty\@M\etocskipfirstprefix}
- {\addpenalty\@itempenalty}
- {\begingroup
- \etocfontzero
- \addvspace{\etocsepzero}%
- \parindent \z@ \parfillskip \@flushglue
- \vbox{\etocifnumbered{\etocnumber.\enspace}{}\etocname
- \baselineskip\etocbaselinespreadzero\baselineskip
- \par}%
- \endgroup}
- {\addpenalty{-\@highpenalty}\addvspace{\etocsepminusone}}%
- }
- \def\etocdefaultlines@setsection{%
- \Etoc@setstyle@b
- {1}%
- {\addpenalty\@M\etocskipfirstprefix}
- {\addpenalty\@itempenalty}
- {\begingroup
- \etocfontone
- \addvspace{\etocsepone}%
- \parindent \z@ \parfillskip \z@
- \setbox\z@\vbox{\parfillskip\@flushglue
- \etocname\par
- \setbox\tw@\lastbox
- \global\setbox\@ne\hbox{\unhbox\tw@\ }}%
- \dimen\z@=\wd\@ne
- \setbox\z@=\etoctoclineleaders
- \advance\dimen\z@\wd\z@
- \etocifnumbered
- {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}}
- {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}%
- \advance\dimen\z@\wd\tw@
- \ifdim\dimen\z@ < \linewidth
- \vbox{\etocname~%
- \leaders\box\z@\hfil\box\tw@
- \baselineskip\etocbaselinespreadone\baselineskip
- \par}%
- \else
- \vbox{\etocname~%
- \leaders\copy\z@\hfil\break
- \hbox{}\leaders\box\z@\hfil\box\tw@
- \baselineskip\etocbaselinespreadone\baselineskip
- \par}%
- \fi
- \endgroup}
- {\addpenalty\@secpenalty\addvspace{\etocsepzero}}%
- }
- \def\etocdefaultlines@setsubsection{%
- \Etoc@setstyle@b
- {2}%
- {\addpenalty\@medpenalty\etocskipfirstprefix}
- {\addpenalty\@itempenalty}
- {\begingroup
- \etocfonttwo
- \addvspace{\etocseptwo}%
- \parindent \z@ \parfillskip \z@
- \setbox\z@\vbox{\parfillskip\@flushglue
- \etocname\par\setbox\tw@\lastbox
- \global\setbox\@ne\hbox{\unhbox\tw@}}%
- \dimen\z@=\wd\@ne
- \setbox\z@=\etoctoclineleaders
- \advance\dimen\z@\wd\z@
- \etocifnumbered
- {\setbox\tw@\hbox{\etocnumber, \etocabbrevpagename\etocpage\etocnoprotrusion}}
- {\setbox\tw@\hbox{\etocabbrevpagename\etocpage\etocnoprotrusion}}%
- \advance\dimen\z@\wd\tw@
- \ifdim\dimen\z@ < \linewidth
- \vbox{\etocname~%
- \leaders\box\z@\hfil\box\tw@
- \baselineskip\etocbaselinespreadtwo\baselineskip
- \par}%
- \else
- \vbox{\etocname~%
- \leaders\copy\z@\hfil\break
- \hbox{}\leaders\box\z@\hfil\box\tw@
- \baselineskip\etocbaselinespreadtwo\baselineskip
- \par}%
- \fi
- \endgroup}
- {\addpenalty\@secpenalty\addvspace{\etocsepone}}%
- }
- \def\etocdefaultlines@setsubsubsection{%
- \Etoc@setstyle@b
- {3}%
- {\addpenalty\@M
- \etocfontthree
- \vspace{\etocsepthree}%
- \noindent
- \etocskipfirstprefix}
- {\allowbreak\,--\,}
- {\etocname}
- {.\hfil
- \begingroup
- \baselineskip\etocbaselinespreadthree\baselineskip
- \par
- \endgroup
- \addpenalty{-\@highpenalty}}
- }
- \def\etocdefaultlines@setdeeperones{%
- \Etoc@setstyle@e{4}%
- \Etoc@setstyle@e{5}%
- \ifEtoc@deeplevels
- \Etoc@setstyle@e{6}%
- \Etoc@setstyle@e{7}%
- \Etoc@setstyle@e{8}%
- \Etoc@setstyle@e{9}%
- \Etoc@setstyle@e{10}%
- \Etoc@setstyle@e{11}%
- \fi
- }
- \def\etocabovetocskip{3.5ex \@plus 1ex \@minus .2ex}
- \def\etocbelowtocskip{3.5ex \@plus 1ex \@minus .2ex}
- \def\etoccolumnsep{2em}
- \def\etocmulticolsep{0ex}
- \def\etocmulticolpretolerance{-1}
- \def\etocmulticoltolerance{200}
- \def\etocdefaultnbcol{2}
- \def\etocinnertopsep{2ex}
- \newcommand\etocmulticolstyle[2][\etocdefaultnbcol]{%
- \etocsettocstyle
- {\let\etocoldpar\par
- \addvspace{\etocabovetocskip}%
- \ifnum #1>\@ne
- \expandafter\@firstoftwo
- \else \expandafter\@secondoftwo
- \fi
- {\multicolpretolerance\etocmulticolpretolerance
- \multicoltolerance\etocmulticoltolerance
- \setlength{\columnsep}{\etoccolumnsep}%
- \setlength{\multicolsep}{\etocmulticolsep}%
- \begin{multicols}{#1}[#2\etocoldpar\addvspace{\etocinnertopsep}]}
- {#2\ifvmode\else\begingroup\interlinepenalty\@M\parskip\z@skip
- \@@par\endgroup
- \fi
- \nobreak\addvspace{\etocinnertopsep}%
- \pretolerance\etocmulticolpretolerance
- \tolerance\etocmulticoltolerance}%
- }%
- {\ifnum #1>\@ne
- \expandafter\@firstofone
- \else \expandafter\@gobble
- \fi
- {\end{multicols}}%
- \addvspace{\etocbelowtocskip}}%
- }
- \def\etocinnerbottomsep{3.5ex}
- \def\etocinnerleftsep{2em}
- \def\etocinnerrightsep{2em}
- \def\etoctoprule{\hrule}
- \def\etocleftrule{\vrule}
- \def\etocrightrule{\vrule}
- \def\etocbottomrule{\hrule}
- \def\etoctoprulecolorcmd{\relax}
- \def\etocbottomrulecolorcmd{\relax}
- \def\etocleftrulecolorcmd{\relax}
- \def\etocrightrulecolorcmd{\relax}
- \def\etoc@ruledheading #1{%
- \hb@xt@\linewidth{\color@begingroup
- \hss #1\hss\hskip-\linewidth
- \etoctoprulecolorcmd\leaders\etoctoprule\hss
- \phantom{#1}%
- \leaders\etoctoprule\hss\color@endgroup}%
- \nointerlineskip\nobreak\vskip\etocinnertopsep}
- \newcommand*\etocruledstyle[2][\etocdefaultnbcol]{%
- \etocsettocstyle
- {\addvspace{\etocabovetocskip}%
- \ifnum #1>\@ne
- \expandafter\@firstoftwo
- \else \expandafter\@secondoftwo
- \fi
- {\multicolpretolerance\etocmulticolpretolerance
- \multicoltolerance\etocmulticoltolerance
- \setlength{\columnsep}{\etoccolumnsep}%
- \setlength{\multicolsep}{\etocmulticolsep}%
- \begin{multicols}{#1}[\etoc@ruledheading{#2}]}
- {\etoc@ruledheading{#2}%
- \pretolerance\etocmulticolpretolerance
- \tolerance\etocmulticoltolerance}}
- {\ifnum #1>\@ne\expandafter\@firstofone
- \else \expandafter\@gobble
- \fi
- {\end{multicols}}%
- \addvspace{\etocbelowtocskip}}}
- \def\etocframedmphook{\relax}
- \long\def\etocbkgcolorcmd{\relax}
- \long\def\Etoc@relax{\relax}
- \newbox\etoc@framed@titlebox
- \newbox\etoc@framed@contentsbox
- \newcommand*\etocframedstyle[2][\etocdefaultnbcol]{%
- \etocsettocstyle{%
- \addvspace{\etocabovetocskip}%
- \sbox\z@{#2}%
- \dimen\z@\dp\z@
- \ifdim\wd\z@<\linewidth \dp\z@\z@ \else \dimen\z@\z@ \fi
- \setbox\etoc@framed@titlebox=\hb@xt@\linewidth{\color@begingroup
- \hss
- \ifx\etocbkgcolorcmd\Etoc@relax
- \else
- \sbox\tw@{\color{white}%
- \vrule\@width\wd\z@\@height\ht\z@\@depth\dimen\z@}%
- \ifdim\wd\z@<\linewidth \dp\tw@\z@\fi
- \box\tw@
- \hskip-\wd\z@
- \fi
- \copy\z@
- \hss
- \hskip-\linewidth
- \etoctoprulecolorcmd\leaders\etoctoprule\hss
- \hskip\wd\z@
- \etoctoprulecolorcmd\leaders\etoctoprule\hss\color@endgroup}%
- \setbox\z@\hbox{\etocleftrule\etocrightrule}%
- \dimen\tw@\linewidth\advance\dimen\tw@-\wd\z@
- \advance\dimen\tw@-\etocinnerleftsep
- \advance\dimen\tw@-\etocinnerrightsep
- \setbox\etoc@framed@contentsbox=\vbox\bgroup
- \hsize\dimen\tw@
- \kern\dimen\z@
- \vskip\etocinnertopsep
- \hbox\bgroup
- \begin{minipage}{\hsize}%
- \etocframedmphook
- \ifnum #1>\@ne
- \expandafter\@firstoftwo
- \else \expandafter\@secondoftwo
- \fi
- {\multicolpretolerance\etocmulticolpretolerance
- \multicoltolerance\etocmulticoltolerance
- \setlength{\columnsep}{\etoccolumnsep}%
- \setlength{\multicolsep}{\etocmulticolsep}%
- \begin{multicols}{#1}}
- {\pretolerance\etocmulticolpretolerance
- \tolerance\etocmulticoltolerance}}
- {\ifnum #1>\@ne\expandafter\@firstofone
- \else \expandafter\@gobble
- \fi
- {\end{multicols}\unskip }%
- \end{minipage}%
- \egroup
- \vskip\etocinnerbottomsep
- \egroup
- \vbox{\hsize\linewidth
- \ifx\etocbkgcolorcmd\Etoc@relax
- \else
- \kern\ht\etoc@framed@titlebox
- \kern\dp\etoc@framed@titlebox
- \hb@xt@\linewidth{\color@begingroup
- \etocleftrulecolorcmd\etocleftrule
- \etocbkgcolorcmd
- \leaders\vrule
- \@height\ht\etoc@framed@contentsbox
- \@depth\dp\etoc@framed@contentsbox
- \hss
- \etocrightrulecolorcmd\etocrightrule
- \color@endgroup}\nointerlineskip
- \vskip-\dp\etoc@framed@contentsbox
- \vskip-\ht\etoc@framed@contentsbox
- \vskip-\dp\etoc@framed@titlebox
- \vskip-\ht\etoc@framed@titlebox
- \fi
- \box\etoc@framed@titlebox\nointerlineskip
- \hb@xt@\linewidth{\color@begingroup
- {\etocleftrulecolorcmd\etocleftrule}%
- \hss\box\etoc@framed@contentsbox\hss
- \etocrightrulecolorcmd\etocrightrule\color@endgroup}
- \nointerlineskip
- \vskip\ht\etoc@framed@contentsbox
- \vskip\dp\etoc@framed@contentsbox
- \hb@xt@\linewidth{\color@begingroup\etocbottomrulecolorcmd
- \leaders\etocbottomrule\hss\color@endgroup}}
- \addvspace{\etocbelowtocskip}}}
- \newcommand\etoc@multicoltoc[2][\etocdefaultnbcol]{%
- \etocmulticolstyle[#1]{#2}%
- \tableofcontents}
- \newcommand\etoc@multicoltoci[2][\etocdefaultnbcol]{%
- \etocmulticolstyle[#1]{#2}%
- \tableofcontents*}
- \newcommand\etoc@local@multicoltoc[2][\etocdefaultnbcol]{%
- \etocmulticolstyle[#1]{#2}%
- \localtableofcontents}
- \newcommand\etoc@local@multicoltoci[2][\etocdefaultnbcol]{%
- \etocmulticolstyle[#1]{#2}%
- \localtableofcontents*}
- \newcommand*\etoc@ruledtoc[2][\etocdefaultnbcol]{%
- \etocruledstyle[#1]{#2}%
- \tableofcontents}
- \newcommand*\etoc@ruledtoci[2][\etocdefaultnbcol]{%
- \etocruledstyle[#1]{#2}%
- \tableofcontents*}
- \newcommand*\etoc@local@ruledtoc[2][\etocdefaultnbcol]{%
- \etocruledstyle[#1]{#2}%
- \localtableofcontents}
- \newcommand*\etoc@local@ruledtoci[2][\etocdefaultnbcol]{%
- \etocruledstyle[#1]{#2}%
- \localtableofcontents*}
- \newcommand*\etoc@framedtoc[2][\etocdefaultnbcol]{%
- \etocframedstyle[#1]{#2}%
- \tableofcontents}
- \newcommand*\etoc@framedtoci[2][\etocdefaultnbcol]{%
- \etocframedstyle[#1]{#2}%
- \tableofcontents*}
- \newcommand*\etoc@local@framedtoc[2][\etocdefaultnbcol]{%
- \etocframedstyle[#1]{#2}%
- \localtableofcontents}
- \newcommand*\etoc@local@framedtoci[2][\etocdefaultnbcol]{%
- \etocframedstyle[#1]{#2}%
- \localtableofcontents*}
- \def\etocmulticol{\begingroup
- \Etoc@mustclosegrouptrue
- \@ifstar
- {\etoc@multicoltoci}
- {\etoc@multicoltoc}}
- \def\etocruled{\begingroup
- \Etoc@mustclosegrouptrue
- \@ifstar
- {\etoc@ruledtoci}
- {\etoc@ruledtoc}}
- \def\etocframed{\begingroup
- \Etoc@mustclosegrouptrue
- \@ifstar
- {\etoc@framedtoci}
- {\etoc@framedtoc}}
- \def\etoclocalmulticol{\begingroup
- \Etoc@mustclosegrouptrue
- \@ifstar
- {\etoc@local@multicoltoci}
- {\etoc@local@multicoltoc}}
- \def\etoclocalruled{\begingroup
- \Etoc@mustclosegrouptrue
- \@ifstar
- {\etoc@local@ruledtoci}
- {\etoc@local@ruledtoc}}
- \def\etoclocalframed{\begingroup
- \Etoc@mustclosegrouptrue
- \@ifstar
- {\etoc@local@framedtoci}
- {\etoc@local@framedtoc}}
- \def\etocmemoirtoctotocfmt #1#2{%
- \PackageWarning{etoc}
- {\string\etocmemoirtoctotocfmt\space is deprecated.\MessageBreak
- Use in its place \string\etocsettoclineforclasstoc,\MessageBreak
- and \string\etocsettoclineforclasslistof{toc} (or {lof}, {lot}).
- I will do this now.\MessageBreak
- Reported}%
- \etocsettoclineforclasstoc{#1}{#2}%
- \etocsettoclineforclasslistof{toc}{#1}{#2}%
- }
- \def\etocsettoclineforclasstoc #1#2{%
- \def\etocclassmaintocaddtotoc{\etocglobalheadtotoc{#1}{#2}}%
- }
- \def\etocsettoclineforclasslistof #1#2#3{%
- \@namedef{etocclasslocal#1addtotoc}{\etoclocalheadtotoc{#2}{#3}}%
- }
- \let\etocclasslocaltocaddtotoc\@empty
- \let\etocclasslocallofaddtotoc\@empty
- \let\etocclasslocallotaddtotoc\@empty
- \ifdefined\c@chapter
- \def\etocclasslocaltocmaketitle{\section*{\localcontentsname}}
- \def\etocclasslocallofmaketitle{\section*{\locallistfigurename}}
- \def\etocclasslocallotmaketitle{\section*{\locallisttablename}}
- \etocsettoclineforclasstoc {chapter}{\contentsname}
- \etocsettoclineforclasslistof{toc}{section}{\localcontentsname}
- \etocsettoclineforclasslistof{lof}{section}{\locallistfigurename}
- \etocsettoclineforclasslistof{lot}{section}{\locallisttablename}
- \else
- \def\etocclasslocaltocmaketitle{\subsection*{\localcontentsname}}%
- \def\etocclasslocallofmaketitle{\subsection*{\locallistfigurename}}%
- \def\etocclasslocallotmaketitle{\subsection*{\locallisttablename}}%
- \etocsettoclineforclasstoc {section}{\contentsname}
- \etocsettoclineforclasslistof{toc}{subsection}{\localcontentsname}
- \etocsettoclineforclasslistof{lof}{subsection}{\locallistfigurename}
- \etocsettoclineforclasslistof{lot}{subsection}{\locallisttablename}
- \fi
- \def\etocclasslocalperhapsaddtotoc #1{%
- \etocifisstarred
- {}
- {\csname ifEtoc@local#1totoc\endcsname
- \csname etocclasslocal#1addtotoc\endcsname
- \fi
- }%
- }
- \def\etocarticlestyle{%
- \etocsettocstyle
- {\ifEtoc@localtoc
- \@nameuse{etocclasslocal\Etoc@currext maketitle}%
- \etocclasslocalperhapsaddtotoc\Etoc@currext
- \else
- \section *{\contentsname
- \@mkboth {\MakeUppercase \contentsname}
- {\MakeUppercase \contentsname}}%
- \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
- \fi
- }
- {}%
- }
- \def\etocarticlestylenomarks{%
- \etocsettocstyle
- {\ifEtoc@localtoc
- \@nameuse{etocclasslocal\Etoc@currext maketitle}%
- \etocclasslocalperhapsaddtotoc\Etoc@currext
- \else
- \section *{\contentsname}%
- \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
- \fi
- }
- {}%
- }
- \def\etocbookstyle{%
- \etocsettocstyle
- {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi
- \ifEtoc@localtoc
- \@nameuse{etocclasslocal\Etoc@currext maketitle}%
- \etocclasslocalperhapsaddtotoc\Etoc@currext
- \else
- \chapter *{\contentsname
- \@mkboth {\MakeUppercase \contentsname}
- {\MakeUppercase \contentsname}}%
- \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
- \fi
- }%
- {\if@restonecol \twocolumn \fi}%
- }
- \def\etocbookstylenomarks{%
- \etocsettocstyle
- {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi
- \ifEtoc@localtoc
- \@nameuse{etocclasslocal\Etoc@currext maketitle}%
- \etocclasslocalperhapsaddtotoc\Etoc@currext
- \else
- \chapter *{\contentsname}%
- \etocifisstarred{}{\etocifmaintoctotoc{\etocclassmaintocaddtotoc}{}}%
- \fi
- }%
- {\if@restonecol \twocolumn \fi}%
- }
- \let\etocreportstyle\etocbookstyle
- \let\etocreportstylenomarks\etocbookstylenomarks
- \def\etocmemoirstyle{%
- \etocsettocstyle
- {\ensureonecol \par \begingroup \phantomsection
- \ifx\Etoc@aftertitlehook\@empty
- \else
- \ifmem@em@starred@listof
- \else
- \ifEtoc@localtoc
- \etocclasslocalperhapsaddtotoc\Etoc@currext
- \else
- \ifEtoc@maintoctotoc
- \etocclassmaintocaddtotoc
- \fi
- \fi
- \fi
- \fi
- \ifEtoc@localtoc
- \@namedef{@\Etoc@currext maketitle}{%
- \@nameuse{etocclasslocal\Etoc@currext maketitle}%
- }%
- \fi
- \@nameuse {@\Etoc@currext maketitle} %<< space token here from memoir code
- \ifx\Etoc@aftertitlehook\@empty
- \else
- \Etoc@aftertitlehook \let \Etoc@aftertitlehook \relax
- \fi
- \parskip \cftparskip \@nameuse {cft\Etoc@currext beforelisthook}%
- }%
- {\@nameuse {cft\Etoc@currext afterlisthook}%
- \endgroup\restorefromonecol
- }%
- }
- \let\Etoc@beforetitlehook\@empty
- \if1\@ifclassloaded{scrartcl}0{\@ifclassloaded{scrbook}0{\@ifclassloaded{scrreprt}01}}%
- \expandafter\@gobble
- \else
- \ifdefined\setuptoc
- \def\Etoc@beforetitlehook{%
- \ifEtoc@localtoc
- \etocclasslocalperhapsaddtotoc\Etoc@currext
- \setuptoc{\Etoc@currext}{leveldown}%
- \else
- \etocifisstarred{}{\etocifmaintoctotoc{\setuptoc{toc}{totoc}}}%
- \fi
- }%
- \fi
- \expandafter\@firstofone
- \fi
- {\def\etocclasslocalperhapsaddtotoc #1{%
- \etocifisstarred
- {}%
- {\csname ifEtoc@local#1totoc\endcsname
- \setuptoc{\Etoc@currext}{totoc}%
- \fi
- }%
- }%
- }
- \ifdefined\Iftocfeature
- \def\etoc@Iftocfeature{\Iftocfeature}%
- \else
- \def\etoc@Iftocfeature{\iftocfeature}%
- \fi
- \def\etocscrartclstyle{%
- \etocsettocstyle
- {\ifx\Etoc@currext\Etoc@tocext
- \expandafter\@firstofone
- \else
- \expandafter\@gobble
- \fi
- {\let\if@dynlist\if@tocleft}%
- \edef\@currext{\Etoc@currext}%
- \@ifundefined{listof\@currext name}%
- {\def\list@fname{\listofname~\@currext}}%
- {\expandafter\let\expandafter\list@fname
- \csname listof\@currext name\endcsname}%
- \etoc@Iftocfeature {\@currext}{onecolumn}
- {\etoc@Iftocfeature {\@currext}{leveldown}
- {}
- {\if@twocolumn \aftergroup \twocolumn \onecolumn \fi }}
- {}%
- \etoc@Iftocfeature {\@currext}{numberline}%
- {\def \nonumberline {\numberline {}}}{}%
- \expandafter\tocbasic@listhead\expandafter {\list@fname}%
- \begingroup \expandafter \expandafter \expandafter
- \endgroup \expandafter
- \ifx
- \csname microtypesetup\endcsname \relax
- \else
- \etoc@Iftocfeature {\@currext}{noprotrusion}{}
- {\microtypesetup {protrusion=false}%
- \PackageInfo {tocbasic}%
- {character protrusion at \@currext\space deactivated}}%
- \fi
- \etoc@Iftocfeature{\@currext}{noparskipfake}{}{%
- \ifvmode \@tempskipa\lastskip \vskip-\lastskip
- \addtolength{\@tempskipa}{\parskip}\vskip\@tempskipa\fi
- }%
- \setlength {\parskip }{\z@ }%
- \setlength {\parindent }{\z@ }%
- \setlength {\parfillskip }{\z@ \@plus 1fil}%
- \csname tocbasic@@before@hook\endcsname
- \csname tb@\@currext @before@hook\endcsname
- }% end of before_toc
- {% start of after_toc
- \providecommand\tocbasic@end@toc@file{}\tocbasic@end@toc@file
- \edef\@currext{\Etoc@currext}%
- \csname tb@\@currext @after@hook\endcsname
- \csname tocbasic@@after@hook\endcsname
- }% end of after_toc
- }
- \let\etocscrbookstyle\etocscrartclstyle
- \let\etocscrreprtstyle\etocscrartclstyle
- \def\etocclasstocstyle{\etocarticlestyle}
- \newcommand*\etocmarkboth[1]{%
- \@mkboth{\MakeUppercase{#1}}{\MakeUppercase{#1}}}
- \newcommand*\etocmarkbothnouc[1]{\@mkboth{#1}{#1}}
- \newcommand\etoctocstyle[3][section]{\etocmulticolstyle[#2]%
- {\csname #1\endcsname *{#3}}}
- \newcommand\etoctocstylewithmarks[4][section]{\etocmulticolstyle[#2]%
- {\csname #1\endcsname *{#3\etocmarkboth{#4}}}}
- \newcommand\etoctocstylewithmarksnouc[4][section]{\etocmulticolstyle[#2]%
- {\csname #1\endcsname *{#3\etocmarkbothnouc{#4}}}}
- \def\Etoc@redefetocstylesforchapters{%
- \renewcommand\etoctocstylewithmarks[4][chapter]{%
- \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkboth{##4}}}%
- }
- \renewcommand\etoctocstylewithmarksnouc[4][chapter]{%
- \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3\etocmarkbothnouc{##4}}}%
- }
- \renewcommand\etoctocstyle[3][chapter]{%
- \etocmulticolstyle[##2]{\csname ##1\endcsname *{##3}}
- }
- }
- \@ifclassloaded{scrartcl}
- {\renewcommand*\etocclasstocstyle{\etocscrartclstyle}}{}
- \@ifclassloaded{book}
- {\renewcommand*\etocfontone{\normalfont\normalsize}
- \renewcommand*\etocclasstocstyle{\etocbookstyle}
- \Etoc@redefetocstylesforchapters}{}
- \@ifclassloaded{report}
- {\renewcommand*\etocfontone{\normalfont\normalsize}
- \renewcommand*\etocclasstocstyle{\etocreportstyle}
- \Etoc@redefetocstylesforchapters}{}
- \@ifclassloaded{scrbook}
- {\renewcommand*\etocfontone{\normalfont\normalsize}
- \renewcommand*\etocclasstocstyle{\etocscrbookstyle}
- \Etoc@redefetocstylesforchapters}{}
- \@ifclassloaded{scrreprt}
- {\renewcommand*\etocfontone{\normalfont\normalsize}
- \renewcommand*\etocclasstocstyle{\etocscrreprtstyle}
- \Etoc@redefetocstylesforchapters}{}
- \@ifclassloaded{memoir}
- {\renewcommand*\etocfontone{\normalfont\normalsize}
- \renewcommand*\etocclasstocstyle{\etocmemoirstyle}
- \Etoc@redefetocstylesforchapters}{}
- \def\etoctocloftstyle {%
- \etocsettocstyle{%
- \@cfttocstart
- \par
- \begingroup
- \parindent\z@ \parskip\cftparskip
- \@nameuse{@cftmake\Etoc@currext title}%
- \ifEtoc@localtoc
- \etoctocloftlocalperhapsaddtotoc\Etoc@currext
- \else
- \etocifisstarred {}{\ifEtoc@maintoctotoc\@cftdobibtoc\fi}%
- \fi
- }%
- {%
- \endgroup
- \@cfttocfinish
- }%
- }
- \def\etoctocloftlocalperhapsaddtotoc#1{%
- \etocifisstarred
- {}%
- {\csname ifEtoc@local#1totoc\endcsname
- \ifdefined\c@chapter\def\@tocextra{@section}\else\def\@tocextra{@subsection}\fi
- \csname @cftdobib#1\endcsname
- \fi
- }%
- }
- \def\etoctocbibindstyle {%
- \etocsettocstyle {%
- \toc@start
- \ifEtoc@localtoc
- \@nameuse{etocclasslocal\Etoc@currext maketitle}%
- \etocclasslocalperhapsaddtotoc\Etoc@currext
- \else
- \etoc@tocbibind@dotoctitle
- \fi
- }%
- {\toc@finish}%
- }
- \def\etoc@tocbibind@dotoctitle {%
- \if@bibchapter
- \etocifisstarred
- {\chapter*{\contentsname}\prw@mkboth{\contentsname} % id.
- }%
- {\ifEtoc@maintoctotoc
- \toc@chapter{\contentsname} %<-space from original
- \else
- \chapter*{\contentsname}\prw@mkboth{\contentsname} % id.
- \fi
- }%
- \else
- \etocifisstarred
- {\@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} %<-space
- }
- {\ifEtoc@maintoctotoc
- \toc@section{\@tocextra}{\contentsname} %<-space from original
- \else
- \@nameuse{\@tocextra}*{\contentsname\prw@mkboth{\contentsname}} % id.
- \fi
- }%
- \fi
- }%
- \@ifclassloaded{memoir}
- {}
- {% memoir not loaded
- \@ifpackageloaded{tocloft}
- {\if@cftnctoc\else
- \ifEtoc@keeporiginaltoc
- \else
- \AtBeginDocument{\let\tableofcontents\etoctableofcontents}%
- \fi
- \fi }
- {\AtBeginDocument
- {\@ifpackageloaded{tocloft}
- {\if@cftnctoc\else
- \PackageWarningNoLine {etoc}
- {Package `tocloft' was loaded after `etoc'.\MessageBreak
- To prevent it from overwriting \protect\tableofcontents, it will\MessageBreak
- be tricked into believing to have been loaded with its\MessageBreak
- option `titles'. \space But this will cause the `tocloft'\MessageBreak
- customization of the titles of the main list of figures\MessageBreak
- and list of tables to not apply either.\MessageBreak
- You should load `tocloft' before `etoc'.}%
- \AtEndDocument{\PackageWarning{etoc}
- {Please load `tocloft' before `etoc'!\@gobbletwo}}%
- \fi
- \@cftnctoctrue }%
- {}%
- }%
- }%
- }
- \@ifclassloaded{memoir}
- {}
- {% memoir not loaded
- \AtBeginDocument{%
- \@ifpackageloaded{tocloft}
- {%
- \def\etocclasstocstyle{%
- \etoctocloftstyle
- \Etoc@classstyletrue
- }%
- \ifEtoc@etocstyle
- \ifEtoc@classstyle
- \etocclasstocstyle
- \Etoc@etocstyletrue
- \fi
- \else
- \ifEtoc@classstyle
- \etocclasstocstyle
- \fi
- \fi
- }%
- {% no tocloft
- \@ifpackageloaded {tocbibind}
- {\if@dotoctoc
- \def\etocclasstocstyle{%
- \etoctocbibindstyle
- \Etoc@classstyletrue
- }%
- \ifEtoc@etocstyle
- \ifEtoc@classstyle
- \etocclasstocstyle
- \Etoc@etocstyletrue
- \fi
- \else
- \ifEtoc@classstyle
- \etocclasstocstyle
- \fi
- \fi
- \ifEtoc@keeporiginaltoc
- \else
- \let\tableofcontents\etoctableofcontents
- \fi
- }%
- {}%
- }%
- \@ifpackageloaded{tocbibind}
- {% tocbibind, perhaps with tocloft
- \if@dotoctoc
- \ifEtoc@keeporiginaltoc
- \else
- \let\tableofcontents\etoctableofcontents
- \fi
- \etocsetup{maintoctotoc,localtoctotoc}%
- \PackageInfo{etoc}{%
- Setting (or re-setting) the options `maintoctotoc' and\MessageBreak
- `localtoctotoc' to true as tocbibind was detected and\MessageBreak
- found to be configured for `TOC to toc'.\MessageBreak
- Reported at begin document}%
- \fi
- \if@dotoclof
- \ifEtoc@lof
- \etocsetup{localloftotoc}%
- \PackageInfo{etoc}{%
- Setting (or re-setting) `localloftotoc=true' as the\MessageBreak
- package tocbibind was detected and is configured for\MessageBreak
- `LOF to toc'. Reported at begin document}%
- \fi
- \fi
- \if@dotoclot
- \ifEtoc@lot
- \etocsetup{locallottotoc}%
- \PackageInfo{etoc}{%
- Setting (or re-setting) `locallottotoc=true' as the\MessageBreak
- package tocbibind was detected and is configured for\MessageBreak
- `LOT to toc'. Reported at begin document}%
- \fi
- \fi
- }% end of tocbibind branch
- {}%
- }% end of at begin document
- }% end of not with memoir branch
- \def\Etoc@addtocontents #1#2{%
- \addtocontents {toc}{%
- \protect\contentsline{#1}{#2}{\thepage}{\ifEtoc@hyperref\@currentHref\fi}%
- \ifdefined\protected@file@percent\protected@file@percent\fi
- }%
- }
- \def\Etoc@addcontentsline@ #1#2#3{%
- \@namedef{toclevel@#1}{#3}\addcontentsline {toc}{#1}{#2}%
- }
- \DeclareRobustCommand*{\etoctoccontentsline}
- {\@ifstar{\Etoc@addcontentsline@}{\Etoc@addtocontents}}
- \def\Etoc@addtocontents@immediately#1#2{%
- \begingroup
- \let\Etoc@originalwrite\write
- \def\write{\immediate\Etoc@originalwrite}%
- \Etoc@addtocontents{#1}{#2}%
- \endgroup
- }
- \def\Etoc@addcontentsline@@immediately#1#2#3{%
- \begingroup
- \let\Etoc@originalwrite\write
- \def\write{\immediate\Etoc@originalwrite}%
- \Etoc@addcontentsline@{#1}{#2}{#3}%
- \endgoroup
- }
- \DeclareRobustCommand*{\etocimmediatetoccontentsline}
- {\@ifstar{\Etoc@addcontentsline@@immediately}{\Etoc@addtocontents@immediately}}
- \def\Etoc@storetocdepth {\xdef\Etoc@savedtocdepth{\number\c@tocdepth}}
- \def\Etoc@restoretocdepth {\global\c@tocdepth\Etoc@savedtocdepth\relax}
- \def\etocobeytoctocdepth {\def\etoc@settocdepth
- {\afterassignment\Etoc@@nottoodeep \global\c@tocdepth}}
- \def\Etoc@@nottoodeep {\ifnum\Etoc@savedtocdepth<\c@tocdepth
- \global\c@tocdepth\Etoc@savedtocdepth\relax\fi }
- \def\etocignoretoctocdepth {\let\etoc@settocdepth\@gobble }
- \def\etocsettocdepth {\futurelet\Etoc@nexttoken\Etoc@set@tocdepth }
- \def\Etoc@set@tocdepth {\ifx\Etoc@nexttoken\bgroup
- \expandafter\Etoc@set@tocdepth@
- \else\expandafter\Etoc@set@toctocdepth
- \fi }
- \def\Etoc@set@tocdepth@ #1{\@ifundefined {Etoc@#1@@}
- {\PackageWarning{etoc}
- {Unknown sectioning unit #1, \protect\etocsettocdepth\space ignored}}
- {\global\c@tocdepth\csname Etoc@#1@@\endcsname}%
- }
- \def\Etoc@set@toctocdepth #1#{\Etoc@set@toctocdepth@ }
- \def\Etoc@set@toctocdepth@ #1{%
- \@ifundefined{Etoc@#1@@}%
- {\PackageWarning{etoc}
- {Unknown sectioning depth #1, \protect\etocsettocdepth.toc ignored}}%
- {\addtocontents {toc}
- {\protect\etoc@settocdepth\expandafter\protect\csname Etoc@#1@@\endcsname}}%
- }
- \def\etocimmediatesettocdepth #1#{\Etoc@set@toctocdepth@immediately}
- \def\Etoc@set@toctocdepth@immediately #1{%
- \@ifundefined{Etoc@#1@@}%
- {\PackageWarning{etoc}
- {Unknown sectioning depth #1, \protect\etocimmediatesettocdepth.toc ignored}}%
- {\begingroup
- \let\Etoc@originalwrite\write
- \def\write{\immediate\Etoc@originalwrite}%
- \addtocontents {toc}
- {\protect\etoc@settocdepth\expandafter\protect
- \csname Etoc@#1@@\endcsname}%
- \endgroup
- }%
- }
- \def\etocdepthtag #1#{\Etoc@depthtag }
- \def\Etoc@depthtag #1{\addtocontents {toc}{\protect\etoc@depthtag {#1}}}
- \def\etocimmediatedepthtag #1#{\Etoc@depthtag@immediately }
- \def\Etoc@depthtag@immediately #1{%
- \begingroup
- \let\Etoc@originalwrite\write
- \def\write{\immediate\Etoc@originalwrite}%
- \addtocontents {toc}{\protect\etoc@depthtag {#1}}%
- \endgroup
- }
- \def\etocignoredepthtags {\let\etoc@depthtag \@gobble }
- \def\etocobeydepthtags {\let\etoc@depthtag \Etoc@depthtag@ }
- \def\Etoc@depthtag@ #1{\@ifundefined{Etoc@depthof@#1}%
- {}% ignore in silence if tag has no associated depth
- {\afterassignment\Etoc@@nottoodeep
- \global\c@tocdepth\csname Etoc@depthof@#1\endcsname}%
- }
- \def\etocsettagdepth #1#2{\@ifundefined{Etoc@#2@@}%
- {\PackageWarning{etoc}
- {Unknown sectioning depth #2, \protect\etocsettagdepth\space ignored}}%
- {\@namedef{Etoc@depthof@#1}{\@nameuse{Etoc@#2@@}}}%
- }
- \def\Etoc@tocvsec@err #1{\PackageError {etoc}
- {The command \protect#1\space is incompatible with `etoc'}
- {Use \protect\etocsettocdepth.toc as replacement}%
- }%
- \AtBeginDocument {%
- \@ifclassloaded{memoir}
- {\PackageInfo {etoc}
- {Regarding `memoir' class command \protect\settocdepth, consider\MessageBreak
- \protect\etocsettocdepth.toc as a drop-in replacement with more\MessageBreak
- capabilities (see `etoc' manual). \space
- Also, \protect\etocsettocdepth\MessageBreak
- and \protect\etocsetnexttocdepth\space should be used in place of\MessageBreak
- `memoir' command \protect\maxtocdepth\@gobble}%
- }%
- {\@ifpackageloaded {tocvsec2}{%
- \def\maxtocdepth #1{\Etoc@tocvsec@err \maxtocdepth }%
- \def\settocdepth #1{\Etoc@tocvsec@err \settocdepth }%
- \def\resettocdepth {\@ifstar {\Etoc@tocvsec@err \resettocdepth }%
- {\Etoc@tocvsec@err \resettocdepth }%
- }%
- \def\save@tocdepth #1#2#3{}%
- \let\reset@tocdepth\relax
- \let\remax@tocdepth\relax
- \let\tableofcontents\etoctableofcontents
- \PackageWarningNoLine {etoc}
- {Package `tocvsec2' detected and its modification of\MessageBreak
- \protect\tableofcontents\space reverted. \space Use
- \protect\etocsettocdepth.toc\MessageBreak as a replacement
- for `tocvsec2' toc-related commands}%
- }% tocvsec2 loaded
- {}% tocvsec2 not loaded
- }%
- }%
- \def\invisibletableofcontents {\etocsetnexttocdepth {-3}\tableofcontents }%
- \def\invisiblelocaltableofcontents
- {\etocsetnexttocdepth {-3}\localtableofcontents }%
- \def\etocsetnexttocdepth #1{%
- \@ifundefined{Etoc@#1@@}
- {\PackageWarning{etoc}
- {Unknown sectioning unit #1, \protect\etocsetnextocdepth\space ignored}}
- {\Etoc@setnexttocdepth{\csname Etoc@#1@@\endcsname}}%
- }%
- \def\Etoc@setnexttocdepth#1{%
- \def\Etoc@tocdepthset{%
- \Etoc@tocdepthreset
- \edef\Etoc@tocdepthreset {%
- \global\c@tocdepth\the\c@tocdepth\space
- \global\let\noexpand\Etoc@tocdepthreset\noexpand\@empty
- }%
- \global\c@tocdepth#1%
- \global\let\Etoc@tocdepthset\@empty
- }%
- }%
- \let\Etoc@tocdepthreset\@empty
- \let\Etoc@tocdepthset \@empty
- \def\etocsetlocaltop #1#{\Etoc@set@localtop}%
- \def\Etoc@set@localtop #1{%
- \@ifundefined{Etoc@#1@@}%
- {\PackageWarning{etoc}
- {Unknown sectioning depth #1, \protect\etocsetlocaltop.toc ignored}}%
- {\addtocontents {toc}
- {\protect\etoc@setlocaltop\expandafter\protect\csname Etoc@#1@@\endcsname}}%
- }%
- \def\etocimmediatesetlocaltop #1#{\Etoc@set@localtop@immediately}%
- \def\Etoc@set@localtop@immediately #1{%
- \@ifundefined{Etoc@#1@@}%
- {\PackageWarning{etoc}
- {Unknown sectioning depth #1, \protect\etocimmediatesetlocaltop.toc ignored}}%
- {\begingroup
- \let\Etoc@originalwrite\write
- \def\write{\immediate\Etoc@originalwrite}%
- \addtocontents {toc}
- {\protect\etoc@setlocaltop\expandafter\protect
- \csname Etoc@#1@@\endcsname}%
- \endgroup
- }%
- }%
- \def\etoc@setlocaltop #1{%
- \ifnum#1=\Etoc@maxlevel
- \Etoc@skipthisonetrue
- \else
- \Etoc@skipthisonefalse
- \global\let\Etoc@level #1%
- \global\let\Etoc@virtualtop #1%
- \ifEtoc@localtoc
- \ifEtoc@stoptoc
- \Etoc@skipthisonetrue
- \else
- \ifEtoc@notactive
- \Etoc@skipthisonetrue
- \else
- \unless\ifnum\Etoc@level>\etoclocaltop
- \Etoc@skipthisonetrue
- \global\Etoc@stoptoctrue
- \fi
- \fi
- \fi
- \fi
- \fi
- \let\Etoc@next\@empty
- \ifEtoc@skipthisone
- \else
- \ifnum\Etoc@level>\c@tocdepth
- \else
- \ifEtoc@standardlines
- \else
- \let\Etoc@next\Etoc@setlocaltop@doendsandbegin
- \fi
- \fi
- \fi
- \Etoc@next
- }%
- \def\Etoc@setlocaltop@doendsandbegin{%
- \Etoc@doendsandbegin
- \global\Etoc@skipprefixfalse
- }
- \addtocontents {toc}{\protect\@ifundefined{etoctocstyle}%
- {\let\protect\etoc@startlocaltoc\protect\@gobble
- \let\protect\etoc@settocdepth\protect\@gobble
- \let\protect\etoc@depthtag\protect\@gobble
- \let\protect\etoc@setlocaltop\protect\@gobble}{}}%
- \def\etocstandardlines {\Etoc@standardlinestrue}
- \def\etoctoclines {\Etoc@standardlinesfalse}
- \etocdefaultlines
- \etocstandardlines
- \def\etocstandarddisplaystyle{%
- \PackageWarningNoLine{etoc}{%
- \string\etocstandarddisplaystyle \on@line\MessageBreak
- is deprecated. \space Please use \string\etocclasstocstyle}%
- }
- \expandafter\def\expandafter\etocclasstocstyle\expandafter{%
- \etocclasstocstyle
- \Etoc@classstyletrue
- }
- \def\etocetoclocaltocstyle{\Etoc@etocstyletrue}
- \def\etocusertocstyle{\Etoc@etocstylefalse}
- \etocclasstocstyle
- \etocetoclocaltocstyle
- \etocobeytoctocdepth
- \etocobeydepthtags
- \let\etocbeforetitlehook \@empty
- \let\etocaftertitlehook \@empty
- \let\etocaftercontentshook \@empty
- \let\etocaftertochook \@empty
- \def\etockeeporiginaltableofcontents
- {\Etoc@keeporiginaltoctrue\let\tableofcontents\etocoriginaltableofcontents}%
- \endinput
- %%
- %% End of file `etoc.sty'.
|