From 7afb014366b9e4980eba804bcdba1dd30d3a3e9e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Nov 2015 22:17:40 +0000 Subject: etoc (12nov15) git-svn-id: svn://tug.org/texlive/trunk@38831 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/etoc/etoc.dtx | 205 ++++++++++++++++++--------- Master/texmf-dist/source/latex/etoc/etoc.ins | 4 +- 2 files changed, 137 insertions(+), 72 deletions(-) (limited to 'Master/texmf-dist/source/latex/etoc') diff --git a/Master/texmf-dist/source/latex/etoc/etoc.dtx b/Master/texmf-dist/source/latex/etoc/etoc.dtx index 97e5ef0987d..eeecf1a0c0c 100644 --- a/Master/texmf-dist/source/latex/etoc/etoc.dtx +++ b/Master/texmf-dist/source/latex/etoc/etoc.dtx @@ -1,13 +1,13 @@ % -*- coding: utf-8; -*- %<*none> -{\def\doctimestamp {Time-stamp: <29-08-2015 12:09:59 CEST>}% +{\def\doctimestamp {Time-stamp: <12-11-2015 15:44:31 CET>}% \def\getdtxtimestamp #1 <#2 #3 #4>{#2 at #3 #4}% \xdef\etocdtxtimestamp {\expandafter\getdtxtimestamp\doctimestamp }}% % %<*!readme> %% %% Package: etoc -%% Version: 1.08g (2015/08/29) +%% Version: 1.08g (2015/08/29 -- doc 2015/11/12) %% License: LPPL 1.3c or later (see etoc.dtx) %% Copyright (C) 2012-2015 Jean-Francois Burnol %% @@ -18,16 +18,16 @@ % %<*insfile> \def\etocpkgdate {2015/08/29} -\def\etocdocdate {2015/08/29} +\def\etocdocdate {2015/11/12} \def\etocpkgversion {v1.08g} \def\etocpkgdescription {Completely customisable TOCs (jfB)} % %<*none> % Now the date and version which are specific to the German translation. % Replace \let by suitable \def's in case this lags behing English version. -\let\etocDEpkgdate \etocpkgdate % -\let\etocDEdocdate \etocdocdate % -\let\etocDEpkgversion\etocpkgversion % +\let\etocDEpkgdate \etocpkgdate +\def\etocDEdocdate {2015/08/29} +\let\etocDEpkgversion\etocpkgversion % Definition of \etocLicense % -------------------------- \begingroup @@ -36,7 +36,7 @@ \catcode32=13\catcode`\\=12^^Brelax^^A ^^Bfirstofone{^^Bendgroup^^Bdef^^BetocLicense^^A {% Package: etoc -% Version: 1.08g (2015/08/29) +% Version: 1.08g (2015/08/29 -- doc 2015/11/12) % License: LPPL 1.3c or later % Copyright (C) 2012-2015 Jean-Francois Burnol % Copyright (C) 2014-2015 Christine Roemer @@ -71,7 +71,7 @@ %<*readme> - Source: etoc.dtx (v1.08g 2015/08/29) + Source: etoc.dtx (v1.08g 2015/08/29 -- doc 2015/11/12) Author: Jean-Francois Burnol Author: Christine Roemer et al. (German tranlation) Info: Completely customisable TOCs @@ -681,6 +681,9 @@ Jena). My grateful thanks to all! % et pourtant tailles sont ok, donc au moins cette information est % maintenue je ne sais donc pas exactement ce qui se passe. +% (2015/11/12: je soupçonne presque un bug de conception de NFSS mais je n'ai +% jamais eu ni le temps ni l'envie de regarder de plus près) + \DeclareFontFamily{T1}{txtt}{\hyphenchar\font 45\relax} \DeclareFontShape{T1}{txtt}{m}{n}{ %medium <->s*[.96] t1xtt% @@ -1299,8 +1302,12 @@ etoc-framed-mp-hook nodes={concept}, concept color=orange!60, root concept/.append style={font=\huge, text width = 6cm}, - % level 1/.append style={level distance=7cm, sibling angle=360/9},% 9 hard-coded mais je pourrais aussi le calculer - level 1/.append style={level distance=6cm, sibling angle=360/9},% 9 hard-coded mais je pourrais aussi le calculer + % level 1/.append style={level distance=7cm, sibling + % angle=360/9},% 9 hard-coded mais je pourrais aussi le + % calculer +% je passe de 6 à 7cm pour doc du 2015/12/11, mais je dois aussi écarter un +% peu level2 + level 1/.append style={level distance=7cm, sibling angle=360/9},% 9 hard-coded mais je pourrais aussi le calculer level 1 concept/.append style={font=\Large, text width = 3cm}, % ancienne version circulaire @@ -1308,7 +1315,7 @@ etoc-framed-mp-hook % % distance par rapport au CENTRE ! (avec le code tel qu'en ce moment) % 39 hard coded mais je pourrais aussi le calculer % pour version rectangulaire, par tâtonnements: - level 2/.append style={level width=20cm,level height=30cm, sibling distance=2.57cm}, + level 2/.append style={level width=21cm,level height=30cm, sibling distance=2.57cm}, ] \the\treetok \end{tikzpicture}}\endgroup } @@ -4726,6 +4733,7 @@ mode before typesetting the TOC title and contents. \label{etocbeforetitlehook} \label{etocaftertitlehook} \label{etocaftercontentshook} +\label{etocaftertochook} \label{etocmemoirtoctotocfmt} The \toc, \localtoc, \csa{etocmulticol}, and all their cousins and @@ -4764,9 +4772,10 @@ generally speaking a hook macro called starred variants of the displaying commands. Except for the |memoir| class, this hook is initially defined to do nothing. -There is \csb{etocaftercontentshook}, similarly defined to do -nothing. And \csb{etocbeforetitlehook} is also initially defined to do -nothing. They can be used for some special effects. +There are also (independently of the document class) +\csb{etocaftercontentshook}, \csb{etocbeforetitlehook} and +\csb{etocaftertochook} which are initially defined to do nothing and can be +used for some special effects. \section{Table of contents for this part} @@ -5880,7 +5889,8 @@ Note: rather than |\toks| registers it would be easier here to use \eTeX{} \part{\etoc and the outside world} \section{Compatibility with other packages} -\label{etocaftertochook} + +\subsection{Generalities} The contents of the |.toc| file (if it already exists) are read into memory by \etoc once, at the time of |\begin{document}|.\footnote{New with |1.07m|. @@ -5888,33 +5898,94 @@ The contents of the |.toc| file (if it already exists) are read into memory by \csa{usepackage\{etoc\}}. Thanks to Denis Bitouzé who signaled a Babel related problem, which turned out to be caused by this.} -\begin{framed} - One should load \etoc \emph{after} \texttt{babel}. This is in order for - |babel|'s shorthands to be active at the time when \etoc loads the |.toc| - file. -\end{framed} - The |.toc| file remains available to other packages for read operations until the location of the first table of contents at which time a write stream is opened by \etoc and from that point the file is erased until its contents are again written to the disk by \LaTeX{} at the end of the compilation. -\etoc loads the package |multicol|. +Don't use |\if stuff \tableofcontents\fi|, but: +\centeredline{|\if stuff \expandafter\tableofcontents\fi|} +Also a |\else| immediately following \csa{tableofcontents} or +\csa{localtableofcontents} requires a previous \csa{expandafter}. + + +\etoc can not really cohabit with packages modifying the \csa{tableofcontents} + command: some sort of truce can be achieved if \etoc is loaded last, hence is + the winner. + +\begin{framed} + Do not modify the |\tableofcontents| command like this: + \centeredline{|\let\oldtableofcontents\tableofcontents|} + \centeredline{|\renewcommand\tableofcontents{\oldtableofcontents foo}|} + as this will make the |\label/\ref| mechanism impossible. + + Rather use \centeredline{|\renewcommand\etocaftertochook{foo}|} and there + is also \csb{etocaftercontentshook} which is executed a bit + earlier\footnotemark{} just before the closing part of the toc display + style (and thus still within a group.) + + Prepending is less of a problem (and anyhow there is also + \csa{etocbeforetitlehook} available to the user). + + Under certain circumstances \etoc imposes its views on + \csa{tableofcontents} at the time of |\begin{document}|. You may thus have + to use \csa{AtBeginDocument} to delay your (necessarily ugly and + non-recommendable) patches. Patching after |\begin{document}| is + naturally possible but I feel almost a rebel to mention this to \LaTeX{} users! +\end{framed} +\footnotetext{contrarily to \csa{etocaftertochook}, + \csa{etocaftercontentshook} is not executed if the |tocdepth| did not + allow the printing of the TOC.} + +\etoc \textbf{requires} the |.toc| file to use the \csa{contentsline} + macro. It \textbf{can not} work if there is no |.toc| file or if the + |.toc| file does not contain the relevant data or if the |.toc| file does + not use the \csa{contentsline} macro or if the \csa{contentsline} macro + does not invoke the \csa{l@} macros. + +\subsection{Compatibility with \texttt{beamer}} + +For the very reasons mentioned right before, \etoc is incompatible with the +|beamer| class. However, if |beamer| is used in an article mode, i.e., with +the article class in conjunction with the |beamerarticle| package, then \etoc +should work. + +\subsection{Compatibility with \texttt{Babel}} + +\begin{framed} + One must load \etoc \emph{after} \texttt{babel}. This is in order for + |babel|'s shorthands to be active at the time when \etoc loads the |.toc| + file. +\end{framed} + +\subsection{Compatibility with \texttt{hyperref}} + +Please inform the author in case of issues: \etoc was from the start designed +to be |100%| compatible with package |hyperref|. + +The macros \csa{etocname}, \csa{etocnumber}, and \csa{etocpage} contain the +|hyperref| links, if present (note that the \emph{linktoc=all} option of +|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 |hyperref| is loaded +first. + +% \typeout{ICI} +% \showhyphens{Compatibility} +% [] \T1/txss/m/n/10.95 Com-pat-i-bil-ity + +% 2015/11/12 +% Pour une raison que j'ignore dans la TOC principale j'ai un problème avec +% cette sous-section. + +\subsection{Com\-pat\-i\-bil\-ity with \texttt{multicol}} -\etoc requires the |.toc| file to use the |\contentsline| macro (possibly -patched by other packages). It is thus incompatible with the |beamer| class. -However, if |beamer| is used in an article mode, i.e., with the article class -in conjunction with the |beamerarticle| package, then \etoc should work. +\etoc loads the package |multicol|. -\etoc is |hyperref| aware and hopefully |hyperref| compatible: the macros -\csa{etocname}, \csa{etocnumber}, and \csa{etocpage} contain the |hyperref| -links, if present (note that the \emph{linktoc=all} option of |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 |hyperref| is loaded first. +\subsection{Compatibility with \texttt{tocloft}} -Release |1.07k| adds compatibility with package +Release |1.07k| added compatibility with package |tocloft|:\footnote{\url{http://ctan.org/pkg/tocloft}} steps are taken to prevent the redefinition of |\tableofcontents| done by |tocloft| at |\begin{document}|. @@ -5932,9 +6003,18 @@ not possible. \begin{framed} One should load \etoc \emph{after} \texttt{tocloft}. A warning is - issued if otherwise. + issued if otherwise, because if \etoc is loaded before it will realize that at + the time of |\begin{document}| and trick \texttt{tocloft} into believing + having been loaded with the |titles| option. \end{framed} +It is possible to customize (using package |tocloft| for +example) throughout the document the macros \csa{l@section}, +\csa{l@subsection} ... and the effect will be seen in the next +table of contents typeset by \etoc in compatibility mode. + +\subsection{Compatibility with the \texttt{memoir} class} + 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 |chapter|, thus the chapter line style should possibly do a test for some user @@ -5942,25 +6022,7 @@ 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. -\etoc can not really cohabit with packages modifying the \csa{tableofcontents} - command: some sort of truce can be achieved if \etoc is loaded last, hence is - the winner. - - \begin{framed} - Do not modify the |\tableofcontents| command like this: - \centeredline{|\let\oldtableofcontents\tableofcontents|} - \centeredline{|\renewcommand\tableofcontents{\oldtableofcontents\mystuff}|} - as this will make the |\label/\ref| mechanism impossible. Rather you may do - \centeredline{|\renewcommand\etocaftertochook{\mystuff}|} and there is - also \csb{etocaftercontentshook} which is executed a bit - earlier\footnotemark{} - just before - the - closing part of the toc display style (and thus still within a group.) - \end{framed} -\footnotetext{contrarily to \csa{etocaftertochook}, - \csa{etocaftercontentshook} is not executed if the |tocdepth| did not - allow the printing of the TOC.} +\subsection{Compatibility with package \texttt{tocvsec2}} \etoc used to be incompatible with package |tocvsec2|\footnote{\url{http://ctan.org/pkg/tocvsec2}}; it now cohabits, sort @@ -5970,15 +6032,7 @@ kinds of divisions. the way, at least two latex runs are necessary for new uses of this command in a document to have an effect in tables of contents. -When a \localtoc is inserted by the user in the document, a -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. - -It is possible to customize (using package |tocloft| for -example) throughout the document the macros \csa{l@section}, -\csa{l@subsection} ... and the effect will be seen in the next -table of contents typeset by \etoc in compatibility mode. +\subsection{Compatibility with package \texttt{tableof}} It is possible to use simultaneously \etoc and {\color{niceone}|tableof|}\footnote{\url{http://ctan.org/pkg/tableof}}. Release @@ -5994,6 +6048,11 @@ documentation they do not typeset a TOC title. They should \emph{not} be used in case \csb{etocglobaldefs} was issued before, except if its scope has been terminated since then, or \csb{etoclocaldefs} has cancelled its influence. +\subsection{Compatibility with package \texttt{tocstyle}} + +Unknown. (not tested a.t.t.o.w). + + \section{\TeX nical matters} The \csb{etocname}, \csb{etocnumber}, \csb{etocpage} commands are protected @@ -6012,6 +6071,11 @@ The commands such as \csb{etocsetstyle}, \csb{etocsetlevel}, \csb{etocruledstyle}, \csb{etocframedstyle} obey \LaTeX{}'s groups. All TOCs are typeset inside groups. +When a \localtoc is inserted by the user in the document, a +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 @@ -6124,10 +6188,12 @@ version is \texttt{\etocpkgversion}, of \texttt{\etocpkgdate}. nodes={concept}, concept color=orange!60, root concept/.append style={font=\huge, text width = 6cm}, - level 1/.append style={level distance=6cm, sibling angle=360/9}, +% geändert 2015/11/12 6cm->7cm + level 1/.append style={level distance=7cm, sibling angle=360/9}, level 1 concept/.append style={font=\Large, text width = 3cm}, - level 2/.append style={level width=20cm,level height=30cm, sibling distance=2.57cm}, +% geändert 2015/11/12 20cm->21cm + level 2/.append style={level width=21cm,level height=30cm, sibling distance=2.57cm}, ] \the\treetok \end{tikzpicture}}\endgroup } @@ -6644,7 +6710,7 @@ Der Code: \endgroup \end{verbatim} -\clearpage % ATTENTION 28 mars 2015 +% \clearpage % ATTENTION 28 mars 2015 \section{Verlinkte Liste der Hauptbefehle} % 16 octobre @@ -9497,6 +9563,7 @@ seinen Varianten zuerst ein |\par| erstellt. \label{etocbeforetitlehook} \label{etocaftertitlehook} \label{etocaftercontentshook} +\label{etocaftertochook} \label{etocmemoirtoctotocfmt} Die Befehle \toc, \localtoc, \csa{etocmulticol} und all ihre Cousins und @@ -9533,10 +9600,9 @@ 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. -Außerdem gibt es noch \csb{etocaftercontentshook}, ähnlich definiert, um -nichts zu tun. Es gibt auch \csb{etocbeforetitlehook}: es ist definiert -um nichts zu tun. Beide können für einige spezielle Effekte genutzt -werden. +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. \section{Das In\-halts\-ver\-zeic\-hnis von die\-sem Teil} @@ -10655,7 +10721,6 @@ zum Beispiel \autoref{sec:mindmap}. \part{\etoc und die Außenwelt} \section{Kompatibilität mit anderen Paketen} -\label{etocaftertochook} % JFBU modifiziert Januar 23, 2015 Die Inhalte der |.toc|-Datei (falls bereits vorhanden) werden einmal in den diff --git a/Master/texmf-dist/source/latex/etoc/etoc.ins b/Master/texmf-dist/source/latex/etoc/etoc.ins index 7b14942b050..76a0130f5c3 100644 --- a/Master/texmf-dist/source/latex/etoc/etoc.ins +++ b/Master/texmf-dist/source/latex/etoc/etoc.ins @@ -1,6 +1,6 @@ %% %% Package: etoc -%% Version: 1.08g (2015/08/29) +%% Version: 1.08g (2015/08/29 -- doc 2015/11/12) %% License: LPPL 1.3c or later (see etoc.dtx) %% Copyright (C) 2012-2015 Jean-Francois Burnol %% @@ -9,7 +9,7 @@ %% and collaborators for the translation into German of the documentation %% \def\etocpkgdate {2015/08/29} -\def\etocdocdate {2015/08/29} +\def\etocdocdate {2015/11/12} \def\etocpkgversion {v1.08g} \def\etocpkgdescription {Completely customisable TOCs (jfB)} %% Run etex on this file to extract from etoc.dtx: -- cgit v1.2.3