summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-11-17 22:36:06 +0000
committerKarl Berry <karl@freefriends.org>2019-11-17 22:36:06 +0000
commit305b95e6a4e7344e2a2e66b3a433c526944e3c20 (patch)
tree54bf66200bc6af49bbbf91993190a32c4fcf9050
parent23ef0a47d81811188819422f09392e5220e96b59 (diff)
etoc (17nov19)
git-svn-id: svn://tug.org/texlive/trunk@52842 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/etoc/README.md30
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etoc-DE.pdfbin561953 -> 565252 bytes
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etoc-DE.tex32
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etoc.pdfbin615419 -> 620437 bytes
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etoc.tex28
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-10.tex16
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-20-A.tex25
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-20-B.tex26
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-21-A.tex100
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-21-B.tex49
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-22-A.tex35
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-23.tex80
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-24.tex27
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-25.tex25
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-26.tex20
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-27.tex62
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-28.tex48
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-29.tex120
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-30-A.tex40
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-30-B.tex23
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-31.tex57
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-32.tex22
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-40.tex19
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-46.tex23
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-48.tex74
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-5.tex30
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-52-A.tex47
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-52-B.tex31
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-53.tex67
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-54.tex50
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-6.tex53
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-7.tex32
-rw-r--r--Master/texmf-dist/source/latex/etoc/etoc.dtx471
-rw-r--r--Master/texmf-dist/source/latex/etoc/etoc.ins78
-rw-r--r--Master/texmf-dist/tex/latex/etoc/etoc.sty34
35 files changed, 1579 insertions, 295 deletions
diff --git a/Master/texmf-dist/doc/latex/etoc/README.md b/Master/texmf-dist/doc/latex/etoc/README.md
index 88f2d05bf88..9a186ade41b 100644
--- a/Master/texmf-dist/doc/latex/etoc/README.md
+++ b/Master/texmf-dist/doc/latex/etoc/README.md
@@ -1,6 +1,6 @@
<!-- -->
- Source: etoc.dtx (v1.09-2019/03/09)
+ Source: etoc.dtx (v1.09b-2019/11/17)
Author: Jean-Francois Burnol
Author: Christine Roemer et al. (German tranlation)
Info: Completely customisable TOCs
@@ -48,22 +48,13 @@ to the standard `.toc` file.
INSTALLATION
============
-The simplest is to download
+To extract the package (.sty) and driver (.tex) files from etoc.dtx,
+execute `etex etoc.dtx`.
-> <http://mirrors.ctan.org/install/macros/latex/contrib/etoc.tds.zip>
-
-and then run `unzip etoc.tds.zip -d <DEST>` where `<DEST>` is a
-TDS-compliant repertory.
-
-Else, to extract the package (.sty) and driver (.tex) files from etoc.dtx:
-
-- if etoc.ins is present: etex etoc.ins
-- without etoc.ins: etex etoc.dtx
-
-It is also possible to run latex or pdflatex directly on etoc.dtx.
+It is also possible to execute latex or pdflatex directly on etoc.dtx.
To produce etoc.pdf one can run pdflatex (thrice) directly on etoc.dtx or on
-the file etoc.tex which was extracted from previous step.
+the file etoc.tex which was extracted from `etex etoc.dtx` step.
Options can be set in etoc.tex:
@@ -110,12 +101,21 @@ The Authors of this Work are:
collaborators for the translation into German of the documentation.
This Work consists of the main source file etoc.dtx and the
-derived files etoc.sty, etoc.ins, etoc.tex, etoc-DE.tex,
+derived files etoc.sty, etoc.tex, etoc-DE.tex,
etoc.pdf, etoc-DE.pdf, etoc.dvi, etoc-DE.dvi.
RECENT CHANGES
==============
+v1.09a, v1.09b \[2019/11/17\]
+-----------------------------
+
+Sync with `memoir v3.7i` which has a better location of the TOC
+hyperref anchor. The `\etocaftertitlehook` can now freely be
+used also with memoir class (formerly its usage in case of
+memoir class was preempted by etoc itself). For more details
+refer to the section "Compatibility with the memoir class".
+
v1.09 \[2019/03/09\]
--------------------
diff --git a/Master/texmf-dist/doc/latex/etoc/etoc-DE.pdf b/Master/texmf-dist/doc/latex/etoc/etoc-DE.pdf
index 7c825409068..6b443b78aee 100644
--- a/Master/texmf-dist/doc/latex/etoc/etoc-DE.pdf
+++ b/Master/texmf-dist/doc/latex/etoc/etoc-DE.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/etoc/etoc-DE.tex b/Master/texmf-dist/doc/latex/etoc/etoc-DE.tex
new file mode 100644
index 00000000000..e07fa2d9e9d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etoc-DE.tex
@@ -0,0 +1,32 @@
+%%
+%% Package: etoc
+%% Version: 1.09b-2019/11/17
+%% License: LPPL 1.3c
+%% Copyright (C) 2012-2019 Jean-Francois Burnol
+%% <jfbu at free dot fr>
+%% Copyright (C) 2014-2019 Christine Roemer
+%% <Christine_Roemer at t-online dot de>
+%% and collaborators for the translation into German of the documentation
+%%
+%% run pdflatex thrice on this file etoc-DE.tex to produce the German
+%% documentation etoc-DE.pdf (without source code).
+%%
+%% Um etoc-DE.pdf zu erzeugen ist pdflatex dreimal mit etoc-DE.tex laufen
+%% zu lassen.
+%%
+\chardef\Withdvipdfmx 0 % replace 0 by 1 for using latex+dvipdfmx
+\chardef\NoSourceCode 1 % replace 1 by 0 for the doc *with* the source code
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile {etoc-DE.tex}[Driver for etoc German documentation]%
+%% or with german rather than ngerman in the two lines below
+\PassOptionsToClass {a4paper,fontsize=11pt,twoside,ngerman}{scrdoc}
+\PassOptionsToPackage {english,ngerman}{babel}
+\chardef\ForEnglish 0 % (\ForEnglish and \ForDeutsch flags can't be BOTH 1 ...)
+\chardef\ForDeutsch 1 %
+\input etoc.dtx
+%%% Local Variables:
+%%% mode: latex
+%%% End:
+\endinput
+%%
+%% End of file `etoc-DE.tex'.
diff --git a/Master/texmf-dist/doc/latex/etoc/etoc.pdf b/Master/texmf-dist/doc/latex/etoc/etoc.pdf
index 1b43c65c89e..111b8b2b7e6 100644
--- a/Master/texmf-dist/doc/latex/etoc/etoc.pdf
+++ b/Master/texmf-dist/doc/latex/etoc/etoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/etoc/etoc.tex b/Master/texmf-dist/doc/latex/etoc/etoc.tex
new file mode 100644
index 00000000000..24328a1bffb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etoc.tex
@@ -0,0 +1,28 @@
+%%
+%% Package: etoc
+%% Version: 1.09b-2019/11/17
+%% License: LPPL 1.3c
+%% Copyright (C) 2012-2019 Jean-Francois Burnol
+%% <jfbu at free dot fr>
+%% Copyright (C) 2014-2019 Christine Roemer
+%% <Christine_Roemer at t-online dot de>
+%% and collaborators for the translation into German of the documentation
+%%
+%% run pdflatex thrice on this file etoc.tex to produce the documentation
+%% etoc.pdf, with source code included.
+%%
+\chardef\Withdvipdfmx 0 % replace 0 by 1 for using latex+dvipdfmx
+\chardef\NoSourceCode 0 % replace 0 by 1 for the doc *without* the source code
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile {etoc.tex}[Driver for etoc documentation]%
+\PassOptionsToClass {a4paper,fontsize=11pt,twoside}{scrdoc}
+\PassOptionsToPackage {ngerman,english}{babel}
+\chardef\ForEnglish 1 % (\ForEnglish and \ForDeutsch flags can't be BOTH 1 ...)
+\chardef\ForDeutsch 0 %
+\input etoc.dtx
+%%% Local Variables:
+%%% mode: latex
+%%% End:
+\endinput
+%%
+%% End of file `etoc.tex'.
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-10.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-10.tex
new file mode 100644
index 00000000000..b9b14b5ab23
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-10.tex
@@ -0,0 +1,16 @@
+%% LaTeX2e file `etocsnippet-10.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begin{figure}[ht!]
+ \centering
+ \begingroup
+ \etocstandardlines
+ \renewcommand{\etocbkgcolorcmd}{\color{green!5}}
+ \renewcommand{\etocbelowtocskip}{0pt\relax}
+ \fboxsep1ex
+ \etocframedstyle [1]{\fbox{\makebox[.5\linewidth]{\etocfontminusone
+ \hyperref[toc:c]{I am from far away}}}}
+ \tableofcontents \label{toc:d} \ref{toc:c}
+ \endgroup
+\end{figure}
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-20-A.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-20-A.tex
new file mode 100644
index 00000000000..bdcf84ad2bd
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-20-A.tex
@@ -0,0 +1,25 @@
+%% LaTeX2e file `etocsnippet-20-A.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\makeatletter
+\newcommand{\MyStandardTOC}{%
+ \begingroup
+ % for the book or article classes:
+ %\etocsetstyle{part}{}{}
+ % {\etocsavedparttocline{\etocnumber\hspace{1em}\etocname}{\etocpage}}{}%
+ % for the scrbook or scrartcl classes:
+ \etocsetstyle{part}{}{}
+ {\etocsavedparttocline{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
+ % following is identical in book/article/scrbook/scrartcl classes:
+ \etocsetstyle{chapter}{}{} %%% only for book and scrbook
+ {\etocsavedchaptertocline{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
+ \etocsetstyle{section}{}{}
+ {\etocsavedsectiontocline{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
+ \etocsetstyle{subsection}{}{}
+ {\etocsavedsubsectiontocline{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
+ % etc... if further sectioning units are used
+ \etocstandarddisplaystyle % this is for the title, page-marks, etc...
+ \tableofcontents
+ \endgroup}
+\makeatother
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-20-B.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-20-B.tex
new file mode 100644
index 00000000000..e1c09ad23cf
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-20-B.tex
@@ -0,0 +1,26 @@
+%% LaTeX2e file `etocsnippet-20-B.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\etocsetstyle{section}{}
+ {\ifnum\etocthenumber=4
+ \etocsetstyle{subsection}
+ {\par\nopagebreak\begingroup
+ \leftskip1.5em \rightskip\@tocrmarg \parfillskip\@flushglue
+ \parindent 0pt \normalfont\normalsize\rmfamily\itshape
+ % \columnsep1em
+ % \begin{minipage}{\dimexpr\linewidth-\leftskip-\rightskip\relax}%
+ % \begin{multicols}{2}%
+ \etocskipfirstprefix}
+ {\allowbreak\,--\,}
+ {\etocname\ \textup{(\etocnumber)}}
+ {.\par\endgroup}%
+ % {.\par\end{multicols}\end{minipage}\par\endgroup}%
+ \else
+ \etocsetstyle{subsection}
+ {}{}
+ {\etocsavedsubsectiontocline{\numberline{\etocnumber}\etocname}{\etocpage}}
+ {}%
+ \fi}
+ {\etocsavedsectiontocline{\numberline{{\color{cyan}\etocthenumber}}\etocname}{\etocpage}}
+ {}%
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-21-A.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-21-A.tex
new file mode 100644
index 00000000000..a06ecf784b4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-21-A.tex
@@ -0,0 +1,100 @@
+%% LaTeX2e file `etocsnippet-21-A.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+% it will be easy to globally shift the TOC horizontally if needed
+\def\TOCleftmargin {0pt}
+\def\TOCrightmargin {2.55em}% like LaTeX's \@tocrmarg
+
+% this is for dotted leaders
+\newbox\TOCleaderbox
+\def\TOCleaderboxwidth {0.7777em}% about like what standard classes do
+
+% vertical spacing
+\def\TOCverysmallvskip {0pt plus .2pt}
+\def\TOCmedvskip {1em plus 1pt}
+\def\TOCbigvskip {2.25em plus 1pt}
+
+% the ``numwidths'' for typesetting the numbering of division units.
+% I don't recall exactly how (and for which fonts) these figures were chosen.
+% They quickly prove too small if using Roman numerals (as do too the book
+% class defaults even though they are a bit larger).
+\def\TOCnumwidthB {1.5em} % chapter
+\def\TOCnumwidthC {2.278em}% section, I think default is 2.3em
+\def\TOCnumwidthD {3.056em}% analog in standard class is 3.2em
+\def\TOCnumwidthE {3.833em}% analog in standard class is 4.1em
+\def\TOCnumwidthF {4.611em}% analog in standard class is 5em
+\def\TOCnumwidthG {5.389em}% analog in standard class is 6em
+
+% The code for the ``global toc style''.
+
+\newcommand*\TOCglobalstyle {%
+\etocsettocstyle
+ {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi
+ \parindent\z@ \leftskip\z@skip \rightskip \z@skip
+ \setbox\TOCleaderbox\hbox to \TOCleaderboxwidth{\hss.\hss}%
+ \chapter *{\noindent\kern\TOCleftmargin\relax % uses "pt"...
+ \contentsname
+ \@mkboth {\MakeUppercase \contentsname}{\MakeUppercase \contentsname}}%
+ \rightskip \TOCrightmargin\relax
+ \parfillskip -\rightskip % or a smaller value if desired
+ \leftskip \TOCleftmargin \relax }
+ {\if@restonecol \twocolumn \fi\cleardoublepage}%
+%
+\etocsetstyle{part}
+ {}
+ {\addpenalty {-\@highpenalty}%
+ \addvspace \TOCbigvskip
+ \leavevmode
+ {\large \bfseries % use a group to limit font change
+ \interlinepenalty\@M
+ \etocifnumbered{\etocnumber\hspace{1em}}{}%
+ \etocname
+ \nobreak\hfil\makebox[-\parfillskip][r]{\etocpage}}\par
+ \nobreak
+ }
+ {}
+ {}%
+%
+\etocsetstyle{chapter}
+ {\advance\leftskip\TOCnumwidthB\relax}
+ {\addpenalty {-\@highpenalty }%
+ \vskip \TOCmedvskip\relax
+ \leavevmode
+ {\interlinepenalty\@M
+ \etocifnumbered
+ {\llap{\makebox[\TOCnumwidthB][l]{\bfseries\etocnumber}}}
+ {\advance\leftskip-\TOCnumwidthB\relax}%
+ \bfseries\etocname
+ \nobreak\hfil\makebox[-\parfillskip][r]{\etocpage}\par }%
+ \penalty \@highpenalty
+ }
+ {}
+ {\advance\leftskip-\TOCnumwidthB\relax}%
+%
+ \TOCsetlinestyle {section} {\TOCnumwidthC}%
+ \TOCsetlinestyle {subsection} {\TOCnumwidthD}%
+ \TOCsetlinestyle {subsubsection}{\TOCnumwidthE}%
+ \TOCsetlinestyle {paragraph} {\TOCnumwidthF}%
+ \TOCsetlinestyle {subparagraph} {\TOCnumwidthG}%
+}% end of \TOCglobalstyle
+
+%The common code for line styles is abstracted into a macro:
+
+\newcommand\TOCsetlinestyle [2]{% #1= unit, #2= numwidth as macro
+\etocsetstyle{#1}
+ {\advance\leftskip#2\relax}
+ {\vskip \TOCverysmallvskip\relax
+ \leavevmode
+ {\interlinepenalty\@M
+ \etocifnumbered
+ {\llap{\makebox[#2][l]{\etocnumber}}}{\advance\leftskip-#2\relax}%
+ \etocname
+ \nobreak\leaders \copy\TOCleaderbox
+ \hfil\makebox[-\parfillskip][r]{\etocpage}%
+ \par }%
+ }
+ {}
+ {\advance\leftskip-#2\relax}%
+}
+\makeatother
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-21-B.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-21-B.tex
new file mode 100644
index 00000000000..be738670f6b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-21-B.tex
@@ -0,0 +1,49 @@
+%% LaTeX2e file `etocsnippet-21-B.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\makeatletter
+\newcommand*\TOClocalstyle {%
+\etocsettocstyle
+ {\if@twocolumn \@restonecoltrue \onecolumn \else \@restonecolfalse \fi
+ \setbox\TOCleaderbox\hbox to \TOCleaderboxwidth{\hss.\hss}%
+ \parindent\z@
+ \dimen@ 2.25em % for left indenting
+ \section *{\kern\dimen@ % use of \dimen@ works here by sheer luck
+ \contentsname
+ % un-comment this if marks are wanted:
+ %\@mkboth {\MakeUppercase \contentsname}{\MakeUppercase \contentsname}%
+ }% end of \section
+ \parskip \z@skip
+ \vspace{-1.25\baselineskip}% somewhat ad hoc
+ \leftskip 2.25em
+ \rightskip 4.5em
+ \advance\rightskip-\TOCrightmargin\relax
+ \leavevmode\leaders\hrule\@height\p@\hfill\kern\z@\par
+ \rightskip 4.5em
+ \parfillskip -\TOCrightmargin\relax }
+ {\nobreak\vskip-.5\baselineskip
+ \leavevmode\leaders\hrule\@height\p@\hfill\kern\z@\par
+ \bigskip
+ \if@restonecol \twocolumn \fi }%
+%
+\etocsetstyle{section}
+ {\advance\leftskip\TOCnumwidthC\relax}
+ {\addpenalty \@secpenalty
+ \etociffirst{}{\addvspace{\TOCmedvskip}}%
+ \leavevmode
+ {\interlinepenalty\@M
+ \bfseries\etocifnumbered
+ {\llap{\makebox[\TOCnumwidthC][l]{\etocnumber}}}
+ {\advance\leftskip-\TOCnumwidthC}%
+ \etocname\nobreak\hfil\makebox[-\parfillskip][r]{\etocpage}\par }%
+ \penalty \@highpenalty }
+ {}
+ {\advance\leftskip-\TOCnumwidthC\relax}%
+% the rest is identical with code for global tocs:
+ \TOCsetlinestyle {subsection} {\TOCnumwidthD}%
+ \TOCsetlinestyle {subsubsection}{\TOCnumwidthE}%
+ \TOCsetlinestyle {paragraph} {\TOCnumwidthF}%
+ \TOCsetlinestyle {subparagraph} {\TOCnumwidthG}%
+}% end of \TOClocalstyle
+\makeatother
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-22-A.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-22-A.tex
new file mode 100644
index 00000000000..30133e451ee
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-22-A.tex
@@ -0,0 +1,35 @@
+%% LaTeX2e file `etocsnippet-22-A.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\etocdefaultlines
+\begingroup
+\renewcommand{\etoccolumnsep}{2em}
+\renewcommand{\etocinnerleftsep}{1.5em}
+\renewcommand{\etocinnerrightsep}{1.5em}
+% specify a background color for the toc contents
+\renewcommand{\etocbkgcolorcmd}{\color{yellow!10}}
+% set up the top and bottom rules
+\renewcommand{\etoctoprule}{\hrule height 1pt}
+\renewcommand{\etoctoprulecolorcmd}{\color{red!25}}
+\renewcommand{\etocbottomrule}{\hrule height 1pt}
+\renewcommand{\etocbottomrulecolorcmd}{\color{red!25}}
+% set up the left and right rules
+\renewcommand{\etocleftrule}{\vrule width 5pt}
+\renewcommand{\etocrightrule}{\vrule width 5pt}
+\renewcommand{\etocleftrulecolorcmd}{\color{red!25}}
+\renewcommand{\etocrightrulecolorcmd}{\color{red!25}}
+% use \fcolorbox to set up a colored frame for the title
+\fboxrule1pt
+\renewcommand{\etocbelowtocskip}{0pt\relax}
+\etocframedstyle {\normalsize\rmfamily\itshape
+ \fcolorbox{red}{white}{\parbox{.8\linewidth}{\centering
+ This is a table of contents \`a la \etoc, but just for
+ the sections and subsections in this part. As it is put
+ in a frame, it has to be small enough to fit on
+ one page. It has the label |toc:b|.}}}
+\begin{figure}[ht!]
+ \centering
+\tableofcontents \label{toc:b} \ref{toc:globalcmds}
+\end{figure}
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-23.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-23.tex
new file mode 100644
index 00000000000..308ee0f25e5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-23.tex
@@ -0,0 +1,80 @@
+%% LaTeX2e file `etocsnippet-23.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begin{figure}[htbp!]\centering
+\colorlet{subsecnum}{black}
+\colorlet{secbackground}{green!30}
+\colorlet{tocbackground}{red!20!green!20}
+
+\renewcommand{\etocbkgcolorcmd}{\color{tocbackground}}
+\renewcommand{\etocleftrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocrightrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocbottomrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etoctoprulecolorcmd}{\color{tocbackground}}
+
+\renewcommand{\etocleftrule}{\vrule width 3cm}
+\renewcommand{\etocrightrule}{\vrule width 1cm}
+\renewcommand{\etocbottomrule}{\hrule height 12pt}
+\renewcommand{\etoctoprule}{\hrule height 12pt}
+
+\renewcommand{\etocinnertopsep}{0pt}
+\renewcommand{\etocinnerbottomsep}{0pt}
+\renewcommand{\etocinnerleftsep}{0pt}
+\renewcommand{\etocinnerrightsep}{0pt}
+
+\newcommand\shiftedwhiterule[2]{%
+ \hbox to \linewidth{\color{white}%
+ \hskip#1\leaders\vrule height1pt\hfil}\nointerlineskip
+ \vskip#2}
+
+\etocsetstyle{subsubsection}
+{\etocskipfirstprefix}
+{\shiftedwhiterule{\leftskip}{6pt}}
+{\sffamily\footnotesize
+ \leftskip2.3cm\hangindent1cm\rightskip.5cm\relax
+ \makebox[1cm][l]{\color{subsecnum}\etocnumber}%
+ \color{black}\etocname
+ \nobreak\leaders\hbox to.2cm{\hss.}\hfill
+ \rlap{\makebox[.5cm][r]{\etocpage\hspace{.1cm}}}\par
+ \nointerlineskip\vskip3pt}
+{}
+
+\etocsetstyle{subsection}
+{\etocskipfirstprefix}
+{\shiftedwhiterule{1.5cm}{6pt}}
+{\sffamily\small
+ \leftskip1.5cm\hangindent.8cm\rightskip.5cm\relax
+ \makebox[.75cm][l]{\color{subsecnum}\etocnumber}%
+ \color{black}\etocname
+ \nobreak\leaders\hbox to.2cm{\hss.}\hfill
+ \rlap{\makebox[.5cm][r]{\etocpage\hspace{.1cm}}}\par
+ \nointerlineskip\vskip3pt}
+{}
+
+\newcommand{\coloredstuff}[2]{%
+ \leftskip0pt\rightskip0pt\parskip0pt
+ \fboxsep0pt % \colorbox uses \fboxsep also when no frame!
+ \noindent\colorbox{secbackground}
+ {\parbox{\linewidth}{%
+ \vskip5pt
+ {\noindent\color{#1}#2\par}\nointerlineskip
+ \vskip3pt}}%
+ \par\nointerlineskip}
+
+\etocsetstyle{section}
+{\coloredstuff{blue}{\hfil \bfseries\large Contents of Part One\hfil}}
+{\vskip3pt\sffamily\small}
+{\coloredstuff{blue}
+ {\leftskip1.5cm\rightskip.5cm\parfillskip-\rightskip
+ \makebox[0pt][r]{\makebox[.5cm][l]{\etocnumber}}%
+ \etocname\nobreak\hfill\makebox[.5cm][r]{\etocpage\hspace{.1cm}}}%
+ \vskip6pt}
+{}
+
+\etocframedstyle[1]{}
+\tableofcontents \label{toc:floating} \ref{toc:overview}
+\vspace{-\baselineskip}
+\centeredline{|\tableofcontents \ref{toc:overview}|
+(\emph{cf.} \hyperref[toc:clone]{this other toc})}
+\end{figure}
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-24.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-24.tex
new file mode 100644
index 00000000000..c08cdf03c85
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-24.tex
@@ -0,0 +1,27 @@
+%% LaTeX2e file `etocsnippet-24.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begingroup
+\newsavebox{\forsubsections}
+\etocsetstyle{part}{\upshape. \etocskipfirstprefix}
+ {. \upshape}
+ {\bfseries\etocname:~~}
+ {}
+\etocsetstyle{section}{\itshape\etocskipfirstprefix}
+ {, }
+ {\mdseries\etocname}
+ {}
+\etocsetstyle{subsection}
+ {\begin{lrbox}{\forsubsections}\upshape\etocskipfirstprefix}
+ {; }
+ {\etocname}
+ {\end{lrbox}\footnote{\unhbox\forsubsections.}}
+\etocsetstyle{subsubsection}
+ { (\itshape\etocskipfirstprefix}
+ {, }
+ {\etocname}
+ {\/\upshape)}
+\etocsettocstyle{Here is the inline table of contents. }{.\par}
+\tableofcontents \label{toc:crazyinline}
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-25.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-25.tex
new file mode 100644
index 00000000000..1acb5467f97
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-25.tex
@@ -0,0 +1,25 @@
+%% LaTeX2e file `etocsnippet-25.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+ < in the preamble >
+\newcounter{visibletoc}
+\renewcommand{\etocaftertitlehook}
+ {\stepcounter{visibletoc}\etoctoccontentsline{visibletoc}{\thevisibletoc}}
+\etocsetlevel{visibletoc}{6}
+\begin{document}
+ < document body >
+\subsection{Surprising uses of etoc}
+\begingroup
+ \etocinline
+ \etocsetlevel{part}{1}
+ % \etocsetlevel{chapter}{1} % (no chapters in scrartcl class)
+ \etocsetlevel{visibletoc}{0}
+ \etocsetstyle{visibletoc}
+ {\etocskipfirstprefix}{, }{{\color{niceone}\etocname}}{}
+ \etocsettocstyle{}{} % don't set any title, rules or frame or multicol!
+ \etocsetnexttocdepth{visibletoc} % display only the `visibletoc' entries from .toc
+
+Here is the numbered and linked list of all tables of contents which are
+displayed within this document: \tableofcontents.
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-26.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-26.tex
new file mode 100644
index 00000000000..723add39618
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-26.tex
@@ -0,0 +1,20 @@
+%% LaTeX2e file `etocsnippet-26.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+ \etocsetnexttocdepth{2} % sections are at level 1 and will show up
+\begingroup
+ \etocsetlevel{exercise}{2} % but:
+ \etocsetlevel{chapter}{3} % no chapters
+ \etocsetlevel{subsection}{3} % no subsections
+ \etocsetlevel{part}{3} % no parts
+ \etocsetstyle{exercise}{}{} % \etocname = exercise number
+ {\noindent\etocname\strut\leaders\etoctoclineleaders\hfill\etocpage\par}
+ {\pagebreak[2]\vskip\baselineskip}
+ \etocsetstyle{section}{}{}
+ {\noindent\strut{\bfseries\large\etocnumber\hskip.5em\etocname}\par
+ \nopagebreak[3]}{}
+ \etocruledstyle[4]{\Large\bfseries List of the exercises}
+ \setlength{\columnseprule}{.4pt}
+ \tableofcontents
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-27.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-27.tex
new file mode 100644
index 00000000000..1b79b140746
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-27.tex
@@ -0,0 +1,62 @@
+%% LaTeX2e file `etocsnippet-27.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+% \newtoks\treetok % put this (uncommented) preferably in the preamble
+% \newtoks\tmptok % (idem)
+
+\newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
+ #1\expandafter\expandafter\expandafter
+ {\expandafter\the\expandafter #1#2}}
+
+\newcommand*\PrepareSectionNode{%
+ \tmptok {\centering\bfseries}%
+ \appendtotok\tmptok\etocthelinkedname
+ \edef\foresttreenode{ [{\noexpand\parbox{2cm}{\the\tmptok}}}%
+}
+
+\newcommand*{\PrepareSubsectionNode}{%
+ \tmptok {\raggedright}%
+ \appendtotok\tmptok\etocthelinkedname
+ \edef\foresttreenode{ [{\noexpand\parbox{6cm}{\the\tmptok}}}%
+}
+
+\etocsetstyle{section}
+ {\etocskipfirstprefix}
+ {\appendtotok\treetok{ ]}}
+ {\PrepareSectionNode \appendtotok\treetok\foresttreenode}
+ {\appendtotok\treetok{ ]}}
+
+\etocsetstyle{subsection}
+ {\etocskipfirstprefix}
+ {\appendtotok\treetok{ ]}}
+ {\PrepareSubsectionNode \appendtotok\treetok\foresttreenode}
+ {\appendtotok\treetok{ ]}}
+
+\etocsettocstyle
+ {\treetok{[{\hyperref[part:overview]{Overview}}}}
+ {\global\appendtotok\treetok{ ]}}
+
+% forest does not like @\the\treetok if \treetok is empty. On first latex
+% run, this will be the case because the TOC style defined above will not
+% have been executed, as the label {toc:overview} does not refer to a valid
+% TOC yet. So we must give a safe default value to \treetok
+\treetok{[{run latex again}]}
+
+\begin{figure}[th!]\centering
+ \etocsetnexttocdepth{subsection}
+ \tableofcontents \label{toc:forest}\ref{toc:overview}
+ \hypersetup{hidelinks}%
+ \bracketset{action character=@}
+ \begin{forest}
+ for tree={anchor=center,child anchor=west,
+ grow'=east,draw,thick,
+ edge={draw,thick,dashed,color=teal}},
+ where={level()==1}{circle,thick,fill=blue!5,
+ before computing xy={l=3cm}}{},
+ where={level()==2}{fill=red!5,
+ before computing xy={l=6cm}}{},
+ rectangle, thick, fill=cyan!5, inner sep=6pt,
+ @\the\treetok
+ \end{forest}
+\end{figure}
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-28.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-28.tex
new file mode 100644
index 00000000000..6b4ee58302d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-28.tex
@@ -0,0 +1,48 @@
+%% LaTeX2e file `etocsnippet-28.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+% \newtoks\treetok % put this (uncommented) preferably in the preamble
+% \newtoks\sectiontok
+% \newtoks\subsectiontok
+\newcommand*{\treenode}{}
+
+\newcommand*{\appendchildtree}[2]{% token list t1 becomes: t1 child {t2}
+ \edef\tmp{\the#1 child {\the#2}}%
+ #1\expandafter{\tmp}%
+}
+\newcommand*{\preparetreenode}{%
+ \tmptok\expandafter{\etocthelinkednumber}% expanded one time (mandatory)
+ \edef\treenode{node {\the\tmptok}}%
+}
+
+\etocsetstyle{section}
+ {\etocskipfirstprefix}
+ {\appendchildtree\treetok\sectiontok}
+ {\preparetreenode \sectiontok\expandafter{\treenode}}
+ {\appendchildtree\treetok\sectiontok}
+
+\etocsetstyle{subsection}
+ {\etocskipfirstprefix}
+ {\appendchildtree\sectiontok\subsectiontok}
+ {\preparetreenode \subsectiontok\expandafter{\treenode}}
+ {\appendchildtree\sectiontok\subsectiontok}
+
+\etocsettocstyle
+ {\treetok{\node {\hyperref[part:overview]{Overview}}}}
+ {\global\appendtotok\treetok{ ;}}
+
+\begin{figure}[thbp!]\centering
+ \etocsetnexttocdepth{subsection}
+ \tableofcontents \label{toc:molecule} \ref{toc:overview}
+ \hypersetup{hidelinks}%
+ \begin{tikzpicture}
+ [grow cyclic,
+ level 1/.style={level distance=4cm,sibling angle=72},
+ level 2/.style={level distance=2cm,sibling angle=60},
+ every node/.style={ball color=red,circle,text=SkyBlue},
+ edge from parent path={[dashed,very thick,color=cyan]
+ (\tikzparentnode) --(\tikzchildnode)}]
+ \the\treetok
+ \end{tikzpicture}
+\end{figure}
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-29.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-29.tex
new file mode 100644
index 00000000000..8116d97e27b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-29.tex
@@ -0,0 +1,120 @@
+%% LaTeX2e file `etocsnippet-29.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begingroup
+% \newtoks\treetok % done in preamble
+% \newtoks\parttok
+
+\newcommand*\partnode {} % just to check we don't overwrite something
+\newcommand*\childnode {}
+
+\newcommand*\tmprotate {} % just to check we don't overwrite something
+\newcommand*\tmpoption {} % just to check we don't overwrite something
+\newcommand*\tmpstuff {} % just to check we don't overwrite something
+
+\newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
+ #1\expandafter\expandafter\expandafter{\expandafter\the\expandafter #1#2}}
+
+\newcommand*{\appendchildtree}[3]{%
+% this is to construct "t1 child [#3]{t2}" from #1=t1 and #2=t2
+% t1 and t2 are two toks variable (not macros)
+% #3 = for example teal!60
+ \edef\tmpstuff {\the#1 child [#3]{\the#2}}%
+ #1\expandafter {\tmpstuff }%
+}
+
+\newcounter{partco}
+
+% 1,2,3,4,5,... -> 1,2,3,1,2,3,1,2,3
+\def\pseudomodthree #1{\numexpr #1 + 3 - 3*((#1+1)/3)\relax}
+
+\etocsetstyle{part}
+ {\etocskipfirstprefix}
+% This updates the global tree with the data from the previous
+% part and all its children sections. Moved here because for some parts the
+% sections are not displayed due to depth tags.
+ {\ifnum\value{partco}=3
+ \appendchildtree\treetok\parttok {branch color= green!50,level distance=10cm}%
+ \else
+\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendchildtree\treetok\parttok {branch color= teal!60}% first
+ \or \appendchildtree\treetok\parttok {branch color= yellow!80}% second
+ \else\appendchildtree\treetok\parttok {branch color= green!50}% third and next ...
+ \fi\fi
+ }
+ {\stepcounter{partco}%
+% customize manually some TikZ set-up (should be done inside the TikZ thing I guess)
+ \def\tmpoption {}%
+ \def\tmprotate {}% first
+ %\ifnum\value{partco}=5 \def\tmprotate {[counterclockwise from =-40]}\fi
+ %\ifnum\value{partco}=8 \def\tmprotate {[counterclockwise from =-50]}\fi
+% define the part node
+ \edef\partnode{node \tmpoption
+ {\unexpanded\expandafter{\etocthelinkednumber}.
+ \unexpanded\expandafter{\etocthelinkedname}}\tmprotate }%
+% this is a starting point which will be filled it by the section children
+ \parttok\expandafter{\partnode}}
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendchildtree\treetok\parttok {branch color= teal!60}% first
+ \or \appendchildtree\treetok\parttok {branch color= yellow!80}% second
+ \else\appendchildtree\treetok\parttok {branch color= green!50}% third and next ...
+ \fi
+ }
+
+\etocsetstyle{section}
+ {}
+ {}
+ {% define the section node
+ \edef\childnode{child {node {\unexpanded\expandafter{\etocthelinkednumber}
+ \unexpanded\expandafter{\etocthelinkedname}}}}%
+ % append it to the current \parttok
+ \appendtotok\parttok\childnode
+ }
+ {}
+
+\etocsettocstyle
+ {\setcounter{partco}{0}%
+ \treetok{\node [root concept]{\textbf{The \etoc documentation}}}}
+ {\global\appendtotok\treetok{ ;}}
+% The \global above is mandatory because etoc always typesets TOC inside a group
+
+\etocsetnexttocdepth{section}
+% use of depth tags to cut out some sections.
+\etocsettagdepth {preamble} {none}
+\etocsettagdepth {overview} {part}
+\etocsettagdepth {arbitrarily}{part}
+\etocsettagdepth {examples} {section}
+\etocsettagdepth {surprising} {part}
+\etocsettagdepth {linestyles} {part}
+\etocsettagdepth {globalcmds} {part}
+\etocsettagdepth {custom} {section}
+\etocsettagdepth {tips} {part}
+\etocsettagdepth {etocandworld}{part}
+\etocsettagdepth {code} {section}
+
+\tikzset{
+ branch color/.style={
+ concept color=#1!white,
+ every child/.append style={concept color=#1!white!30!white, font=\normalsize},
+ }
+}%
+
+\begin{figure}[thp!]
+\tableofcontents\label{toc:mindmap}%
+\centeredline{\resizebox{.85\paperwidth}{!}%
+{\begin{tikzpicture}[mindmap,
+ grow cyclic,
+ text width=2cm,
+ align=flush center,
+ nodes={concept},
+ concept color=orange!60,
+ root concept/.append style={text width=4cm, font=\Large},
+ level 1/.append style={level distance=5cm,sibling angle=40, text width=3cm},
+ level 2/.append style={level distance=7cm,sibling angle=30, text width=3cm},
+ level 1 concept/.append style={font=\normalsize},
+ ]
+\the\treetok
+\end{tikzpicture}}}
+\end{figure}
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-30-A.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-30-A.tex
new file mode 100644
index 00000000000..682b3e27ebb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-30-A.tex
@@ -0,0 +1,40 @@
+%% LaTeX2e file `etocsnippet-30-A.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begingroup
+\etocglobaldefs % necessary for \etocname etc... to survive &
+
+% observe the locations of the \\
+\etocsetstyle{part}
+ {}
+ {\\\hline}
+ {\strut\etocnumber &\bfseries\etocname&\etocpage }
+ {}
+
+\etocsetstyle{section}
+ {}
+ {\etociffirst{\etocifnumbered{\\\hline}{\\\hline\hline}}{\\}}
+ {\etocnumber&\etocname &\etocpage }
+ {}
+
+\etocsetstyle{subsection}
+ {}
+ {\\}
+ {&\makebox[1cm][c]{\etocnumber}%
+ \parbox[t]{\dimexpr6cm-\tabcolsep\relax}{\sloppy\itshape\etocname\strut}%
+ &\itshape\etocpage }
+ {}
+
+\etocsettocstyle
+ {\hypersetup{hidelinks}%
+ \begin{longtable}{|>{\bfseries}c|p{7cm}|r|}
+ \hline
+ \multicolumn{3}{|c|}{\Large\bfseries\strut\strut TABLE OF CONTENTS}%
+ }
+ {\\\hline\end{longtable}}
+
+\etocsetnexttocdepth {subsection}
+
+\tableofcontents
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-30-B.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-30-B.tex
new file mode 100644
index 00000000000..17f88158d10
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-30-B.tex
@@ -0,0 +1,23 @@
+%% LaTeX2e file `etocsnippet-30-B.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begin{center}
+\etocsetstyle{section}
+ {}
+ {\etociffirst{\\\hline\hline}{\\\hline}}
+ {\etocname & \etocnumber & \etocpage }
+ {}
+
+\etocsettocstyle
+ {\hypersetup{hidelinks}\begin{tabular}{|p{4cm}|c|c|}\hline
+ \multicolumn{1}{|c|}{\bfseries Section}&
+ \bfseries number&
+ \bfseries page}
+ {\\\hline\end{tabular}}
+
+\etocglobaldefs % MANDATORY !!
+\etocsetnexttocdepth{1}
+
+\tableofcontents\ref{toc:overview}
+\end{center}
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-31.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-31.tex
new file mode 100644
index 00000000000..769e20d18b4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-31.tex
@@ -0,0 +1,57 @@
+%% LaTeX2e file `etocsnippet-31.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\makeatletter
+\newcommand*\TOCcompute@numwidths [2]{% #1=empty/"local", #2=minimal indent
+ \begingroup
+ \def\TOCnumwidthB {0pt}%
+ \def\TOCnumwidthC {0pt}%
+ \def\TOCnumwidthD {0pt}%
+ \def\TOCnumwidthE {0pt}%
+ \def\TOCnumwidthF {0pt}%
+ \def\TOCnumwidthG {0pt}%
+ \etocsetstyle{part}{}{}{}{}%
+ \etocsetstyle{chapter}{}
+ {\setbox0\hbox{\bfseries\etocthenumber\kern#2}}
+ {\ifdim\wd0>\TOCnumwidthB\edef\TOCnumwidthB{\the\wd0}\fi}{}%
+ \etocsetstyle{section}{}
+ {\setbox0\hbox{\bfseries\etocthenumber\kern#2}}
+ {\ifdim\wd0>\TOCnumwidthC\edef\TOCnumwidthC{\the\wd0}\fi}{}%
+ \etocsetstyle{subsection}{}
+ {\setbox0\hbox{\etocthenumber\kern#2}}
+ {\ifdim\wd0>\TOCnumwidthD\edef\TOCnumwidthD{\the\wd0}\fi}{}%
+ \etocsetstyle{subsubsection}{}
+ {\setbox0\hbox{\etocthenumber\kern#2}}
+ {\ifdim\wd0>\TOCnumwidthE\edef\TOCnumwidthE{\the\wd0}\fi}{}%
+ \etocsetstyle{paragraph}{}
+ {\setbox0\hbox{\etocthenumber\kern#2}}
+ {\ifdim\wd0>\TOCnumwidthF\edef\TOCnumwidthF{\the\wd0}\fi}{}%
+ \etocsetstyle{subparagraph}{}
+ {\setbox0\hbox{\etocthenumber\kern#2}}
+ {\ifdim\wd0>\TOCnumwidthG\edef\TOCnumwidthG{\the\wd0}\fi}{}%
+ %
+ \etocsettocstyle{}
+ {\global\let\TOCnumwidthB\TOCnumwidthB
+ \global\let\TOCnumwidthC\TOCnumwidthC
+ \global\let\TOCnumwidthD\TOCnumwidthD
+ \global\let\TOCnumwidthE\TOCnumwidthE
+ \global\let\TOCnumwidthF\TOCnumwidthF
+ \global\let\TOCnumwidthG\TOCnumwidthG}%
+ \etocnopar
+ \csname #1tableofcontents\endcsname
+\typeout{Next TOCs will use \TOCnumwidthB\space for chapter number width}%
+\typeout{Next TOCs will use \TOCnumwidthC\space for section number width}%
+\typeout{Next TOCs will use \TOCnumwidthD\space for subsection number width}%
+\typeout{Next TOCs will use \TOCnumwidthE\space for subsubsection number width}%
+\typeout{Next TOCs will use \TOCnumwidthF\space for paragraph number width}%
+\typeout{Next TOCs will use \TOCnumwidthG\space for subparagraph number width}%
+ \endgroup
+}%
+\newcommand*\TOCcomputenumwidths [1][0.5em]{%
+ \TOCcompute@numwidths {}{#1}%
+}%
+\newcommand*\TOCcomputelocalnumwidths [1][0.5em]{%
+ \TOCcompute@numwidths {local}{#1}%
+}%
+\makeatother
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-32.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-32.tex
new file mode 100644
index 00000000000..65ed318f255
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-32.tex
@@ -0,0 +1,22 @@
+%% LaTeX2e file `etocsnippet-32.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\etocsetstyle{section}
+{\begin{enumerate}}
+{\normalsize\bfseries\rmfamily\item}
+{\etocname{} (page \etocpage)}
+{\end{enumerate}}
+
+\etocsetstyle{subsection}
+{\begin{enumerate}}
+{\normalfont\item}
+{\etocname{} (p.~\etocpage)}
+{\end{enumerate}}
+
+\etocsetstyle{subsubsection}
+{\par\nobreak\begingroup\normalfont
+ \footnotesize\itshape\etocskipfirstprefix}
+{\allowbreak\,--\,}
+{\etocname}
+{.\hfil\par\endgroup\pagebreak[3]}
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-40.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-40.tex
new file mode 100644
index 00000000000..e947c50ea7d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-40.tex
@@ -0,0 +1,19 @@
+%% LaTeX2e file `etocsnippet-40.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\etocsettocdepth {subsubsection} % set the initial tocdepth
+\etocdefaultlines % use the package default line styles. At this early stage in
+ % the document they had not yet been modified by \etocsetstyle
+ % commands, so \etoctoclines could have been used, too.
+\etocmarkboth\contentsname
+\etocmulticolstyle[1] % one-column display
+ {\pdfbookmark[1]{Table of contents}{MAINTOC}% create a bookmark in the pdf
+ \noindent\bfseries\Large
+ \leaders\hrule height1pt\hfill
+ \MakeUppercase{Table of Contents}}
+\begingroup % use a group to limit the scope of the
+ \etocsetlevel{subsection}{3} % subsection level change.
+ \etocsetlevel{subsubsection}{4} % anything > tocdepth=3.
+ \tableofcontents \label{toc:main}
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-46.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-46.tex
new file mode 100644
index 00000000000..7e36c0a5923
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-46.tex
@@ -0,0 +1,23 @@
+%% LaTeX2e file `etocsnippet-46.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\etocruledstyle[2]{\normalfont\normalsize\rmfamily\itshape
+ \fbox{\parbox{.6\linewidth}{
+ \leftskip 0pt plus .5fil
+ \rightskip 0pt plus -.5fil
+ \parfillskip 0pt plus 1fil This is the global table of
+ contents on two columns, using \etoc default line styles, but with
+ sections as chapters, and subsections as sections.
+ }}}
+\etocdefaultlines
+\etocsetnexttocdepth{1}
+\begingroup
+\etocsetlevel{section}{0}
+\etocsetlevel{subsection}{1}
+\renewcommand*{\etocfontone}{\normalfont \normalsize}
+\renewcommand*{\etoctoclineleaders}
+ {\hbox{\normalfont\normalsize\hbox to 1ex {\hss.\hss}}}
+\sloppy
+\tableofcontents
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-48.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-48.tex
new file mode 100644
index 00000000000..9b4cba5419e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-48.tex
@@ -0,0 +1,74 @@
+%% LaTeX2e file `etocsnippet-48.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begingroup
+\definecolor{subsecnum}{RGB}{13,151,225}
+\definecolor{secbackground}{RGB}{0,177,235}
+\definecolor{tocbackground}{RGB}{212,237,252}
+
+\renewcommand{\etocbkgcolorcmd}{\color{tocbackground}}
+\renewcommand{\etocleftrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocrightrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocbottomrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etoctoprulecolorcmd}{\color{tocbackground}}
+
+\renewcommand{\etocleftrule}{\vrule width 1cm}
+\renewcommand{\etocrightrule}{\vrule width .5cm}
+\renewcommand{\etocbottomrule}{\hrule height 12pt}
+\renewcommand{\etoctoprule}{\hrule height 12pt}
+
+\renewcommand{\etocinnertopsep}{0pt}
+\renewcommand{\etocinnerbottomsep}{0pt}
+\renewcommand{\etocinnerleftsep}{0pt}
+\renewcommand{\etocinnerrightsep}{0pt}
+
+\newcommand\shiftedwhiterule[2]{%
+ \hbox to \linewidth{\color{white}%
+ \hskip#1\leaders\vrule height1pt\hfil}\nointerlineskip\vskip#2}
+
+\etocsetstyle{subsubsection}{\etocskipfirstprefix}
+ {\shiftedwhiterule{\leftskip}{6pt}}
+ {\sffamily\footnotesize
+ \leftskip2.5cm\hangindent1cm\rightskip1cm\noindent
+ \hbox to 1cm{\color{subsecnum}\etocnumber\hss}%
+ \color{black}\etocname\leaders\hbox to .2cm{\hss.}\hfill
+ \rlap{\hbox to 1cm{\hss\etocpage\hskip.2cm}}\par
+ \nointerlineskip\vskip3pt}
+ {}
+
+\etocsetstyle{subsection}{\etocskipfirstprefix}
+ {\shiftedwhiterule{1.5cm}{6pt}}
+ {\sffamily\small
+ \leftskip1.5cm\hangindent1cm\rightskip1cm\noindent
+ \hbox to 1cm{\color{subsecnum}\etocnumber\hss}%
+ \color{black}\etocname\leaders\hbox to .2cm{\hss.}\hfill
+ \rlap{\hbox to 1cm{\hss\etocpage\hskip.2cm}}\par
+ \nointerlineskip\vskip6pt}
+ {}
+
+\newcommand{\coloredstuff}[2]{%
+ \leftskip0pt\rightskip0pt\parskip0pt
+ \fboxsep0pt % \colorbox uses \fboxsep also when no frame!
+ \noindent\colorbox{secbackground}
+ {\parbox{\linewidth}{%
+ \vskip5pt
+ {\noindent\color{#1}#2\par}\nointerlineskip
+ \vskip3pt}}%
+ \par\nointerlineskip}
+
+\etocsetstyle{section}
+{\coloredstuff{white}
+ {\hfil \hyperref[toc:b]{\bfseries\large I am a twin of
+ that other TOC (click me!)}\hfil}}
+{\vskip3pt\sffamily\small}
+{\coloredstuff{white}
+ {\leftskip1.5cm\rightskip.5cm\parfillskip-\rightskip
+ \makebox[0pt][r]{\makebox[.5cm][r]{\etocnumber\hspace{.2cm}}}%
+ \etocname\hfill\makebox[.5cm][r]{\etocpage\hspace{.2cm}}}%
+ \vskip6pt }
+{}
+
+\etocframedstyle[1]{}
+\tableofcontents \label{toc:clone} \ref{toc:globalcmds}
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-5.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-5.tex
new file mode 100644
index 00000000000..59c5f7b206f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-5.tex
@@ -0,0 +1,30 @@
+%% LaTeX2e file `etocsnippet-5.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begingroup\parindent 0pt \parfillskip 0pt \leftskip 0cm \rightskip 1cm
+\etocsetstyle {section}
+ {}
+ {\leavevmode\leftskip 0cm\relax}
+ {\bfseries\normalsize\makebox[.5cm][l]{\etocnumber.}%
+ \etocname\nobreak\hfill\nobreak
+ \rlap{\makebox[1cm]{\mdseries\etocpage}}\par}
+ {}
+\etocsetstyle {subsection}
+ {}
+ {\leavevmode\leftskip .5cm\relax }
+ {\mdseries\normalsize\makebox[1cm][l]{\etocnumber}%
+ \etocname\nobreak\hfill\nobreak
+ \rlap{\makebox[1cm]{\etocpage}}\par}
+ {}
+\etocsetstyle {subsubsection}
+ {}
+ {\leavevmode\leftskip 1.5cm\relax }
+ {\mdseries\normalsize\makebox[1cm][l]{\etocnumber}%
+ \etocname\nobreak\hfill\nobreak
+ \rlap{\makebox[1cm]{\etocpage}}\par}
+ {}
+\etocruledstyle[1]{\bfseries \Large My first \etoc: TOC of
+ \autoref{part:overview} (\nameref{part:overview})}
+\tableofcontents \ref {toc:overview}
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-52-A.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-52-A.tex
new file mode 100644
index 00000000000..5232020af04
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-52-A.tex
@@ -0,0 +1,47 @@
+%% LaTeX2e file `etocsnippet-52-A.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\newsavebox\firstnamei \newsavebox\firstnumberi
+\newsavebox\lastnamei \newsavebox\lastnumberi
+\newsavebox\firstnameii \newsavebox\firstnumberii
+\newsavebox\lastnameii \newsavebox\lastnumberii
+\newcounter{mycounti} \newcounter{mycountii}
+\newcommand*{\thispartstatsauxi}{} \newcommand*{\thispartstatsauxii}{}
+\newcommand*{\oldtocdepth}{}
+\newcommand*{\thispartstats}{%
+ \setcounter{mycounti}{0}%
+ \setcounter{mycountii}{0}%
+ \def\thispartstatsauxi{%
+ \sbox{\firstnamei}{\etocname}%
+ \sbox{\firstnumberi}{\etocnumber}%
+ \def\thispartstatsauxi{}}%
+ \def\thispartstatsauxii{%
+ \sbox{\firstnameii}{\etocname}%
+ \sbox{\firstnumberii}{\etocnumber}%
+ \def\thispartstatsauxii{}}%
+ \begingroup
+ \etocsetstyle{subsection} {} {}
+ {\thispartstatsauxii
+ \stepcounter{mycountii}%
+ \sbox{\lastnameii}{\etocname}%
+ \sbox{\lastnumberii}{\etocnumber}} {}%
+ \etocsetstyle{section} {} {}
+ {\thispartstatsauxi
+ \stepcounter{mycounti}%
+ \sbox{\lastnamei}{\etocname}%
+ \sbox{\lastnumberi}{\etocnumber}}
+ {Here are some statistics for this part: it contains \arabic{mycounti}
+ section\ifnum\value{mycounti}>1 s\fi{} and \arabic{mycountii}
+ subsection\ifnum\value{mycountii}>1 s\fi. The name of the first section is
+ \unhbox\firstnamei{} and the corresponding number is \unhbox\firstnumberi.
+ The name of the last section is \unhbox\lastnamei{} and its number is
+ \unhbox\lastnumberi. The name of the first subsection is \unhbox\firstnameii{}
+ and the corresponding number is \unhbox\firstnumberii. The name of the last
+ subsection is \unhbox\lastnameii{} and its number is \unhbox\lastnumberii.}%
+ \etocinline % cancels the automatic \par automatically before the TOC
+ \etocsettocstyle {}{}
+ \etocsetnexttocdepth{2}%
+ \localtableofcontents % to be used at the top level of a Part.
+ \endgroup
+}
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-52-B.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-52-B.tex
new file mode 100644
index 00000000000..b5d92b6bcb1
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-52-B.tex
@@ -0,0 +1,31 @@
+%% LaTeX2e file `etocsnippet-52-B.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\makeatletter
+\newcommand*\firstsubname {} \newcommand*\lastsubname {}
+\newcommand*\firstsubnumber {} \newcommand*\lastsubnumber {}
+\newcommand*\thisspecialstatsaux{}
+\newcommand*{\thisspecialstats}{%
+ \setcounter{mycounti}{0}%
+ \def\thisspecialstatsaux{%
+ \let\firstsubname\etocthelinkedname
+ \let\firstsubnumber\etocthelinkednumber
+ \def\thisspecialstatsaux{}}
+ \begingroup
+ \etocsetstyle{subsection} {} {}
+ {\thisspecialstatsaux
+ \stepcounter{mycounti}%
+ \let\lastsubname\etocthelinkedname
+ \let\lastsubnumber\etocthelinkednumber }
+ {Here are some statistics for this section. It contains \arabic{mycounti}
+ subsections. The name of its first is \emph{\firstsubname{}} and the
+ corresponding number is {\firstsubnumber}. The name of the last
+ subsection is \emph{\lastsubname{}} and its number is {\lastsubnumber}.}%
+ \etocsettocstyle {}{}
+ \etocinline
+ \etocsetnexttocdepth {1}%
+ \localtableofcontents % to be used within a section
+ \endgroup
+}
+\makeatother
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-53.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-53.tex
new file mode 100644
index 00000000000..9ee024d81ab
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-53.tex
@@ -0,0 +1,67 @@
+%% LaTeX2e file `etocsnippet-53.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\etocsetnexttocdepth {all}
+\begingroup
+\parindent 0pt \leftskip 0cm \rightskip .75cm \parfillskip -\rightskip
+\newcommand*{\EndParWithPagenoInMargin}
+ {\nobreak\hfill
+ \makebox[0.75cm][r]{\mdseries\normalsize\etocpage}%
+ \par}
+\renewcommand*\etoctoclineleaders
+ {\hbox{\normalfont\normalsize\hbox to .75ex {\hss.\hss}}}
+\newcommand*{\EndParWithPagenoInMarginAndLeaders}
+ {\nobreak\leaders\etoctoclineleaders\hfill
+ \makebox[0.75cm][r]{\mdseries\normalsize\etocpage}%
+ \par }
+\etocsetstyle {part}
+ {}
+ {\leavevmode\leftskip 1cm\relax}
+ {\bfseries\large\llap{\makebox[1cm][r]{\etocnumber\ \ }}%
+ \etocname\EndParWithPagenoInMargin\smallskip}
+ {}
+\etocsetstyle {section}
+ {}
+ {\leavevmode\leftskip 1.75cm\relax}
+ {\bfseries\normalsize\llap{\makebox[.75cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsetstyle {subsection}
+ {}
+ {\leavevmode\leftskip 2.75cm\relax }
+ {\mdseries\normalsize\llap{\makebox[1cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsetstyle {subsubsection}
+ {}
+ {\leavevmode\leftskip 4cm\relax }
+ {\mdseries\normalsize\llap{\makebox[1.25cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsetstyle {paragraph}
+ {}
+ {\leavevmode\leftskip 5.5cm\relax }
+ {\mdseries\normalsize\llap{\makebox[1.5cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsettagdepth {preamble} {none}
+\etocsettagdepth {overview} {part}
+%\etocsettagdepth {arbitrarily}{part}% not needed explicitely, keeps value
+%\etocsettagdepth {examples} {part}
+%\etocsettagdepth {surprising} {part}
+%\etocsettagdepth {linestyles} {part}
+\etocsettagdepth {globalcmds} {paragraph}
+\etocsettagdepth {custom} {part}
+%\etocsettagdepth {tips} {part}
+%\etocsettagdepth {etocandworld}{part}
+\etocsettagdepth {code} {none}
+\renewcommand\etoctoprule {\hrule height 3pt\relax }
+\renewcommand\etoctoprulecolorcmd {\color{blue}}
+\renewcommand\etocaftercontentshook
+ {\medskip\begingroup \color{blue}\hrule height 3pt \endgroup }
+\etocruledstyle [1]{\Large\bfseries
+ \fbox{\makebox[8cm]{A TOC using depth tags}}}
+\sloppy
+\tableofcontents
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-54.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-54.tex
new file mode 100644
index 00000000000..cf042b6f9b5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-54.tex
@@ -0,0 +1,50 @@
+%% LaTeX2e file `etocsnippet-54.tex'
+%% generated by the `filecontentshere' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\newtoks\toctabletok
+\newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
+ #1\expandafter\expandafter\expandafter {\expandafter\the\expandafter #1#2}}
+
+\newcommand*\PreparePart{%
+ \toks0 \expandafter{\etocthelinkednumber}%
+ \toks2 \expandafter{\etocthelinkedname}%
+ \toks4 \expandafter{\etocthelinkedpage}%
+ \edef\toctablepiece {\noexpand\hline
+ \noexpand\strut\the\toks0 &\noexpand\bfseries\the\toks2
+ &\the\toks4 \noexpand\\\noexpand\hline}%
+}
+\newcommand*\PrepareSection{%
+ \toks0 \expandafter{\etocthelinkednumber}%
+ \toks2 \expandafter{\etocthelinkedname}%
+ \toks4 \expandafter{\etocthelinkedpage}%
+ \edef\toctablepiece {\the\toks0 &\the\toks2 &\the\toks4 \noexpand\\}%
+}
+% new version for 1.07k, 2014/03/06
+\newcommand*{\PrepareSubsection}{%
+ \toks0 \expandafter{\etocthelinkednumber}%
+ \toks2 \expandafter{\expandafter\itshape\etocthelinkedname\strut}%
+ \toks4 \expandafter{\expandafter\itshape\etocthelinkedpage}%
+ \edef\toctablepiece{&\noexpand\makebox[1cm][c]{\the\toks0}%
+ \noexpand\parbox[t]{\dimexpr6cm-\tabcolsep\relax}
+ {\noexpand\sloppy\the\toks2}%
+ &\the\toks4 \noexpand\\}%
+}
+
+\begingroup
+\etocsetstyle{part}{}{}{\PreparePart \appendtotok\toctabletok\toctablepiece}{}
+
+\etocsetstyle{section}{}{}{\PrepareSection \appendtotok\toctabletok\toctablepiece}{}
+
+\etocsetstyle{subsection}{}{}{\PrepareSubsection\appendtotok\toctabletok\toctablepiece}{}
+
+\etocsettocstyle
+ {\toctabletok{\hypersetup{hidelinks}%
+ \begin{longtable}{|>{\bfseries}c|p{7cm}|r|}\hline
+ \multicolumn{3}{|c|}{\Large\bfseries\strut TABLE OF CONTENTS}%
+ \\\hline\hline}}
+ {\global\toctabletok\expandafter{\the\toctabletok\hline\end{longtable}}}
+\etocsettocdepth {subsection}
+\tableofcontents
+\the\toctabletok
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-6.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-6.tex
new file mode 100644
index 00000000000..333e45187a4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-6.tex
@@ -0,0 +1,53 @@
+%% LaTeX2e file `etocsnippet-6.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begingroup
+\newcommand*{\DotsAndPage}
+{\nobreak\leaders\hbox{\bfseries\normalsize\hbox to .75ex {\hss.\hss}}%
+ \hfill\nobreak
+ \makebox[\rightskip][r]{\bfseries\normalsize\etocpage}\par}
+
+\etocsetstyle {part}
+{\parindent 0pt
+ \nobreak
+ \etocskipfirstprefix}
+{\pagebreak[3]\bigskip}
+{\large\rmfamily\bfseries\scshape\centering
+ \etocifnumbered{Part \etocnumber{} -- }{}\etocname\par}
+{}
+
+\etocsetstyle {section}
+{\leftskip 0pt \rightskip .75cm \parfillskip-\rightskip
+ \nobreak\medskip
+ \etocskipfirstprefix}
+{\leftskip 0pt \rightskip .75cm \parfillskip-\rightskip
+ \pagebreak[1]\smallskip}
+{\normalsize\rmfamily\bfseries\scshape
+ \etocnumber. \etocname\DotsAndPage }
+{\parfillskip 0pt plus 1fil\relax }
+
+\etocsetstyle {subsection}
+{\leftskip1cm\rightskip .75cm \parfillskip 0pt plus 1fil\relax
+ \nobreak\smallskip}
+{}
+{\footnotesize\sffamily\mdseries\itshape
+ \etocname{} (\etocnumber, p. \etocpage). }
+{\par\medskip}
+
+\etocsettagdepth {preamble} {none}
+%\etocsettagdepth {overview} {none}% not needed explicitely, keeps value
+%\etocsettagdepth {arbitrarily}{none}
+%\etocsettagdepth {examples} {none}
+%\etocsettagdepth {surprising} {none}
+\etocsettagdepth {linestyles} {subsection}
+\etocsettagdepth {globalcmds} {subsection}
+\etocsettagdepth {custom} {none}
+%\etocsettagdepth {tips} {none}
+%\etocsettagdepth {etocandworld}{none}
+%\etocsettagdepth {code} {none}
+
+\etocsettocstyle {\centering\LARGE\textsc{\contentsname}\par\nobreak\medskip}{}
+\etocsetnexttocdepth {subsection}
+\tableofcontents
+\endgroup
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-7.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-7.tex
new file mode 100644
index 00000000000..171301979a3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-7.tex
@@ -0,0 +1,32 @@
+%% LaTeX2e file `etocsnippet-7.tex'
+%% generated by the `filecontentsdef' environment
+%% from source `etoc' on 2019/11/17.
+%%
+\begingroup % we start a group to keep the style changes local
+\newlength{\tocleftmargin} \setlength{\tocleftmargin}{5cm}
+\newlength{\tocrightmargin} \setlength{\tocrightmargin}{1cm}
+
+\etocsetstyle{section} % will pretend to be a Chapter
+{\addvspace{1ex}\parfillskip0pt
+ \leftskip\tocleftmargin % (already done in title)
+ \rightskip\the\tocrightmargin plus 1fil
+ \parindent0pt\color{cyan}} % (already done)
+{\bfseries\LARGE\upshape\addvspace{1ex}\leavevmode}
+{\llap{Chapter\hspace{.5em}{\etocnumber}\hspace{.75cm}}\etocname
+ \hfill\makebox[-\tocrightmargin][l]{\makebox[0pt]{\etocpage}}\par}
+{}
+
+\etocsetstyle{subsection} % will pretend to be a Section
+{}
+{\mdseries\large\addvspace{.5ex}\leavevmode}
+{\llap{\etocnumber\hspace{.75cm}}\textit{\etocname}%
+ \hfill\makebox[-\tocrightmargin][l]{\makebox[0pt]{\etocpage}}\par}
+{}
+
+\def\tmptitle{My Beautiful Thesis}
+\etocsettocstyle{\color{cyan}\parindent0pt \leftskip\tocleftmargin
+ \leavevmode\leaders\hrule height 1pt\hfill\
+ \huge\textit{\tmptitle}\par}{\bigskip}
+
+\tableofcontents \ref{toc:overview}
+\endgroup
diff --git a/Master/texmf-dist/source/latex/etoc/etoc.dtx b/Master/texmf-dist/source/latex/etoc/etoc.dtx
index 9c997ac56a7..a500a3b01de 100644
--- a/Master/texmf-dist/source/latex/etoc/etoc.dtx
+++ b/Master/texmf-dist/source/latex/etoc/etoc.dtx
@@ -2,12 +2,12 @@
% N.B.: this dtx file is NOT for use with \DocInput. The latex source of the
% user manual is not prefixed with percent signs.
%<*none>
-\def\etocdtxtimestamp {Time-stamp: <10-03-2019 at 09:35:44 CET>}%
+\def\etocdtxtimestamp {Time-stamp: <17-11-2019 at 13:36:39 CET>}%
%</none>
%<*!readme>
%%
%% Package: etoc
-%% Version: 1.09-2019/03/09
+%% Version: 1.09b-2019/11/17
%% License: LPPL 1.3c
%% Copyright (C) 2012-2019 Jean-Francois Burnol
%% <jfbu at free dot fr>
@@ -16,15 +16,13 @@
%% and collaborators for the translation into German of the documentation
%%
%</!readme>
-%<*insfile>
-\def\etocpkgdate {2019/03/09}
-\def\etocdocdate {2019/03/09}
-\def\etocpkgversion {v1.09}
-\def\etocpkgdescription {Completely customisable TOCs (JFB)}
-%</insfile>
%<*none>
-\def\etocDEpkgdate {09.03.2019}% METTRE À JOUR À CHAQUE BUMP!
-\def\etocDEdocdate {09.03.2019}
+\def\etocpkgdate {2019/11/17}
+\def\etocdocdate {2019/11/17}
+\def\etocpkgversion {v1.09b}
+\def\etocpkgdescription {Completely customisable TOCs (JFB)}
+\def\etocDEpkgdate {17.11.2019}% METTRE À JOUR À CHAQUE BUMP!
+\def\etocDEdocdate {17.11.2019}
\def\etocDEDEdocdate {09.04.2015}%
\def\etocDEDEpkgversion {v1.08d}%
% Definition of \etocLicense
@@ -35,7 +33,7 @@
\catcode32=13\catcode`\\=12^^Brelax^^A
^^Bfirstofone{^^Bendgroup^^Bdef^^BetocLicense^^A
{% Package: etoc
-% Version: 1.09-2019/03/09
+% Version: 1.09b-2019/11/17
% License: LPPL 1.3c
% Copyright (C) 2012-2019 Jean-Francois Burnol <jfbu at free dot fr>
% Copyright (C) 2014-2019 Christine Roemer <Christine_Roemer at t-online dot de>
@@ -57,11 +55,11 @@
% for the translation into German of the documentation.
%
% This Work consists of the main source file etoc.dtx and the derived
-% files etoc.sty, etoc.ins, etoc.tex, etoc-DE.tex, etoc.pdf, etoc-DE.pdf,
+% files etoc.sty, etoc.tex, etoc-DE.tex, etoc.pdf, etoc-DE.pdf,
% etoc.dvi, etoc-DE.dvi, README.md.
%
% Running etex (or latex or pdflatex) on etoc.dtx extracts etoc.sty,
-% etoc.ins, etoc.tex, etoc-DE.tex, and README.md. See README.md for
+% etoc.tex, etoc-DE.tex, and README.md. See README.md for
% further instructions.
}}%
\bgroup\catcode2 0 \catcode`\\ 12 ^^Biffalse
@@ -69,7 +67,7 @@
%<*readme>
<!-- -->
- Source: etoc.dtx (v1.09-2019/03/09)
+ Source: etoc.dtx (v1.09b-2019/11/17)
Author: Jean-Francois Burnol
Author: Christine Roemer et al. (German tranlation)
Info: Completely customisable TOCs
@@ -117,22 +115,13 @@ to the standard `.toc` file.
INSTALLATION
============
-The simplest is to download
-
-> <http://mirrors.ctan.org/install/macros/latex/contrib/etoc.tds.zip>
-
-and then run `unzip etoc.tds.zip -d <DEST>` where `<DEST>` is a
-TDS-compliant repertory.
-
-Else, to extract the package (.sty) and driver (.tex) files from etoc.dtx:
+To extract the package (.sty) and driver (.tex) files from etoc.dtx,
+execute `etex etoc.dtx`.
-- if etoc.ins is present: etex etoc.ins
-- without etoc.ins: etex etoc.dtx
-
-It is also possible to run latex or pdflatex directly on etoc.dtx.
+It is also possible to execute latex or pdflatex directly on etoc.dtx.
To produce etoc.pdf one can run pdflatex (thrice) directly on etoc.dtx or on
-the file etoc.tex which was extracted from previous step.
+the file etoc.tex which was extracted from `etex etoc.dtx` step.
Options can be set in etoc.tex:
@@ -179,12 +168,21 @@ The Authors of this Work are:
collaborators for the translation into German of the documentation.
This Work consists of the main source file etoc.dtx and the
-derived files etoc.sty, etoc.ins, etoc.tex, etoc-DE.tex,
+derived files etoc.sty, etoc.tex, etoc-DE.tex,
etoc.pdf, etoc-DE.pdf, etoc.dvi, etoc-DE.dvi.
RECENT CHANGES
==============
+v1.09a, v1.09b \[2019/11/17\]
+-----------------------------
+
+Sync with `memoir v3.7i` which has a better location of the TOC
+hyperref anchor. The `\etocaftertitlehook` can now freely be
+used also with memoir class (formerly its usage in case of
+memoir class was preempted by etoc itself). For more details
+refer to the section "Compatibility with the memoir class".
+
v1.09 \[2019/03/09\]
--------------------
@@ -364,69 +362,6 @@ Thanks to Christine Römer!
%%% mode: latex
%%% End:
%</DEtex>-----------------------------------------------------------------------
-%<*insfile>---------------------------------------------------------------------
-%% Run etex on this file to extract from etoc.dtx:
-%% etoc.sty, etoc.tex, etoc-DE.tex and README.md
-%%
-%% To produce etoc.pdf run pdflatex (thrice) on etoc.tex.
-%%
-%% Options can be set in etoc.tex (and etoc-DE.tex):
-%% - scrdoc class options (paper size, font size, ...)
-%% - with or without source code,
-%% - with dvipdfmx or with latex/pdflatex.
-%%
-%% Since release 1.08h pdflatex is the default in etoc.tex (prior it
-%% was latex+dvipdfmx as it produces smaller PDFs) in order to allow
-%% inclusion via the use of package `attachfile` of about 25 code
-%% samples as file attachment annotations.
-%%
-%% Um etoc-DE.pdf zu erzeugen ist pdflatex dreimal mit etoc-DE.tex
-%% laufen zu lassen.
-%%
-%% Installation:
-%%
-%% etoc.sty -> TDS:tex/latex/etoc/etoc.sty
-%% etoc.dtx -> TDS:source/latex/etoc/etoc.dtx
-%% etoc.pdf -> TDS:doc/latex/etoc/etoc.pdf
-%% etoc-DE.pdf -> TDS:doc/latex/etoc/etoc-DE.pdf
-%% README.md -> TDS:doc/latex/etoc/README.md
-%%
-\input docstrip.tex
-\askforoverwritefalse
-\def\etocpkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
-\string\NeedsTeXFormat{LaTeX2e}^^J%
-\string\ProvidesPackage{etoc}^^J%
-\space[\etocpkgdate\space\etocpkgversion\space\etocpkgdescription]}%
-\generate{\nopreamble\nopostamble
-\file{README.md}{\from{etoc.dtx}{readme}}%
-\usepostamble\defaultpostamble
-\file{etoc.tex}{\from{etoc.dtx}{tex}}%
-\file{etoc-DE.tex}{\from{etoc.dtx}{DEtex}}%
-\usepreamble\etocpkgpreamble
-\file{etoc.sty}{\from{etoc.dtx}{package}}}%
-\catcode32=13\relax% active space
-\let =\space%
-\Msg{************************************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* etoc.sty}
-\Msg{*}
-\Msg{* To produce the documentation run latex thrice on file etoc.tex}
-\Msg{* (or etoc-DE.tex) and then run dvipdfmx on file etoc.dvi, resp.}
-\Msg{* etoc-DE.dvi}
-\Msg{*}
-\Msg{* Happy TeXing!}
-\Msg{*}
-\Msg{************************************************************************}
-\ifx\numexpr\undefined
-\Msg{* warning: to get correct utf-8 encoded README.md }%
-\Msg{* do etex etoc.ins and not as here tex etoc.ins }%
-\Msg{************************************************************************}
-\fi
-\endbatchfile
-%</insfile>---------------------------------------------------------------------
%<*none>------------------------------------------------------------------------
^^Bfi^^Begroup
%
@@ -483,7 +418,6 @@ Thanks to Christine Römer!
\generate{\nopreamble\nopostamble
\file{README.md}{\from{etoc.dtx}{readme}}%
\usepostamble\defaultpostamble
- \file{etoc.ins}{\from{etoc.dtx}{insfile}}%
\file{etoc.tex}{\from{etoc.dtx}{tex}}%
\file{etoc-DE.tex}{\from{etoc.dtx}{DEtex}}%
\usepreamble\etocpkgpreamble
@@ -4774,55 +4708,50 @@ Issue \csb{etocdisplay} to return to the default situation that
|\tableofcontents| and variants issue a |\par| to switch to vertical
mode before typesetting the TOC title and contents.
-\section{Starred variants of the \csbhyp{tableofcontents} etc... commands}
+\section{Starred variants and hooks}
\label{tableofcontents*}
\label{localtableofcontents*}
\label{etocbeforetitlehook}
\label{etocaftertitlehook}
\label{etocaftercontentshook}
\label{etocaftertochook}
-\label{etocmemoirtoctotocfmt}
-The \toc, \localtoc, \csa{etocmulticol}, and all their cousins and
-variants have starred variants (the star must be before the other
-arguments). For all but the |memoir| class, they are like the original.
-For the |memoir| class, the original prints an entry in the |.toc| file,
-as is the usage for the original \toc command in that class, whereas the
-starred variants do not, as is the habit in that class.
-
-As soon as one starts using local table of contents one
-discovers that the default |memoir| thing which is to create a
-|chapter| entry for each TOC is not convenient. The command
-\csb{etocmemoirtoctotocfmt}\marg{kind}\marg{name} will change
-the format (\meta{kind} is |chapter|, |section|, |subsection|... and
-\meta{name} can be for example \csa{contentsname}.) The initial set-up
-is with |chapter| and |\contentsname|.
-
-The format of the actual heading of the TOC should also be set
-appropriately (for example with \csa{etoctocstyle}), to use the
-identical division unit as in the first argument to
-\csa{etocmemoirtoctotocfmt}.
-
-A weird situation arises when one has two successive
-\csa{localtableofcontents} (obviously this is not a truly real
-life situation), just after a \csa{part} for example. The first
-one creates (if the default has not been modified as indicated
-above) a Chapter heading which is
-written to the |.toc|. Then the second one thinks to be local
-to this chapter . . . and as a result it displays nothing. The
-fix is to define the second one to be a clone of the first
-one.
-
-Independently of the situation with the |memoir| class there is
-generally speaking a hook macro called
-\csb{etocaftertitlehook} which is inhibited by using the
-starred variants of the displaying commands. Except for the
-|memoir| class, this hook is initially defined to do nothing.
-
-There are also (independently of the document class)
+The \toc, \localtoc, \csa{etocmulticol}, and all their cousins have starred
+variants (the star must be before the other arguments). The non-starred
+variants execute the \csb{etocaftertitlehook}, whose default definition is to
+do nothing. The starred variants do not execute this hook.
+
+For example, imagine you are using |book| class and want \localtoc to use a
+section-like title, but unnumbered. Assuming the main \toc comes first in the
+document, you can insert this after it:
+\begin{verbatim}
+ \etocarticlestyle
+ \renewcommand{\etocaftertitlehook}{\addcontentsline{toc}{section}{\contentsname}}
+\end{verbatim}
+This configures the way \localtoc will behave (or \toc) from now on in the
+document.
+
+The first line tells essentially to use |\section*{\contentsname}|, and the
+second line says to insert the title in the |.toc| file itself (thus to be
+displayed by the main table of contents). Notice that |hyperref| package will
+then automatically create suitable anchor and one should \emph{not} use
+explicitly \cs{phantomsection} here (it would let the anchor be located below
+not above the title).
+
+With this set-up issuing \localtoc|*| will ignore the \csa{etocaftertitlehook}
+hence not send the local toc title to the |.toc| file. This mimicks the
+|memoir| class behavior, and can also be used with it. For more on |memoir|
+class with \etoc, see \autoref{ssec:memoir}.
+
+There are further hook macros:
\csb{etocaftercontentshook}, \csb{etocbeforetitlehook} and
\csb{etocaftertochook} which are initially defined to do nothing and can be
-used for some special effects.
+used for some special effects. They are executed whether or not the table of
+contents command was starred.%
+%
+\footnote{Hackers can test within these hooks if the context is starred or not
+ via an \cs{ifx}\cs{Etoc@aftertitlehook}\cs{@empty} conditional. Perhaps a
+ future release will provide \cs{etociftocisstarred} wrapper.}
\clearpage
@@ -5827,6 +5756,9 @@ example) throughout the document the macros \csa{l@section},
table of contents typeset by \etoc in compatibility mode.
\subsection{Compatibility with the \texttt{memoir} class}
+\label{ssec:memoir}
+\label{etocmemoirtoctotocfmt}
+\label{etocmemoirstyle}
Release |1.07l| has also improved the compatibility with the |memoir| class: its
|appendix| level has been made known to \etoc. It is at the same level as
@@ -5835,6 +5767,62 @@ defined boolean whose activation may be added to the |.toc| file at the suitable
location via |\addtocontents{toc}{..}|, if one needs to distinguish the two
kinds of divisions.
+The |memoir| mechanism relative to \toc versus \toc|*| is obeyed
+automatically, and applies with \localtoc too.
+
+A weird situation arises under when one has two successive
+\csa{localtableofcontents} (obviously this is not a truly real life
+situation), just after a \csa{part} for example. The first one creates (if the
+default has not been modified) a chapter heading which is written to the
+|.toc| (because \etoc by default obeys |memoir| class behaviour). Then the
+second one thinks to be local to this chapter . . . and as a result it
+displays nothing. The fix is to define the second one to be a clone of the
+first one.
+
+Actually, that \localtoc by default uses like \toc a chapter style is often
+inconvenient. One can use the |memoir| macros to modify this: according to
+|memoir| documentation, |\tocheadstart| and |\printtoctitle| seem to be the
+most relevant. If you do that you will probably want the added line in |.toc|
+file to use |{section}| not |{chapter}|. \etoc provides to this effect
+\csb{etocmemoirtoctotocfmt}\marg{kind}\marg{name} whose first argument
+\meta{kind} is |chapter|, |section|, |subsection|, etc... and the second
+argument stands for the title and thus \csa{contentsname} is appropriate. Hence
+\begin{verbatim}
+ \etocmemoirtoctotocfmt{section}{\contentsname}
+\end{verbatim}
+seems the natural choice in this context as an addition to the customizing the
+|memoir| toc related macros to achieve a section like rendering (for more
+details on the latter, please refer to |memoir| manual).
+
+A completely different approach, arguably simpler, is to overrule the \etoc
+default under |memoir| (after the main document \toc which should still use a
+chapter styling) via these simple
+commands:
+\begin{verbatim}
+ \etocarticlestyle % means to use \section*{\contentsname} (and marks)
+ \renewcommand{\etocaftertitlehook}{\addcontentsline{toc}{section}{\contentsname}}
+\end{verbatim}
+exactly as one would do with |book| class for example. Don't use any
+|\phantomsection| in there, |hyperref| hyperlinks will work just fine (and the
+anchor will be slightly above toc title, not below).
+
+Notice that prior to \etoc |1.09b|, the \csb{etocaftertitlehook} macro was
+used by \etoc itself under the |memoir| class. Hence \localtoc obeyed the
+|memoir| mechanism relative to starred or not starred, even after issuing
+\csa{etocarticlestyle}, as long as the user did not redefine
+\csb{etocaftertitlehook}. Starting with |1.09b| (which syncs with a |memoir|
+change at |v3.7i|) it is needed in a case like here where the user issues
+\csa{etocarticlestyle} to also configure explicitly the
+\csa{etocaftertitlehook} to achieve the ``insert title in |.toc|'' effect (if
+so wished), because \etoc uses another mechanism and does not pre-empt usage
+of this user macro anymore.
+
+To recover the \etoc default under |memoir| class one can issue
+\csa{etocmemoirstyle} and then
+\csa{etocmemoirtoctotocfmt}|{chapter}{\contentsname}| (but attention that a
+custom \csb{etocaftertitlehook} will still be obeyed; for info: it will get
+executed before the \cs{cfttocbeforelisthook}).
+
\subsection{Compatibility with package \texttt{tocvsec2}}
\etoc used to be incompatible with package
@@ -5889,6 +5877,7 @@ line containing an \etoc inner command and an identification
number is added to the |.toc| file. The correct local table of
contents will be displayed only on the next |latex| run.
+
\section{Errors and catastrophes}
After using \csa{etocsetstyle} for one level, the remaining
@@ -9423,53 +9412,54 @@ nichts im Token"=Stream hinterlassen.
Mit \csb{etocdisplay} werden (nochmal) von dem |\tableofcontents|"=Befehl und
seinen Varianten zuerst ein |\par| erstellt.
-\section{Gesternde Varianten des \csbhyp{tableofcontents} etc. Befehls}
+\begin{otherlanguage}{english}
+
+\section{Starred variants and hooks}
\label{tableofcontents*}
\label{localtableofcontents*}
\label{etocbeforetitlehook}
\label{etocaftertitlehook}
\label{etocaftercontentshook}
\label{etocaftertochook}
-\label{etocmemoirtoctotocfmt}
-
-Die Befehle \toc, \localtoc, \csa{etocmulticol} und all ihre Cousins und
-Varianten haben Stern"=Varianten (der Stern muss vor den anderen Argumenten
-kommen). Für alle Klassen außer |memoir| verhalten diese sich wie die Originale.
-Für |memoir| jedoch, schreibt das Original einen Eintrag in die |.toc|-Datei,
-genau so wie die Verwendung des echten \toc Befehls in dieser Klasse, während
-aber die Stern"=Variante genau das nicht tut, wie es in |memoir| die Regel ist.
-
-Sobald man damit beginnt, lokale Inhaltsverzeichnisse zu benutzen merkt man,
-dass der |memoir|-Standard, welcher dazu gedacht ist, einen |chapter|-Eintrag
-für jedes Inhaltsverzeichnis zu erzeugen, nicht praktisch ist. Der Befehl
-\csb{etocmemoirtoctotocfmt}\marg{Typ}\allowbreak\marg{name} ändert das Format
-(\meta{Typ} ist wieder |chapter|, |section|, |subsection| etc. und \meta{name}
-kann bspw. \csa{contentsname} sein.) Die Standardwerte für diese Größen sind
-|chapter| und |\contentsname|.
-
-Das Format der tatsächlichen Überschrift des Inhaltsverzeichnisses sollte
-ebenfalls ordnungsgemäß gesetzt werden (z.\,B. mit \csa{etoctocstyle}), um
-einfach die selbe Einheitsgröße zu nutzen wie im ersten Argument von
-\csa{etocmemoirtoctotocfmt}.
-
-Eine ungewöhnliche Situation tritt auf, wenn man zwei aufeinanderfolgende
-\csa{localtableofcontents} hat (offensichtlich ist das eine nicht sehr
-wahrscheinliche Situation), direkt nach einem \csa{part} zum Beispiel. Der erste
-würde dann eine Kapitelüberschrift erzeugen (wenn der Standard nicht geändert
-wurde, wie oben angedeutet), welche in die |.toc|-Datei geschrieben werden
-würde. Das zweite Inhaltsverzeichnis denkt dann, es ist ein lokales zu diesem
-Kapitel gehörig und würde aus diesem Grund nichts darstellen. Die Lösung für
-dieses Problem ist es, das zweite als Klon des ersten zu definieren.
-Unabhängig von der Situation hat man bei der |memoir|-Klasse immer ein
-Hook"=Makro namens \csb{etocaftertitlehook}, welches man unterdrückt, indem man
-die Stern"=Varianten der Darstellungsbefehle nutzt. Außer für die |memoir|-Klasse
-ist dieser Hook dazu gedacht, überhaupt nichts zu tun.
+The \toc, \localtoc, \csa{etocmulticol}, and all their cousins have starred
+variants (the star must be before the other arguments). The non-starred
+variants execute the \csb{etocaftertitlehook}, whose default definition is to
+do nothing. The starred variants do not execute this hook.
-Außerdem gibt es auch \csb{etocaftercontentshook}, \csb{etocbeforetitlehook}
-und \csb{etocaftertochook} all drei ähnlich definiert um nichts zu tun und die
-für einige spezielle Effekte genutzt werden können.
+For example, imagine you are using |book| class and want \localtoc to use a
+section-like title, but unnumbered. Assuming the main \toc comes first in the
+document, you can insert this after it:
+\begin{verbatim}
+ \etocarticlestyle
+ \renewcommand{\etocaftertitlehook}{\addcontentsline{toc}{section}{\contentsname}}
+\end{verbatim}
+This configures the way \localtoc will behave (or \toc) from now on in the
+document.
+
+The first line tells essentially to use |\section*{\contentsname}|, and the
+second line says to insert the title in the |.toc| file itself (thus to be
+displayed by the main table of contents). Notice that |hyperref| package will
+then automatically create suitable anchor and one should \emph{not} use
+explicitly \cs{phantomsection} here (it would let the anchor be located below
+not above the title).
+
+With this set-up issuing \localtoc|*| will ignore the \csa{etocaftertitlehook}
+hence not send the local toc title to the |.toc| file. This mimicks the
+|memoir| class behavior, and can also be used with it. For more on |memoir|
+class with \etoc, see \autoref{ssec:memoir}.
+
+There are further hook macros:
+\csb{etocaftercontentshook}, \csb{etocbeforetitlehook} and
+\csb{etocaftertochook} which are initially defined to do nothing and can be
+used for some special effects. They are executed whether or not the table of
+contents command was starred.%
+%
+\footnote{Hackers can test within these hooks if the context is starred or not
+ via an \cs{ifx}\cs{Etoc@aftertitlehook}\cs{@empty} conditional. Perhaps a
+ future release will provide \cs{etociftocisstarred} wrapper.}
+\end{otherlanguage}
\clearpage
@@ -10483,6 +10473,9 @@ benutzen und der Effekt wird im nächsten Inhaltsverzeichnis durch den
Kompatibilitätsmodus von \etoc sichtbar werden.
\subsection{Kompatibilität mit der \texttt{memoir}-Klasse}
+\label{ssec:memoir}
+\label{etocmemoirtoctotocfmt}
+\label{etocmemoirstyle}
Die Release |1.07l| hat ebenfalls die Kompatibilität mit der |memoir|-Klasse
verbessert: Seine |appendix|-Ebene kann mit \etoc gemacht werden. Es ist die
@@ -10491,6 +10484,71 @@ Test für einige boolesche"=Ausdrücke sein, die aktiviert sein können via eine
Instruktion an die |.toc|-Datei aufgenommen werden, wenn man zwei Arten von
Unterteilungen unterscheidet.
+\begin{otherlanguage}{english}
+
+The |memoir| mechanism relative to \toc versus \toc|*| is obeyed
+automatically, and applies with \localtoc too.
+
+\end{otherlanguage}
+
+Eine ungewöhnliche Situation tritt auf, wenn man zwei aufeinanderfolgende
+\csa{localtableofcontents} hat (offensichtlich ist das eine nicht sehr
+wahrscheinliche Situation), direkt nach einem \csa{part} zum Beispiel. Der erste
+würde dann eine Kapitelüberschrift erzeugen, welche in die |.toc|-Datei geschrieben werden
+würde. Das zweite Inhaltsverzeichnis denkt dann, es ist ein lokales zu diesem
+Kapitel gehörig und würde aus diesem Grund nichts darstellen. Die Lösung für
+dieses Problem ist es, das zweite als Klon des ersten zu definieren.
+
+\begin{otherlanguage}{english}
+
+Actually, that \localtoc by default uses like \toc a chapter style is often
+inconvenient. One can use the |memoir| macros to modify this: according to
+|memoir| documentation, |\tocheadstart| and |\printtoctitle| seem to be the
+most relevant. If you do that you will probably want the added line in |.toc|
+file to use |{section}| not |{chapter}|. \etoc provides to this effect
+\csb{etocmemoirtoctotocfmt}\marg{kind}\marg{name} whose first argument
+\meta{kind} is |chapter|, |section|, |subsection|, etc... and the second
+argument stands for the title and thus \csa{contentsname} is appropriate. Hence
+\begin{verbatim}
+ \etocmemoirtoctotocfmt{section}{\contentsname}
+\end{verbatim}
+seems the natural choice in this context as an addition to the customizing the
+|memoir| toc related macros to achieve a section like rendering (for more
+details on the latter, please refer to |memoir| manual).
+
+A completely different approach, arguably simpler, is to overrule the \etoc
+default under |memoir| (after the main document \toc which should still use a
+chapter styling) via these simple
+commands:
+\begin{verbatim}
+ \etocarticlestyle % means to use \section*{\contentsname} (and marks)
+ \renewcommand{\etocaftertitlehook}{\addcontentsline{toc}{section}{\contentsname}}
+\end{verbatim}
+exactly as one would do with |book| class for example. Don't use any
+|\phantomsection| in there, |hyperref| hyperlinks will work just fine (and the
+anchor will be slightly above toc title, not below).
+
+Notice that prior to \etoc |1.09b|, the \csb{etocaftertitlehook} macro was
+used by \etoc itself under the |memoir| class. Hence \localtoc obeyed the
+|memoir| mechanism relative to starred or not starred, even after issuing
+\csa{etocarticlestyle}, as long as the user did not redefine
+\csb{etocaftertitlehook}. Starting with |1.09b| (which syncs with a |memoir|
+change at |v3.7i|) it is needed in a case like here where the user issues
+\csa{etocarticlestyle} to also configure explicitly the
+\csa{etocaftertitlehook} to achieve the ``insert title in |.toc|'' effect (if
+so wished), because \etoc uses another mechanism and does not pre-empt usage
+of this user macro anymore.
+
+To recover the \etoc default under |memoir| class one can issue
+\csa{etocmemoirstyle} and then
+\csa{etocmemoirtoctotocfmt}|{chapter}{\contentsname}| (but attention that a
+custom \csb{etocaftertitlehook} will still be obeyed; for info: it will get
+executed before the \cs{cfttocbeforelisthook}).
+
+\end{otherlanguage}
+
+
+
\subsection{Kompatibilität mit \texttt{tocvsec2}}
% la traduction allemande était déficiente semble-t-il, j'améliore un peu
@@ -10661,7 +10719,15 @@ Dokumentation erzeugt von der Quelldatei mit dem Stempel
\begin{multicols}{2}
\begin{jfverbatim}
-v1.09 [2019/03/09]^
+v1.09a, v1.09b [2019/11/17]^
+
+ Sync with memoir v3.7i which has a better location of the TOC
+ hyperref anchor. The \etocaftertitlehook can now freely be
+ used also with memoir class (formerly its usage in case of
+ memoir class was preempted by etoc itself). For more details
+ refer to the section "Compatibility with the memoir class".
+
+~v1.09 [2019/03/09]^
New features: \etoclocaltop, \localtableofcontentswithrelativedepth. Thanks
to Tony Roberts for feature request.
@@ -11110,11 +11176,11 @@ v1.09 [2019/03/09]^
\texttt{\parindent 0pt\rightskip 1cm minus 1cm
This documentation has been compiled without inclusion of the source
code. To produce the English documentation with source code included:\endgraf
- \ \ \ \ run etex on etoc.dtx or etoc.ins to produce etoc.tex,\endgraf
+ \ \ \ \ run etex on etoc.dtx to produce etoc.tex,\endgraf
\ \ \ \ then thrice pdflatex on etoc.tex.\endgraf
\medskip
To produce the German documentation with source code included, run etex on
- etoc.dtx or etoc.ins to produce etoc-DE.tex, then edit etoc-DE.tex
+ etoc.dtx to produce etoc-DE.tex, then edit etoc-DE.tex
to set \string\NoSourceCode\space to 0, and run pdflatex thrice on etoc-DE.tex.\endgraf
}%
\fi
@@ -11126,12 +11192,12 @@ v1.09 [2019/03/09]^
% Um
% die englische Dokumentation mit dem Quellcode zu produzieren, ist
% einzubeziehen: \endgraf
- % \ \ \ \ kompilieren etex mit etoc.dtx oder etoc.ins, um etoc.tex zu
+ % \ \ \ \ kompilieren etex mit etoc.dtx, um etoc.tex zu
% produzieren, \endgraf
% \ \ \ \ dann dreimal pdflatex mit etoc.tex.\endgraf
\endgraf
Um die deutsche Dokumentation mit Einbeziehung des Quellcodes zu erstellen,
- ist zu kompilieren etex mit etoc.dtx oder etoc.ins, um etoc-DE.tex zu
+ ist zu kompilieren etex mit etoc.dtx, um etoc-DE.tex zu
erzeugen, dann ist \string\NoSourceCode\space in etoc-DE.tex auf 0 zu
setzen, dann ist pdflatex dreimal mit etoc-DE.tex laufen zu lassen.\endgraf
% \medskip
@@ -12628,10 +12694,14 @@ v1.09 [2019/03/09]^
% \end{macrocode}
% |1.08i| removes definition of |\etoc@startlocaltoc| from here. It is done
% in |\Etoc@localtableofcontents| or uses its default of |\@gobble|.
+%
+% |1.09b| uses a |\def| in non-starred variant for allowing tricks to
+% recognize later on if we are in a starred or non-starred case, whatever the
+% user definition of \cs{etocaftertitlehook} may be.
% \begin{macrocode}
\@ifstar
- {\def\Etoc@aftertitlehook{}\Etoc@table@fcontents}
- {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@table@fcontents}%
+ {\let\Etoc@aftertitlehook\@empty\Etoc@table@fcontents}
+ {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@table@fcontents}%
}% \etoctableofcontents
\let\tableofcontents\etoctableofcontents
\newcommand*\localtableofcontents{%
@@ -12641,8 +12711,8 @@ v1.09 [2019/03/09]^
\let\tof@begingroup\@empty
\let\tof@endgroup \@empty
\@ifstar
- {\def\Etoc@aftertitlehook{}\Etoc@localtable@fcontents}
- {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@localtable@fcontents}%
+ {\let\Etoc@aftertitlehook\@empty\Etoc@localtable@fcontents}
+ {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@localtable@fcontents}%
}% \localtableofcontents
% \end{macrocode}
% |1.09| adds \localtocwrdp. The motivation is that it is impossible to set
@@ -13272,19 +13342,44 @@ v1.09 [2019/03/09]^
{\if@restonecol \twocolumn \fi}}
\let\etocreportstyle\etocbookstyle
\let\etocreportstylenomarks\etocbookstylenomarks
+% \end{macrocode}
+% |v3.7i| of memoir has moved the \cs{phantomsection} to a better location,
+% before typesetting the title and we follow suit at |1.09a|, and less rashly
+% at |1.09b|. Formerly \etoc used \cs{etocaftertitlehook} to mimick the
+% memoir code but as its name indicate, it is supposedly executed after the
+% title... and this also had the defect of making \cs{etocaftertitlehook} not
+% anymore a user command. Thus we here use some refactoring of the
+% \cs{Etoc@aftertitlehook} internal mechanism to help recognize if we are
+% in the starred case or not.
+%
+% \cs{phantomsection} is always defined by memoir, empty if hyperref absent.
+% \begin{macrocode}
\def\etocmemoirtoctotocfmt #1#2{%
\def\Etoc@addsuitablecontentsline{\addcontentsline {toc}{#1}{#2}}%
- \renewcommand*\etocaftertitlehook{%
- \ifmem@em@starred@listof
- \else
- \phantomsection
- \aftergroup\Etoc@addsuitablecontentsline
- \fi}%
}
\def\etocmemoirstyle{%
\etocsettocstyle
- {\ensureonecol \par \begingroup \@nameuse {@tocmaketitle}
- \Etoc@aftertitlehook\let\Etoc@aftertitlehook\relax
+ {\ensureonecol \par \begingroup \phantomsection
+ \ifx\Etoc@aftertitlehook\@empty
+ \else
+ % non-starred variant
+ \ifmem@em@starred@listof
+ \else
+ \Etoc@addsuitablecontentsline
+ \fi
+ \fi
+ \@nameuse {@tocmaketitle} %<< space token here from memoir code
+ \ifx\Etoc@aftertitlehook\@empty
+ \else
+% \end{macrocode}
+% Execute etoc hook before the \cs{cfttocbeforelisthook} and keep distinction
+% between starred and non-starred contexts for other hooks. Notice that the
+% memoir class way of implementing \cs{tableofcontents} leaves no way for code
+% executed by the TOC code to know if it is executed in starred or non-starred
+% context.
+% \begin{macrocode}
+ \Etoc@aftertitlehook \let \Etoc@aftertitlehook \relax
+ \fi
\parskip \cftparskip \@nameuse {cfttocbeforelisthook}}
{\@nameuse {cfttocafterlisthook}\endgroup\restorefromonecol}}
% \end{macrocode}
@@ -13677,7 +13772,7 @@ v1.09 [2019/03/09]^
Grave accent \` Left brace \{ Vertical bar \|
Right brace \} Tilde \~}
-\CheckSum{3497}%
+\CheckSum{3506}%
\csname check@checksum\endcsname
\Finale
diff --git a/Master/texmf-dist/source/latex/etoc/etoc.ins b/Master/texmf-dist/source/latex/etoc/etoc.ins
deleted file mode 100644
index a8df76bde76..00000000000
--- a/Master/texmf-dist/source/latex/etoc/etoc.ins
+++ /dev/null
@@ -1,78 +0,0 @@
-%%
-%% Package: etoc
-%% Version: 1.09-2019/03/09
-%% License: LPPL 1.3c
-%% Copyright (C) 2012-2019 Jean-Francois Burnol
-%% <jfbu at free dot fr>
-%% Copyright (C) 2014-2019 Christine Roemer
-%% <Christine_Roemer at t-online dot de>
-%% and collaborators for the translation into German of the documentation
-%%
-\def\etocpkgdate {2019/03/09}
-\def\etocdocdate {2019/03/09}
-\def\etocpkgversion {v1.09}
-\def\etocpkgdescription {Completely customisable TOCs (JFB)}
-%% Run etex on this file to extract from etoc.dtx:
-%% etoc.sty, etoc.tex, etoc-DE.tex and README.md
-%%
-%% To produce etoc.pdf run pdflatex (thrice) on etoc.tex.
-%%
-%% Options can be set in etoc.tex (and etoc-DE.tex):
-%% - scrdoc class options (paper size, font size, ...)
-%% - with or without source code,
-%% - with dvipdfmx or with latex/pdflatex.
-%%
-%% Since release 1.08h pdflatex is the default in etoc.tex (prior it
-%% was latex+dvipdfmx as it produces smaller PDFs) in order to allow
-%% inclusion via the use of package `attachfile` of about 25 code
-%% samples as file attachment annotations.
-%%
-%% Um etoc-DE.pdf zu erzeugen ist pdflatex dreimal mit etoc-DE.tex
-%% laufen zu lassen.
-%%
-%% Installation:
-%%
-%% etoc.sty -> TDS:tex/latex/etoc/etoc.sty
-%% etoc.dtx -> TDS:source/latex/etoc/etoc.dtx
-%% etoc.pdf -> TDS:doc/latex/etoc/etoc.pdf
-%% etoc-DE.pdf -> TDS:doc/latex/etoc/etoc-DE.pdf
-%% README.md -> TDS:doc/latex/etoc/README.md
-%%
-\input docstrip.tex
-\askforoverwritefalse
-\def\etocpkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
-\string\NeedsTeXFormat{LaTeX2e}^^J%
-\string\ProvidesPackage{etoc}^^J%
-\space[\etocpkgdate\space\etocpkgversion\space\etocpkgdescription]}%
-\generate{\nopreamble\nopostamble
-\file{README.md}{\from{etoc.dtx}{readme}}%
-\usepostamble\defaultpostamble
-\file{etoc.tex}{\from{etoc.dtx}{tex}}%
-\file{etoc-DE.tex}{\from{etoc.dtx}{DEtex}}%
-\usepreamble\etocpkgpreamble
-\file{etoc.sty}{\from{etoc.dtx}{package}}}%
-\catcode32=13\relax% active space
-\let =\space%
-\Msg{************************************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* file into a directory searched by TeX:}
-\Msg{*}
-\Msg{* etoc.sty}
-\Msg{*}
-\Msg{* To produce the documentation run latex thrice on file etoc.tex}
-\Msg{* (or etoc-DE.tex) and then run dvipdfmx on file etoc.dvi, resp.}
-\Msg{* etoc-DE.dvi}
-\Msg{*}
-\Msg{* Happy TeXing!}
-\Msg{*}
-\Msg{************************************************************************}
-\ifx\numexpr\undefined
-\Msg{* warning: to get correct utf-8 encoded README.md }%
-\Msg{* do etex etoc.ins and not as here tex etoc.ins }%
-\Msg{************************************************************************}
-\fi
-\endbatchfile
-\endinput
-%%
-%% End of file `etoc.ins'.
diff --git a/Master/texmf-dist/tex/latex/etoc/etoc.sty b/Master/texmf-dist/tex/latex/etoc/etoc.sty
index 20f51125d70..9b5e7ed75b1 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}
- [2019/03/09 v1.09 Completely customisable TOCs (JFB)]
+ [2019/11/17 v1.09b Completely customisable TOCs (JFB)]
%%
%% Package: etoc
-%% Version: 1.09-2019/03/09
+%% Version: 1.09b-2019/11/17
%% License: LPPL 1.3c
%% Copyright (C) 2012-2019 Jean-Francois Burnol
%% <jfbu at free dot fr>
@@ -785,8 +785,8 @@
\let\tof@begingroup\@empty
\let\tof@endgroup \@empty
\@ifstar
- {\def\Etoc@aftertitlehook{}\Etoc@table@fcontents}
- {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@table@fcontents}%
+ {\let\Etoc@aftertitlehook\@empty\Etoc@table@fcontents}
+ {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@table@fcontents}%
}% \etoctableofcontents
\let\tableofcontents\etoctableofcontents
\newcommand*\localtableofcontents{%
@@ -796,8 +796,8 @@
\let\tof@begingroup\@empty
\let\tof@endgroup \@empty
\@ifstar
- {\def\Etoc@aftertitlehook{}\Etoc@localtable@fcontents}
- {\let\Etoc@aftertitlehook\etocaftertitlehook\Etoc@localtable@fcontents}%
+ {\let\Etoc@aftertitlehook\@empty\Etoc@localtable@fcontents}
+ {\def\Etoc@aftertitlehook{\etocaftertitlehook}\Etoc@localtable@fcontents}%
}% \localtableofcontents
\newcommand*\localtableofcontentswithrelativedepth[1]{%
\edef\Etoc@localtocdepth
@@ -1266,17 +1266,23 @@
\let\etocreportstylenomarks\etocbookstylenomarks
\def\etocmemoirtoctotocfmt #1#2{%
\def\Etoc@addsuitablecontentsline{\addcontentsline {toc}{#1}{#2}}%
- \renewcommand*\etocaftertitlehook{%
- \ifmem@em@starred@listof
- \else
- \phantomsection
- \aftergroup\Etoc@addsuitablecontentsline
- \fi}%
}
\def\etocmemoirstyle{%
\etocsettocstyle
- {\ensureonecol \par \begingroup \@nameuse {@tocmaketitle}
- \Etoc@aftertitlehook\let\Etoc@aftertitlehook\relax
+ {\ensureonecol \par \begingroup \phantomsection
+ \ifx\Etoc@aftertitlehook\@empty
+ \else
+ % non-starred variant
+ \ifmem@em@starred@listof
+ \else
+ \Etoc@addsuitablecontentsline
+ \fi
+ \fi
+ \@nameuse {@tocmaketitle} %<< space token here from memoir code
+ \ifx\Etoc@aftertitlehook\@empty
+ \else
+ \Etoc@aftertitlehook \let \Etoc@aftertitlehook \relax
+ \fi
\parskip \cftparskip \@nameuse {cfttocbeforelisthook}}
{\@nameuse {cfttocafterlisthook}\endgroup\restorefromonecol}}
\def\etocscrartclstyle{%