diff options
Diffstat (limited to 'macros/latex/contrib/etoc/etoc.dtx')
-rw-r--r-- | macros/latex/contrib/etoc/etoc.dtx | 66 |
1 files changed, 44 insertions, 22 deletions
diff --git a/macros/latex/contrib/etoc/etoc.dtx b/macros/latex/contrib/etoc/etoc.dtx index 6bc8ebe644..2c014e28c4 100644 --- a/macros/latex/contrib/etoc/etoc.dtx +++ b/macros/latex/contrib/etoc/etoc.dtx @@ -2,20 +2,20 @@ % N.B.: this dtx file does NOT use \DocInput. It does NOT prefix the user % manual part with percent characters. %<*none> -\def\etocdtxtimestamp {Time-stamp: <04-07-2023 at 22:42:41 CEST>}% +\def\etocdtxtimestamp {Time-stamp: <29-10-2023 at 10:31:05 CET>}% %</none> %<*!readme> %% %% Package: etoc -%% Version: 1.2c +%% Version: 1.2d %% License: LPPL 1.3c %% Copyright (C) 2012-2023 Jean-Francois Burnol %% <jfbu at free dot fr> %</!readme> %<*none> -\def\etocpkgdate {2023/10/28} -\def\etocdocdate {2023/10/28} -\def\etocpkgversion {1.2c} +\def\etocpkgdate {2023/10/29} +\def\etocdocdate {2023/10/29} +\def\etocpkgversion {1.2d} \def\etocpkgdescription {Completely customisable TOCs (JFB)} %% Formerly this etoc.dtx also included source for a German translation %% etoc-DE.pdf. But all additions since April 2015 had been only in English. @@ -29,7 +29,7 @@ \catcode32=13\catcode`\\=12^^Brelax^^A ^^Bfirstofone{^^Bendgroup^^Bdef^^BetocLicense^^A {% Package: etoc -% Version: 1.2c +% Version: 1.2d % License: LPPL 1.3c % Copyright (C) 2012-2023 Jean-Francois Burnol <jfbu at free dot fr> % @@ -56,7 +56,7 @@ %<*readme> <!-- --> - Source: etoc.dtx (1.2c) + Source: etoc.dtx (1.2d) Author: Jean-Francois Burnol Info: Completely customisable TOCs License: LPPL 1.3c @@ -137,6 +137,9 @@ etoc.sty, etoc.tex, etoc.pdf, etoc.dvi. RECENT CHANGES ============== +- `1.2d 2023/10/29` fix crash (since `1.2`) in presence of + `\usepackage[nottoc]{tocbibind}`. Thanks to François Jonca for report. + - `1.2c 2023/10/28` compatibility hotfix with `hyperref v7.01c`. Thanks to Denis Bitouzé for report. @@ -6805,11 +6808,21 @@ should work. Please inform the author in case of issues: \etoc was from the start designed to be |100%| compatible with package \ctanpkg{hyperref}. +\begin{framed} + Releases of \etoc prior to \etocrelease{1.2c} copied over some legacy + internals of \ctanpkg{hyperref} which got removed there at release + |v7.01c| of |2023-10-21|, and this caused \etoc to stop displaying + tables of contents. You must use at least \etocrelease{1.2c} to avoid + that mishap. +\end{framed} + The macros \csb{etocname}, \csb{etocnumber}, and \csb{etocpage} contain the \ctanpkg{hyperref} links, if present (note that the \emph{linktoc=all} option of \ctanpkg{hyperref} tells it to put a link also in the page number corresponding to a given toc entry). For example, the tables of contents of the present document -are all fully linked. It doesn't matter whether \etoc or \ctanpkg{hyperref} is loaded +are all fully linked. + +It doesn't matter whether \etoc or \ctanpkg{hyperref} is loaded first. \subsection{Compatibility with \ctanpkg{microtype}} @@ -6968,8 +6981,7 @@ above with some more width for the numbers of subsections. \subsection{Compatibility with \ctanpkg{tocloft}}\label{subs:tocloft} -Release \etocrelease{1.07k} added compatibility with package -\ctanpkg{tocloft}: steps are +Steps are taken to prevent the redefinition of |\tableofcontents| done by \ctanpkg{tocloft} at |\begin{document}|. % @@ -6990,10 +7002,8 @@ not possible. the time of |\begin{document}| and trick \ctanpkg{tocloft} into believing having been loaded with the |titles| option. - Sadly, \etocrelease{1.2} and \etocrelease{1.2a} had a bug and loading - \ctanpkg{tocloft} before \etoc caused \toc to not be the \etoc one. One had - to use explicitly \csb{etoctableofcontents} (there was no issue with - \localtoc). The regression was fixed at \etocrelease{1.2b}. + Some bugs with \etocrelease{1.2} and \etocrelease{1.2a} were fixed at + \etocrelease{1.2b}. \end{framed} It is possible to modify midway in the document the macros \csa{l@section}, @@ -7003,9 +7013,10 @@ customizations). It will have no effect on true \etoc TOCs. \subsection{Compatibility with \ctanpkg{tocbibind}}\label{subs:tocbibind} -Added at \etocrelease{1.2}. See also \csb{etocsetup} for a discussion of the - package options which are all related to this (they will achieve the - \ctanpkg{tocbibind} ``to toc'' features without requiring the package). +Added at \etocrelease{1.2} (but with a bug fixed only at +\etocrelease{1.2d}). See also \csb{etocsetup} for a discussion of the +package options which are all related to this (they will achieve the +\ctanpkg{tocbibind} ``to toc'' features without requiring the package). Thanks to Denis Bitouzé for feature request. @@ -7212,6 +7223,12 @@ version is \texttt{\etocpkgversion}, of \texttt{\etocpkgdate}. \makeatother \vskip-\baselineskip \begin{jfverbatim} +~1.2d [2023/10/29]^ + + Fix crash (present since 1.2) if used with + \usepackage[nottoc]{tocbibind} (the faulty code was avoided if also + tocloft was used by document). Thanks to François Jonca for report. + ~1.2c [2023/10/28]^ Compatibility hotfix with hyperref v7.01c; etoc had copied @@ -8454,7 +8471,7 @@ of real structure in a \LaTeX{} document body). % \csa{numexpr} or \csa{unexpanded} or maybe others yet that we use). % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[2003/12/01] -\ProvidesPackage{etoc}[2023/10/28 v1.2c Completely customisable TOCs (JFB)] +\ProvidesPackage{etoc}[2023/10/29 v1.2d Completely customisable TOCs (JFB)] % \end{macrocode} % Gentle Info message in the log to mention no testing is done of current % \etoc on old \LaTeX{} installations. @@ -8467,7 +8484,7 @@ of real structure in a \LaTeX{} document body). Since 1.1a (2023/01/14), etoc prefers LaTeX at least\MessageBreak as recent as 2020-10-01, for reasons of the .toc file,\MessageBreak and used to require it (from 1.1a to 1.2).\MessageBreak - This etoc (1.2c) does not *require* it, but has not been\MessageBreak + This etoc (1.2d) does not *require* it, but has not been\MessageBreak tested thoroughly on old LaTeX (especially if document\MessageBreak does not use hyperref) and retrofitting was done only\MessageBreak on basis of author partial remembrances of old context.\MessageBreak @@ -11793,6 +11810,10 @@ of real structure in a \LaTeX{} document body). }% {% no tocloft \@ifpackageloaded {tocbibind} +% \end{macrocode} +% For some reason this \etocrelease{1.2} code had no |\fi| matching the +% |\if@dotoctoc|. Fixed at \etocrelease{1.2d}. +% \begin{macrocode} {\if@dotoctoc \def\etocclasstocstyle{% \etoctocbibindstyle @@ -11817,9 +11838,10 @@ of real structure in a \LaTeX{} document body). \else \let\tableofcontents\etoctableofcontents \fi - }% - {}% - }% + \fi + }% end of tocbibind without tocloft at begin document code + {}% empty false branch + }% end of no tocloft at begin document code % \end{macrocode} % Maybe I should check if the options were already set. I will simply % make the message more generic. |