summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/etoc/etoc.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/etoc/etoc.dtx')
-rw-r--r--macros/latex/contrib/etoc/etoc.dtx66
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.