diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/etoc/etoc.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/etoc/etoc.dtx | 93 |
1 files changed, 62 insertions, 31 deletions
diff --git a/Master/texmf-dist/source/latex/etoc/etoc.dtx b/Master/texmf-dist/source/latex/etoc/etoc.dtx index 89e7b3a109e..9512121efbe 100644 --- a/Master/texmf-dist/source/latex/etoc/etoc.dtx +++ b/Master/texmf-dist/source/latex/etoc/etoc.dtx @@ -2,20 +2,20 @@ % 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: <14-01-2023 at 21:26:57 CET>}% +\def\etocdtxtimestamp {Time-stamp: <15-01-2023 at 11:56:19 CET>}% %</none> %<*!readme> %% %% Package: etoc -%% Version: 1.1a +%% Version: 1.1b %% License: LPPL 1.3c %% Copyright (C) 2012-2023 Jean-Francois Burnol %% <jfbu at free dot fr> %</!readme> %<*none> -\def\etocpkgdate {2023/01/14} -\def\etocdocdate {2023/01/14} -\def\etocpkgversion {1.1a} +\def\etocpkgdate {2023/01/15} +\def\etocdocdate {2023/01/15} +\def\etocpkgversion {1.1b} \def\etocpkgdescription {Completely customisable TOCs (JFB)} %% German translation was last udpated on April 2015 and all new material %% was included since in English. During 2020/2021/2022 emerged a still @@ -33,7 +33,7 @@ \catcode32=13\catcode`\\=12^^Brelax^^A ^^Bfirstofone{^^Bendgroup^^Bdef^^BetocLicense^^A {% Package: etoc -% Version: 1.1a +% Version: 1.1b % License: LPPL 1.3c % Copyright (C) 2012-2023 Jean-Francois Burnol <jfbu at free dot fr> % @@ -60,7 +60,7 @@ %<*readme> <!-- --> - Source: etoc.dtx (1.1a) + Source: etoc.dtx (1.1b) Author: Jean-Francois Burnol Info: Completely customisable TOCs License: LPPL 1.3c @@ -157,8 +157,15 @@ etoc.sty, etoc.tex, etoc.pdf, etoc.dvi. RECENT CHANGES ============== +1.1b \[2023/01/15\] +------------------- + +Documentation fix, 1.1a forgot to mention the following change: +`\etocthelinkedname`, `\etocthelinkednumber`, `\etocthelinkedpage` +are now always hyperlinks independently of linktoc status. + 1.1a \[2023/01/14\] ----------------------- +------------------- This version brings no new functionality, despite the number bump. It implements a complete rewrite of old legacy core internals. @@ -3668,7 +3675,9 @@ hyperlinks. No such problem arises either when using |forest| or the native |tikz| syntax for trees (which will be illustrated in the next section).} The commands \csb{etocname}, etc\dots, are robust, it is easier to work with \csb{etocthelinkednumber}, \csb{etocthelinkedname}, and \csb{etocthelinkedpage} -which contain the same information in an easier accessible form. +which contain the same information in an easier accessible form.% +% +\normalmarginpar\marginpar{\footnotesize\rmfamily\itshape\RaggedRight At \texttt{1.1a} the commands \csa{etocthelinkedname}, etc\dots, are always providing an hyperlink, so it is not true that \csb{etocname}, etc\dots, are always simply their robust variants.} For this |forest| tree we have designed very special \etoc styles for sections and subsections. They use a token list register called |\treetok| and a @@ -4659,21 +4668,31 @@ The meanings of these commands can be stored for delayed usage. For example this is done in the \hyperref[tocastree]{examples with trees}. -Notice though the following facts: +There has been a \textbf{breaking change} at |1.1a|. Here is the behavior +\emph{prior} to this release: \begin{itemize}[noitemsep] -\item \csb{etocthelinkednumber} and \csb{etocthelinkedname} are hyperlinks +\item \csb{etocthelinkedname} and \csb{etocthelinkednumber} were hyperlinks only if \ctanpkg{hyperref} was configured via |linktoc=all| or |linktoc=section| (the default), -\item \csb{etocthelinkedpage} is an hyperlink only if \ctanpkg{hyperref} was - configured via |linktoc=all| or |linktoc=page|. \emph{Furthermore}, the - page number must not be empty: if it is empty no hyperlink is added (this - matches the \ctanpkg{hyperref} behavior when \etoc is not loaded). +\item \csb{etocthelinkedpage} was an hyperlink only if \ctanpkg{hyperref} was + configured via |linktoc=all| or |linktoc=page| and the page number was not empty. \end{itemize} +This behavior was coherent with the commands \csb{etocname}, \csb{etocnumber}, +and \csb{etocpage} being the robust variants of \csb{etocthelinkedname}, +\csb{etocthelinkednumber}, and \csb{etocthelinkedpage}. -It may be a bit strange that the link is not sytematically added despite the -command names, but this is legacy behavior of the package. It is coherent -with the commands \csb{etocname}, \csb{etocnumber}, and \csb{etocpage} being -their robust variants. +At |1.1a| it was decided that the commands should match their denominations.% +% +\footnote{To tell the whole truth, the author in refactoring the code completely at \texttt{1.1a} was tricked by the names and forgot to read the old documentation so the new behavior was implemented and it was decided to keep the change.} +% +So they are now \emph{always} hyperlinks independently of |linktoc| \ctanpkg{hyperref} +option (\csb{etocthelinkedpage} has no hyperlink if the page number is empty, +to match \ctanpkg{hyperref} behavior): +\begin{itemize}[noitemsep] +\item \csb{etocthelinkedname} and \csb{etocthelinkednumber} and + \csb{etocthelinkedpage} are always (in presence of \ctanpkg{hyperref}) + hyperlinks (for \csb{etocthelinkedpage} the page number must not be empty). +\end{itemize} A further command is provided: \csb{etocthelink}, which wraps% @@ -4684,11 +4703,6 @@ an hyperlink around its argument: |\etocthelink|\marg{foo} hyperlinks an arbitrary text \meta{foo} to the target sectioning unit in the document. The command \csb{etoclink} is its robust variant. -Thus, \csb{etocthelinkednumber} is essentially -\csb{etocthelink}|{|\csb{etocthenumber}|}| if |linktoc| is |all| or the -default |section|, else it is an alias to \csb{etocthenumber}. Similarly for -the other two. - % They too % contain the hyperlink destination in already expanded form since |1.08a| for % the first three, since |1.08j| for \csb{etoclink}. @@ -6510,11 +6524,9 @@ number. On the other hand \csb{etocthename}, \csb{etocthenumber}, \csb{etocthepage} are \emph{not} protected against expansion. And neither are \csb{etocthelinkedname}, \csb{etocthelinkednumber}, \csb{etocthelinkedpage}. -The latter three are hyperlinks only if \ctanpkg{hyperref} |linktoc| option -has the suitable value: |section| (which is default) or |all| for name and -number to be hyperlinks, |page| or |all| for the page number (which must not -be empty). The commands \csb{etocname}, \csb{etocnumber}, and \csb{etocpage} -are their robust variants. +They were modified at |1.1a| and now are always hyperlinks (except for the +latter if the page number is empty), if +\ctanpkg{hyperref} is present, independently of |linktoc| status. The commands \csb{etoclink} and \csb{etocifnumbered} are also protected against premature expansion. Also \csb{etociffirst} and @@ -6677,7 +6689,13 @@ version is \texttt{\etocpkgversion}, of \texttt{\etocpkgdate}. \def {\ifvmode\advance\jfverbadim.5em\relax\else\expandafter\jfverbaspace\fi}}\x \makeatother \begin{jfverbatim} -1.1a [2023/01/14]^ +1.1b [2023/01/15]^ + + Documentation fix, 1.1a forgot to mention the following change: + \etocthelinkedname, \etocthelinkednumber, \etocthelinkedpage + are now always hyperlinks independently of linktoc status. + +~1.1a [2023/01/14]^ This version brings no new functionality, despite the number bump. It implements a complete rewrite of old legacy core internals. @@ -7670,7 +7688,7 @@ of real structure in a \LaTeX{} document body). % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[2020/10/01] \ProvidesPackage{etoc} -[2023/01/14 v1.1a Completely customisable TOCs (JFB)] +[2023/01/15 v1.1b Completely customisable TOCs (JFB)] \RequirePackage{multicol} \DeclareOption*{\PackageWarning{etoc}{Option `\CurrentOption' is unknown.}} \ProcessOptions\relax @@ -8071,6 +8089,19 @@ of real structure in a \LaTeX{} document body). % target from % the \ctanpkg{hyperref} hacked arguments of \csa{l@section} et al, rather % than picking it from the fourth argument of \csa{contentsline}. +% +% Another \textbf{breaking change} (documented only at |1.1b|): all three +% of \csbc{etocthelinkedname}, \csbc{etocthelinkednumber}, and +% \csbc{etocthelinkedpage} are always hyperlinks (for the latter, only if +% page number is not empty to match \ctanpkg{hyperref} ways). +% Formerly they obeyed the |linktoc| status, +% somewhat counterintuitively, but this meant that \csbc{etocname} etc... +% were their robust variants, which meant one could store easily for later +% usage (see the documentation examples with ``treetoks'') their precise +% meaning. The breaking change happened in part because I was fooled myself +% by the macro names, and refactored the code in two steps separated by months +% so in second step I forgot I had only provisory code. And I decided finally +% to keep the breaking change. % \begin{macrocode} \def\Etoc@lxyz #1#2#3{% \ifEtoc@hyperref |