diff options
author | Karl Berry <karl@freefriends.org> | 2019-11-17 22:36:06 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2019-11-17 22:36:06 +0000 |
commit | 305b95e6a4e7344e2a2e66b3a433c526944e3c20 (patch) | |
tree | 54bf66200bc6af49bbbf91993190a32c4fcf9050 | |
parent | 23ef0a47d81811188819422f09392e5220e96b59 (diff) |
etoc (17nov19)
git-svn-id: svn://tug.org/texlive/trunk@52842 c570f23f-e606-0410-a88d-b1316a301751
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 Binary files differindex 7c825409068..6b443b78aee 100644 --- a/Master/texmf-dist/doc/latex/etoc/etoc-DE.pdf +++ b/Master/texmf-dist/doc/latex/etoc/etoc-DE.pdf 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 Binary files differindex 1b43c65c89e..111b8b2b7e6 100644 --- a/Master/texmf-dist/doc/latex/etoc/etoc.pdf +++ b/Master/texmf-dist/doc/latex/etoc/etoc.pdf 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{% |