From 7517a8cc36ffb0c06ac028f06a69251551d2c939 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 29 Sep 2017 20:37:58 +0000 Subject: bxjscls (28sep17) git-svn-id: svn://tug.org/texlive/trunk@45429 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/etoc/etoc.sty | 390 +++++++++++++++++++----------- 1 file changed, 244 insertions(+), 146 deletions(-) (limited to 'Master/texmf-dist/tex/latex') diff --git a/Master/texmf-dist/tex/latex/etoc/etoc.sty b/Master/texmf-dist/tex/latex/etoc/etoc.sty index 50c507489d8..5fb278c2445 100644 --- a/Master/texmf-dist/tex/latex/etoc/etoc.sty +++ b/Master/texmf-dist/tex/latex/etoc/etoc.sty @@ -23,10 +23,10 @@ %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{etoc} - [2017/09/21 v1.08j Completely customisable TOCs (JFB)] + [2017/09/28 v1.08k Completely customisable TOCs (JFB)] %% %% Package: etoc -%% Version: 1.08j-2017/09/21 +%% Version: 1.08k-2017/09/28 %% License: LPPL 1.3c %% Copyright (C) 2012-2017 Jean-Francois Burnol %% @@ -107,10 +107,10 @@ \let\Etoc@none@@ \Etoc@minf \let\Etoc@levellist\@empty \def\Etoc@newlevel #1{\expandafter\def\expandafter\Etoc@levellist\expandafter - {\Etoc@levellist\Etoc@levellist@elt #1}} + {\Etoc@levellist\Etoc@levellist@elt{#1}}} \def\etocsetlevel#1#2{% - \@ifundefined{Etoc@#1@@}{\expandafter\Etoc@newlevel\csname l@#1\endcsname}{}% - \ifcase#2\relax + \@ifundefined{Etoc@#1@@}{\Etoc@newlevel{#1}}{}% + \ifcase#2\relax \expandafter\let \csname Etoc@#1@@\endcsname\Etoc@@zero@@ \expandafter\let \csname Etoc@#1@\endcsname\Etoc@@zero@ \or @@ -131,19 +131,22 @@ \or \expandafter\let \csname Etoc@#1@@\endcsname\Etoc@@six@@ \else - \ifnum#2=\m@ne - \expandafter\let \csname Etoc@#1@@\endcsname\Etoc@@minusone@@ - \expandafter\let \csname Etoc@#1@\endcsname\Etoc@@minusone@ - \else - \ifnum#2=-\tw@ + \ifnum#2=\m@ne + \expandafter\let \csname Etoc@#1@@\endcsname\Etoc@@minusone@@ + \expandafter\let \csname Etoc@#1@\endcsname\Etoc@@minusone@ + \else + \ifnum#2=-\tw@ \expandafter\let \csname Etoc@#1@@\endcsname\Etoc@@minustwo@@ \expandafter\let \csname Etoc@#1@\endcsname\Etoc@@minustwo@ - \else - \PackageWarning{etoc} + \else + \PackageWarning{etoc} {unexpected value `#2' in \string\etocsetlevel.^^J% Should be -2,-1, 0, 1, 2, 3, 4, 5, or 6. Set to 6 (=ignored)}% - \expandafter\let\csname Etoc@#1@@\endcsname\Etoc@@six@@ -\fi\fi\fi} + \expandafter\let\csname Etoc@#1@@\endcsname\Etoc@@six@@ + \fi + \fi + \fi +} \etocsetlevel{book}{-2} \etocsetlevel{part}{-1} \etocsetlevel{chapter}{0} @@ -161,81 +164,131 @@ \long\def\Etoc@gobblefourorthree#1#2#3{}}% } \def\Etoc@setflags {% - \ifcase \Etoc@level - \global\Etoc@vfalse - \global\Etoc@ivfalse - \global\Etoc@iiifalse - \global\Etoc@iifalse - \global\Etoc@ifalse - \global\Etoc@true - \or - \global\Etoc@vfalse - \global\Etoc@ivfalse - \global\Etoc@iiifalse - \global\Etoc@iifalse - \global\Etoc@itrue - \or - \global\Etoc@vfalse - \global\Etoc@ivfalse - \global\Etoc@iiifalse - \global\Etoc@iitrue - \or - \global\Etoc@vfalse - \global\Etoc@ivfalse - \global\Etoc@iiitrue - \or - \global\Etoc@vfalse - \global\Etoc@ivtrue - \or - \global\Etoc@vtrue - \else - \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 + \ifcase \Etoc@level + \global\Etoc@vfalse + \global\Etoc@ivfalse + \global\Etoc@iiifalse + \global\Etoc@iifalse + \global\Etoc@ifalse + \global\Etoc@true + \or + \global\Etoc@vfalse + \global\Etoc@ivfalse + \global\Etoc@iiifalse + \global\Etoc@iifalse + \global\Etoc@itrue + \or + \global\Etoc@vfalse + \global\Etoc@ivfalse + \global\Etoc@iiifalse + \global\Etoc@iitrue + \or + \global\Etoc@vfalse + \global\Etoc@ivfalse + \global\Etoc@iiitrue + \or + \global\Etoc@vfalse + \global\Etoc@ivtrue + \or + \global\Etoc@vtrue \else - \global\Etoc@jfalse - \global\Etoc@jjtrue + \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@jfalse + \global\Etoc@jjtrue + \fi \fi - \fi} +} \def\Etoc@doends {% \ifcase \Etoc@level - \ifEtoc@v \Etoc@end@five\fi - \ifEtoc@iv \Etoc@end@four\fi + \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@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@v \Etoc@end@five \fi + \ifEtoc@iv \Etoc@end@four \fi \ifEtoc@iii\Etoc@end@three\fi - \ifEtoc@ii \Etoc@end@two\fi + \ifEtoc@ii \Etoc@end@two \fi \or - \ifEtoc@v \Etoc@end@five\fi - \ifEtoc@iv \Etoc@end@four\fi + \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 + \ifEtoc@v \Etoc@end@five \fi + \ifEtoc@iv \Etoc@end@four \fi \or - \ifEtoc@v \Etoc@end@five\fi + \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 + \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@dobegins{% + \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 + \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 + \Etoc@setflags + \Etoc@next +} \def\etocskipfirstprefix {\global\Etoc@skipprefixtrue } \def\Etoc@etoccontentsline #1{% \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname @@ -245,18 +298,22 @@ \ifEtoc@localtoc \ifEtoc@stoptoc\Etoc@skipthisonetrue \else - \ifEtoc@notactive\Etoc@setflags\Etoc@skipthisonetrue + \ifEtoc@notactive\Etoc@setflags + \Etoc@skipthisonetrue \else - \ifnum\Etoc@level<\Etoc@localtop\Etoc@skipthisonetrue - \global\Etoc@stoptoctrue + \ifnum\Etoc@level<\Etoc@localtop + \Etoc@skipthisonetrue + \global\Etoc@stoptoctrue \fi \fi \fi \fi \fi \let\Etoc@next\Etoc@gobblefourorthree - \ifEtoc@skipthisone\else - \ifnum\c@tocdepth<\Etoc@level\else + \ifEtoc@skipthisone + \else + \ifnum\c@tocdepth<\Etoc@level + \else \ifEtoc@standard \let\Etoc@next\Etoc@savedcontentsline \else @@ -264,33 +321,11 @@ \fi \fi \fi - \Etoc@next {#1}% + \Etoc@next{#1}% } \def\Etoc@etoccontentsline@ #1{% - \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 - \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 - \Etoc@setflags - \Etoc@next + \Etoc@doends % separated since 1.08 + \Etoc@dobegins % separated since 1.08k. Does \Etoc@setflags. \Etoc@global\edef\Etoc@prefix {\expandafter\noexpand \csname Etoc@prefix@\csname Etoc@#1@\endcsname\endcsname }% \Etoc@global\edef\Etoc@contents{\expandafter\noexpand @@ -347,12 +382,17 @@ \fi\fi \Etoc@next #1% } +\begingroup\@tfor\x:=NUMBZRLINZ\do{\catcode\expandafter`\x=12 }\lccode`Z `e +\lowercase{\endgroup +\long\def\Etoc@oneifnumberline #1NUMBZRLINZ#2#3\Etoc@next{% + \ifx\etoc@#20\else1\fi +}% \def\Etoc@getnb@nohyp #1#2#3\etoc@ {% \def\Etoc@getname ##1\relax\relax\etoc@ {% \Etoc@global\def\etocthename {##1}% \Etoc@global\def\etocthelinkedname {##1}% }% - \ifx\numberline#1% + \if1\expandafter\Etoc@oneifnumberline\string#1NUMBZRLINZ\etoc@\Etoc@next \Etoc@global\def\etocthenumber {#2}% \Etoc@global\def\etocthelinkednumber {#2}% \Etoc@global\Etoc@numbertrue @@ -362,7 +402,7 @@ \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@ {% \Etoc@global\def\etocthename {##1}% @@ -371,7 +411,7 @@ {\expandafter\hyperlink \Etoc@tmp{##1}}% }% \def\Etoc@getnbr ##1##2##3\etoc@ {% - \ifx\numberline##1% + \if1\expandafter\Etoc@oneifnumberline\string##1NUMBZRLINZ\etoc@\Etoc@next \Etoc@global\def\etocthenumber {##2}% \edef\Etoc@tmp {{#3}}% \Etoc@global\expandafter\def\expandafter\etocthelinkednumber @@ -390,13 +430,14 @@ }% \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@ {% \Etoc@global\def\etocthename {##1}% \Etoc@global\def\etocthelinkedname {##1}% }% - \ifx\relax#2\else + \ifx\relax#2% + \else \Etoc@global\def\etocthenumber {#1}% \Etoc@global\def\etocthelinkednumber {#1}% \Etoc@global\Etoc@numbertrue @@ -410,7 +451,8 @@ \expandafter{\expandafter\hyperlink \Etoc@tmp{##1}}% }% \def\Etoc@getnbr ##1\hspace##2##3\etoc@ {% - \ifx\relax##2\else + \ifx\relax##2% + \else \Etoc@global\def\etocthenumber {##1}% \Etoc@global\expandafter\def\expandafter\etocthelinkednumber \expandafter{\expandafter\hyperlink \Etoc@tmp{##1}}% @@ -476,25 +518,27 @@ \global\let\Etoc@openouttoc\empty } \def\Etoc@toctoc{% - \global\Etoc@vfalse - \global\Etoc@ivfalse - \global\Etoc@iiifalse - \global\Etoc@iifalse - \global\Etoc@ifalse - \global\Etoc@false - \global\Etoc@jfalse - \global\Etoc@jjfalse -\the\Etoc@toctoks -\ifEtoc@notactive\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 \Etoc@end@minustwo\fi -\fi} + \global\Etoc@vfalse + \global\Etoc@ivfalse + \global\Etoc@iiifalse + \global\Etoc@iifalse + \global\Etoc@ifalse + \global\Etoc@false + \global\Etoc@jfalse + \global\Etoc@jjfalse + \the\Etoc@toctoks + \ifEtoc@notactive + \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 \Etoc@end@minustwo\fi + \fi +} \def\etoc@@startlocaltoc#1#2{% \ifEtoc@localtoc \ifnum #1=#2\relax @@ -544,28 +588,39 @@ \expandafter \let\expandafter\etocxifwasempty\csname etocifwasempty \endcsname \def\Etoc@testingcontentslinelocal #1{% - \ifEtoc@stoptoc\else\ifnum\csname Etoc@#1@@\endcsname=\Etoc@@six@@\else + \ifEtoc@stoptoc + \else + \ifnum\csname Etoc@#1@@\endcsname=\Etoc@@six@@ + \else \global\expandafter\let\expandafter\Etoc@level\csname Etoc@#1@@\endcsname - \ifEtoc@notactive\else + \ifEtoc@notactive + \else \ifnum\Etoc@level>\Etoc@localtop - \ifnum\Etoc@level>\c@tocdepth\else - \global\Etoc@emptytocfalse - \global\Etoc@stoptoctrue + \ifnum\Etoc@level>\c@tocdepth + \else + \global\Etoc@emptytocfalse + \global\Etoc@stoptoctrue \fi \else \global\Etoc@stoptoctrue \fi \fi - \fi\fi + \fi + \fi \Etoc@gobblefourorthree\relax } \def\Etoc@testingcontentsline #1{% - \ifEtoc@stoptoc\else - \ifnum\csname Etoc@#1@@\endcsname=\Etoc@@six@@\else - \ifnum\csname Etoc@#1@@\endcsname>\c@tocdepth\else - \global\Etoc@emptytocfalse - \global\Etoc@stoptoctrue - \fi\fi\fi + \ifEtoc@stoptoc + \else + \ifnum\csname Etoc@#1@@\endcsname=\Etoc@@six@@ + \else + \ifnum\csname Etoc@#1@@\endcsname>\c@tocdepth + \else + \global\Etoc@emptytocfalse + \global\Etoc@stoptoctrue + \fi + \fi + \fi \Etoc@gobblefourorthree\relax } \def\Etoc@localtableofcontents#1{% @@ -673,11 +728,11 @@ \let\contentsline\Etoc@etoccontentsline \ifEtoc@standard \else % moved here from \Etoc@toctoc (1.08) - \def\Etoc@levellist@elt####1{\let####1\Etoc@lxyz}% + \def\Etoc@levellist@elt####1{% + \expandafter\let\csname etocsaved####1tocline\expandafter\endcsname + \csname l@####1\endcsname + \expandafter\let\csname l@####1\endcsname\Etoc@lxyz}% \Etoc@levellist - \let\booknumberline\numberline - \let\partnumberline\numberline - \let\chapternumberline\numberline \fi #1% \ifEtoc@parskip\parskip\z@skip\fi %1.07d @@ -1317,10 +1372,53 @@ \global\c@tocdepth\csname Etoc@#1@@\endcsname \global\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\etoc@setlocaltop #1{% + \global\let\Etoc@level #1% + \Etoc@skipthisonefalse + \ifnum\Etoc@level=\Etoc@@six@@ + \Etoc@skipthisonetrue + \else + \ifEtoc@localtoc + \ifEtoc@stoptoc\Etoc@skipthisonetrue + \else + \ifEtoc@notactive + \Etoc@setflags + \Etoc@skipthisonetrue + \else + \ifnum\Etoc@level<\Etoc@localtop + \Etoc@skipthisonetrue + \global\Etoc@stoptoctrue + \fi + \fi + \fi + \fi + \fi + \let\Etoc@next\@gobble + \ifEtoc@skipthisone + \else + \ifnum\c@tocdepth<\Etoc@level + \else + \ifEtoc@standard + \else + \let\Etoc@next\@firstofone + \fi + \fi + \fi + \Etoc@next{\Etoc@doends\Etoc@dobegins}% +}% \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@depthtag\protect\@gobble + \let\protect\etoc@setlocaltop\protect\@gobble}{}}% \def\etocstandardlines {\Etoc@standardtrue} \def\etoctoclines {\Etoc@standardfalse} \etocdefaultlines -- cgit v1.2.3