summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-03-14 23:02:20 +0000
committerKarl Berry <karl@freefriends.org>2015-03-14 23:02:20 +0000
commit1b0fc82b597aca3a7eefc79b4b1079629acbce5e (patch)
tree8193d5afad178169d56187475ecd965cee97a15a
parentf8c8d56f3bc874b6b3b0c381a195755dc2db5dad (diff)
etoc (14mar15)
git-svn-id: svn://tug.org/texlive/trunk@36516 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/generic/etoc/README182
-rw-r--r--Master/texmf-dist/doc/generic/etoc/README.md188
-rw-r--r--Master/texmf-dist/doc/generic/etoc/etoc-DE.pdfbin335594 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/generic/etoc/etoc.pdfbin361750 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/etoc/README201
-rw-r--r--Master/texmf-dist/doc/latex/etoc/README.md195
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etoc-DE.pdfbin0 -> 405216 bytes
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etoc.pdfbin0 -> 430698 bytes
-rw-r--r--Master/texmf-dist/source/latex/etoc/etoc.dtx (renamed from Master/texmf-dist/source/generic/etoc/etoc.dtx)1319
-rw-r--r--Master/texmf-dist/source/latex/etoc/etoc.ins (renamed from Master/texmf-dist/source/generic/etoc/etoc.ins)8
-rw-r--r--Master/texmf-dist/tex/latex/etoc/etoc.sty (renamed from Master/texmf-dist/tex/generic/etoc/etoc.sty)43
11 files changed, 1437 insertions, 699 deletions
diff --git a/Master/texmf-dist/doc/generic/etoc/README b/Master/texmf-dist/doc/generic/etoc/README
deleted file mode 100644
index 219efa41dc4..00000000000
--- a/Master/texmf-dist/doc/generic/etoc/README
+++ /dev/null
@@ -1,182 +0,0 @@
- Source: etoc.dtx (v1.08 2015/03/10)
- Author: Jean-Francois Burnol
- Author for German tranlation: Christine Roemer
- Info: Completely customisable TOCs
- License: LPPL 1.3c or later
-
-Copyright (C) 2012-2015 Jean-Francois Burnol
-
-Copyright (C) 2014-2015 Christine Roemer and collaborators for the
-translation into German of the documentation.
-
-
-
-ABSTRACT
-
-
- The etoc package gives to the user complete control on how the entries
- of the table of contents should be constituted from the _name_,
- _number_, and _page number_ of each sectioning unit. This goes via the
- definition of _line styles_ for each sectioning level used in the
- document. The package provides its own custom line styles. Simpler
- ones are given as examples in the documentation. The simplest usage
- will be to take advantage of the layout facilities of packages dealing
- with list environments.
-
- Regarding the _global toc display_, etoc provides pre-defined styles
- based on a multi-column format, with, optionally, a ruled title or
- framed contents.
-
- The \tableofcontents command may be used arbitrarily many times and it
- has a variant \localtableofcontents which prints tables of contents
- 'local' to the current surrounding document unit. An extension of the
- \label/\ref syntax allows to reproduce (with another layout) a local
- table of contents defined somewhere else in the document.
-
- Via ''depth tags'', one gets an even finer control for each table of
- contents of which sectioning units it should, or not, display.
-
- The formatting inherited (and possibly customized by other packages)
- from the document class will be used when in compatibility mode.
-
- The assignment of levels to the sectioning units can be changed at any
- time, and etoc can thus be used in a quite general manner to create
- custom ''lists of'', additionally to the tables of contents related to
- the document sectioning units. No auxiliary file is used additionally
- 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:
-
-- if etoc.ins is present: etex etoc.ins (or tex etoc.ins)
-- without etoc.ins: etex etoc.dtx (or tex etoc.dtx)
-
-It is also possible to run latex or pdflatex directly on etoc.dtx.
-
-At least three ways to produce etoc.pdf (method (3) is preferred):
-
-(1) latex etoc.dtx (three times), then dvips, then ps2pdf
-
-(2) pdflatex etoc.dtx (three times)
-
-(3) latex etoc.tex (three times), then dvipdfmx
-
-Method (3) produces the smallest pdf files. Options can be set in
-etoc.tex: - scrdoc class options (paper size, font size, ...) - with or
-without source code, - with dvipdfmx or with latex+dvips or pdflatex.
-
-To produce etoc-DE.pdf (German documentation) run tex on etoc.ins or
-etoc.dtx to produce etoc-DE.tex, then compile etoc-DE.tex with latex
-(thrice) then dvipdmx, or set first to 0 in etoc-DE.tex to allow
-compilation with pdflatex.
-
-Um etoc-DE.pdf zu erzeugen ist latex dreimal mit etoc-DE.tex laufen zu
-lassen, dann dvipdfmx mit etoc-DE.dvi. Im Falle von Problemen mit
-dvipdfmx ist auf 0 in etoc-DE.tex zu setzen, dann 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
-
-The other files may be discarded.
-
-
-
-LICENSE
-
-
- This Work may be distributed and/or modified under the
- conditions of the LaTeX Project Public License, either
- version 1.3c of this license or (at your option) any later
- version. This version of this license is in
-
- http://www.latex-project.org/lppl/lppl-1-3c.txt
-
- and the latest version of this license is in
-
- http://www.latex-project.org/lppl.txt
-
- and version 1.3 or later is part of all distributions of
- LaTeX version 2005/12/01 or later.
-
-The Authors of this Work are:
-
-- Jean-Francois Burnol for the source code and English documentation,
- and
-- Christine Roemer and 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,
- etoc.pdf, etoc-DE.pdf, etoc.dvi, etoc-DE.dvi.
-
-
-
-RECENT CHANGES
-
-
-v1.08 [2015/03/10]
-
- \etocskipfirstprefix may now appear anywhere in the part of a level
- style.
-
- New commands \etociffirst, \etocxiffirst, \etocxifnumbered.
-
- It is now possible to issue line style specifications directly with &
- and \\ tokens, in order to typeset a TOC as a tabular or longtable
- with the opening for example in the first argument of \etocsettocstyle
- and the closing in its second argument.
-
- It is mandatory for such uses to issue \etocglobaldefs which tells
- etoc to proceed globally for certain definitions. This is also useful
- in the context of the inline environments of package enumitem.
-
- On this occasion, various old parts of the code have been improved.
-
-v1.07n [2015/03/05]
-
- No more use of \toks@ when etoc constructs \etocthelinkedname etc...
- Thus \toks@ can be put in the line styles in order to accumulate
- information. Only useful if it is certain nothing else will change
- \toks@ either.
-
- In the documentation: list of main commands now in alphabetic order.
-
-v1.07m [2015/01/23]
-
- Reading of .toc file is delayed to \begin{document} to account for
- possible Babel active characters used therein. Thanks to Denis Bitouzé
- who reported a Babel related problem.
-
- Improved global toc display emulation under KOMA-script classes.
-
- New command \etocbeforetitlehook. New command \etocdisplay.
-
-v1.07l [doc of 2014/04/29]
-
- Added to the documentation an example of use of \etocthelinkedname
- together with an enumitem inline itemize* environment; moved main TOC
- to immediately after the title, and license to the first pages.
-
- Incorporation of the translation into German done on the initiative of
- Christine Römer by Felix Baral-Weber, Jenny Rothkrämer-Vogt, Daniel
- Büttner, Claudia Dahl, Christian Otto and Christine Römer (FSU Jena).
- My grateful thanks to all!
-
diff --git a/Master/texmf-dist/doc/generic/etoc/README.md b/Master/texmf-dist/doc/generic/etoc/README.md
deleted file mode 100644
index d2d34b77857..00000000000
--- a/Master/texmf-dist/doc/generic/etoc/README.md
+++ /dev/null
@@ -1,188 +0,0 @@
-% README
-% etoc 1.08
-% 2015/03/10
-
- Source: etoc.dtx (v1.08 2015/03/10)
- Author: Jean-Francois Burnol
- Author for German tranlation: Christine Roemer
- Info: Completely customisable TOCs
- License: LPPL 1.3c or later
-
-Copyright (C) 2012-2015 Jean-Francois Burnol <jfbu at free dot fr>
-
-Copyright (C) 2014-2015 Christine Roemer <Christine_Roemer at t-online dot de>
- and collaborators for the translation into German of the documentation.
-
-ABSTRACT
-========
-
->
- The etoc package gives to the user complete control on how
- the entries of the table of contents should be constituted
- from the *name*, *number*, and *page number* of each
- sectioning unit. This goes via the definition of *line
- styles* for each sectioning level used in the document. The
- package provides its own custom line styles. Simpler ones
- are given as examples in the documentation. The simplest
- usage will be to take advantage of the layout facilities of
- packages dealing with list environments.
->
- Regarding the *global toc display*, etoc provides
- pre-defined styles based on a multi-column format, with,
- optionally, a ruled title or framed contents.
->
- The `\tableofcontents` command may be used arbitrarily many
- times and it has a variant `\localtableofcontents` which
- prints tables of contents 'local' to the current surrounding
- document unit. An extension of the `\label/\ref` syntax allows
- to reproduce (with another layout) a local table of contents
- defined somewhere else in the document.
->
- Via ''depth tags'', one gets an even finer control for each
- table of contents of which sectioning units it should, or
- not, display.
->
- The formatting inherited (and possibly customized by other
- packages) from the document class will be used when in
- compatibility mode.
->
- The assignment of levels to the sectioning units can be
- changed at any time, and etoc can thus be used in a quite
- general manner to create custom ''lists of'', additionally
- to the tables of contents related to the document sectioning
- units. No auxiliary file is used additionally 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:
-
- - if etoc.ins is present: etex etoc.ins (or tex etoc.ins)
- - without etoc.ins: etex etoc.dtx (or tex etoc.dtx)
-
-It is also possible to run latex or pdflatex directly on etoc.dtx.
-
-At least three ways to produce etoc.pdf (method (3) is preferred):
-
-(1) latex etoc.dtx (three times), then dvips, then ps2pdf
-
-(2) pdflatex etoc.dtx (three times)
-
-(3) latex etoc.tex (three times), then dvipdfmx
-
-Method (3) produces the smallest pdf files.
-Options can be set in etoc.tex:
- - scrdoc class options (paper size, font size, ...)
- - with or without source code,
- - with dvipdfmx or with latex+dvips or pdflatex.
-
-To produce etoc-DE.pdf (German documentation) run tex on etoc.ins
-or etoc.dtx to produce etoc-DE.tex, then compile etoc-DE.tex with
-latex (thrice) then dvipdmx, or set first to 0 \Withdvipdfmx in
-etoc-DE.tex to allow compilation with pdflatex.
-
-Um etoc-DE.pdf zu erzeugen ist latex dreimal mit etoc-DE.tex laufen
-zu lassen, dann dvipdfmx mit etoc-DE.dvi. Im Falle von Problemen
-mit dvipdfmx ist \Withdvidpdfmx auf 0 in etoc-DE.tex zu setzen,
-dann 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
-
-The other files may be discarded.
-
-LICENSE
-=======
-
->
- This Work may be distributed and/or modified under the
- conditions of the LaTeX Project Public License, either
- version 1.3c of this license or (at your option) any later
- version. This version of this license is in
-<http://www.latex-project.org/lppl/lppl-1-3c.txt>
->
- and the latest version of this license is in
-<http://www.latex-project.org/lppl.txt>
->
- and version 1.3 or later is part of all distributions of
- LaTeX version 2005/12/01 or later.
-
-The Authors of this Work are:
-
-- Jean-Francois Burnol <jfbu at free dot fr> for the source code and
- English documentation, and
-- Christine Roemer <Christine_Roemer at t-online dot de> and 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,
- etoc.pdf, etoc-DE.pdf, etoc.dvi, etoc-DE.dvi.
-
-RECENT CHANGES
-==============
-
-v1.08 [2015/03/10]
-
-> `\etocskipfirstprefix` may now appear anywhere in the <start>
- part of a level style.
-
-> New commands `\etociffirst`, `\etocxiffirst`, `\etocxifnumbered`.
-
-> It is now possible to issue line style specifications directly
- with `&` and `\\` tokens, in order to typeset a TOC as a tabular
- or longtable with the opening for example in the first
- argument of `\etocsettocstyle` and the closing in its second
- argument.
-
-> It is mandatory for such uses to issue `\etocglobaldefs` which
- tells etoc to proceed globally for certain definitions. This
- is also useful in the context of the inline environments of
- package enumitem.
-
-> On this occasion, various old parts of the code have been
- improved.
-
-v1.07n [2015/03/05]
-
-> No more use of `\toks@` when etoc constructs `\etocthelinkedname` etc...
- Thus `\toks@` can be put in the line styles in order to accumulate
- information. Only useful if it is certain nothing else will change
- `\toks@` either.
-
-> In the documentation: list of main commands now in alphabetic order.
-
-v1.07m [2015/01/23]
-
-> Reading of .toc file is delayed to `\begin{document}` to account for
- possible Babel active characters used therein. Thanks to Denis
- Bitouzé who reported a Babel related problem.
-
-> Improved global toc display emulation under KOMA-script classes.
-
-> New command `\etocbeforetitlehook`. New command `\etocdisplay`.
-
-v1.07l [doc of 2014/04/29]
-
-> Added to the documentation an example of use of `\etocthelinkedname`
- together with an enumitem inline itemize\* environment; moved main TOC
- to immediately after the title, and license to the first pages.
-
-> Incorporation of the translation into German done on the initiative
- of Christine Römer by Felix Baral-Weber, Jenny Rothkrämer-Vogt,
- Daniel Büttner, Claudia Dahl, Christian Otto and Christine Römer (FSU
- Jena). My grateful thanks to all!
-
diff --git a/Master/texmf-dist/doc/generic/etoc/etoc-DE.pdf b/Master/texmf-dist/doc/generic/etoc/etoc-DE.pdf
deleted file mode 100644
index 1eef29ff2c0..00000000000
--- a/Master/texmf-dist/doc/generic/etoc/etoc-DE.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/generic/etoc/etoc.pdf b/Master/texmf-dist/doc/generic/etoc/etoc.pdf
deleted file mode 100644
index 4bf8a133d19..00000000000
--- a/Master/texmf-dist/doc/generic/etoc/etoc.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/etoc/README b/Master/texmf-dist/doc/latex/etoc/README
new file mode 100644
index 00000000000..e30b103f3d0
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/README
@@ -0,0 +1,201 @@
+ Source: etoc.dtx (v1.08a 2015/03/13)
+ Author: Jean-Francois Burnol
+ Author for German tranlation: Christine Roemer
+ Info: Completely customisable TOCs
+ License: LPPL 1.3c or later
+
+Copyright (C) 2012-2015 Jean-Francois Burnol <jfbu at free dot fr>
+
+Copyright (C) 2014-2015 Christine Roemer
+<Christine_Roemer at t-online dot de> and collaborators for the
+translation into German of the documentation.
+
+
+
+ABSTRACT
+
+
+The etoc package gives to the user complete control on how the entries
+of the table of contents should be constituted from the _name_,
+_number_, and _page number_ of each sectioning unit. This goes via the
+definition of _line styles_ for each sectioning level used in the
+document. The package provides its own custom line styles. Simpler ones
+are given as examples in the documentation. The simplest usage will be
+to take advantage of the layout facilities of packages dealing with list
+environments.
+
+Regarding the _global toc display_, etoc provides pre-defined styles
+based on a multi-column format, with, optionally, a ruled title or
+framed contents.
+
+The \tableofcontents command may be used arbitrarily many times and it
+has a variant \localtableofcontents which prints tables of contents
+'local' to the current surrounding document unit. An extension of the
+\label/\ref syntax allows to reproduce (with another layout) a local
+table of contents defined somewhere else in the document.
+
+Via ''depth tags'', one gets an even finer control for each table of
+contents of which sectioning units it should, or not, display.
+
+The formatting inherited (and possibly customized by other packages)
+from the document class will be used when in compatibility mode.
+
+The assignment of levels to the sectioning units can be changed at any
+time, and etoc can thus be used in a quite general manner to create
+custom ''lists of'', additionally to the tables of contents related to
+the document sectioning units. No auxiliary file is used additionally 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:
+
+- if etoc.ins is present: etex etoc.ins (or tex etoc.ins)
+- without etoc.ins: etex etoc.dtx (or tex etoc.dtx)
+
+It is also possible to run latex or pdflatex directly on etoc.dtx.
+
+At least three ways to produce etoc.pdf (method (3) is preferred):
+
+(1) latex etoc.dtx (three times), then dvips, then ps2pdf
+
+(2) pdflatex etoc.dtx (three times)
+
+(3) latex etoc.tex (three times), then dvipdfmx
+
+Method (3) produces the smallest pdf files. Options can be set in
+etoc.tex:
+
+- scrdoc class options (paper size, font size, ...)
+- with or without source code,
+- with dvipdfmx or with latex+dvips or pdflatex.
+
+To produce etoc-DE.pdf (German documentation) run tex on etoc.ins or
+etoc.dtx to produce etoc-DE.tex, then compile etoc-DE.tex with latex
+(thrice) then dvipdmx, or set first to 0 \Withdvipdfmx in etoc-DE.tex to
+allow compilation with pdflatex.
+
+Um etoc-DE.pdf zu erzeugen ist latex dreimal mit etoc-DE.tex laufen zu
+lassen, dann dvipdfmx mit etoc-DE.dvi. Im Falle von Problemen mit
+dvipdfmx ist \Withdvidpdfmx auf 0 in etoc-DE.tex zu setzen, dann 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
+
+The other files may be discarded.
+
+
+
+LICENSE
+
+
+This Work may be distributed and/or modified under the conditions of the
+LaTeX Project Public License, either version 1.3c of this license or (at
+your option) any later version. This version of this license is in
+
+ http://www.latex-project.org/lppl/lppl-1-3c.txt
+
+and the latest version of this license is in
+
+ http://www.latex-project.org/lppl.txt
+
+and version 1.3 or later is part of all distributions of LaTeX version
+2005/12/01 or later.
+
+The Authors of this Work are:
+
+- Jean-Francois Burnol <jfbu at free dot fr> for the source code and
+ English documentation, and
+- Christine Roemer <Christine_Roemer at t-online dot de> and
+ 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, etoc.pdf, etoc-DE.pdf,
+etoc.dvi, etoc-DE.dvi.
+
+
+
+RECENT CHANGES
+
+
+v1.08a [2015/03/13]
+
+\etocname, \etocnumber and \etocpage are now the robust variants of
+\etocthelinkedname, \etocthelinkednumber and \etocthelinkedpage. This
+should arguably have been done since the addition of the latter to etoc
+with v1.07f [2013/03/07]. The earlier \etocname etc... contained the
+hyperlink destination only in an unexpanded form.
+
+The documentation has a brand new title page and a new section _The TOC
+as a TikZ mind map_ both illustrating further uses of etoc to display
+tables of contents as trees in an automatic manner.
+
+
+v1.08 [2015/03/10]
+
+\etocskipfirstprefix may now appear anywhere in the <start> part of a
+level style.
+
+New commands \etociffirst, \etocxiffirst, \etocxifnumbered.
+
+It is now possible to issue line style specifications directly with &
+and \\ tokens, in order to typeset a TOC as a tabular or longtable with
+the opening for example in the first argument of \etocsettocstyle and
+the closing in its second argument.
+
+It is mandatory for such uses to issue \etocglobaldefs which tells etoc
+to proceed globally for certain definitions. This is also useful in the
+context of the inline environments of package enumitem.
+
+On this occasion, various old parts of the code have been improved.
+
+
+v1.07n [2015/03/05]
+
+No more use of \toks@ when etoc constructs \etocthelinkedname etc...
+Thus \toks@ can be put in the line styles in order to accumulate
+information. Only useful if it is certain nothing else will change
+\toks@ either.
+
+In the documentation: list of main commands now in alphabetic order.
+
+
+v1.07m [2015/01/23]
+
+Reading of .toc file is delayed to \begin{document} to account for
+possible Babel active characters used therein. Thanks to Denis Bitouzé
+who reported a Babel related problem.
+
+Improved global toc display emulation under KOMA-script classes.
+
+New command \etocbeforetitlehook. New command \etocdisplay.
+
+
+v1.07l [doc of 2014/04/29]
+
+Added to the documentation an example of use of \etocthelinkedname
+together with an enumitem inline itemize* environment; moved main TOC to
+immediately after the title, and license to the first pages.
+
+Incorporation of the translation into German done on the initiative of
+Christine Römer by Felix Baral-Weber, Jenny Rothkrämer-Vogt, Daniel
+Büttner, Claudia Dahl, Christian Otto and Christine Römer (FSU Jena). My
+grateful thanks to all!
+
diff --git a/Master/texmf-dist/doc/latex/etoc/README.md b/Master/texmf-dist/doc/latex/etoc/README.md
new file mode 100644
index 00000000000..7100fcaa401
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/README.md
@@ -0,0 +1,195 @@
+<!-- -->
+
+ Source: etoc.dtx (v1.08a 2015/03/13)
+ Author: Jean-Francois Burnol
+ Author for German tranlation: Christine Roemer
+ Info: Completely customisable TOCs
+ License: LPPL 1.3c or later
+
+Copyright (C) 2012-2015 Jean-Francois Burnol `<jfbu at free dot fr>`
+
+Copyright (C) 2014-2015 Christine Roemer `<Christine_Roemer at t-online dot de>`
+and collaborators for the translation into German of the documentation.
+
+ABSTRACT
+========
+
+The etoc package gives to the user complete control on how the entries
+of the table of contents should be constituted from the *name*,
+*number*, and *page number* of each sectioning unit. This goes via the
+definition of *line styles* for each sectioning level used in the
+document. The package provides its own custom line styles. Simpler
+ones are given as examples in the documentation. The simplest usage
+will be to take advantage of the layout facilities of packages dealing
+with list environments.
+
+Regarding the *global toc display*, etoc provides pre-defined styles
+based on a multi-column format, with, optionally, a ruled title or
+framed contents.
+
+The `\tableofcontents` command may be used arbitrarily many times and
+it has a variant `\localtableofcontents` which prints tables of
+contents 'local' to the current surrounding document unit. An
+extension of the `\label/\ref` syntax allows to reproduce (with
+another layout) a local table of contents defined somewhere else in
+the document.
+
+Via ''depth tags'', one gets an even finer control for each table of
+contents of which sectioning units it should, or not, display.
+
+The formatting inherited (and possibly customized by other packages)
+from the document class will be used when in compatibility mode.
+
+The assignment of levels to the sectioning units can be changed at any
+time, and etoc can thus be used in a quite general manner to create
+custom ''lists of'', additionally to the tables of contents related to
+the document sectioning units. No auxiliary file is used additionally
+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:
+
+- if etoc.ins is present: etex etoc.ins (or tex etoc.ins)
+- without etoc.ins: etex etoc.dtx (or tex etoc.dtx)
+
+It is also possible to run latex or pdflatex directly on etoc.dtx.
+
+At least three ways to produce etoc.pdf (method (3) is preferred):
+
+(1) latex etoc.dtx (three times), then dvips, then ps2pdf
+
+(2) pdflatex etoc.dtx (three times)
+
+(3) latex etoc.tex (three times), then dvipdfmx
+
+Method (3) produces the smallest pdf files.
+Options can be set in etoc.tex:
+
+- scrdoc class options (paper size, font size, ...)
+- with or without source code,
+- with dvipdfmx or with latex+dvips or pdflatex.
+
+To produce etoc-DE.pdf (German documentation) run tex on etoc.ins
+or etoc.dtx to produce etoc-DE.tex, then compile etoc-DE.tex with
+latex (thrice) then dvipdmx, or set first to 0 `\Withdvipdfmx` in
+etoc-DE.tex to allow compilation with pdflatex.
+
+Um etoc-DE.pdf zu erzeugen ist latex dreimal mit etoc-DE.tex laufen
+zu lassen, dann dvipdfmx mit etoc-DE.dvi. Im Falle von Problemen
+mit dvipdfmx ist `\Withdvidpdfmx` auf 0 in etoc-DE.tex zu setzen,
+dann 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
+
+The other files may be discarded.
+
+LICENSE
+=======
+
+This Work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3c of this license or (at your option) any later
+version. This version of this license is in
+
+> <http://www.latex-project.org/lppl/lppl-1-3c.txt>
+
+and the latest version of this license is in
+
+> <http://www.latex-project.org/lppl.txt>
+
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+The Authors of this Work are:
+
+- Jean-Francois Burnol `<jfbu at free dot fr>` for the source code and
+ English documentation, and
+- Christine Roemer `<Christine_Roemer at t-online dot de>` and 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,
+etoc.pdf, etoc-DE.pdf, etoc.dvi, etoc-DE.dvi.
+
+RECENT CHANGES
+==============
+
+v1.08a [2015/03/13]
+-------------------
+
+`\etocname`, `\etocnumber` and `\etocpage` are now the robust variants of
+`\etocthelinkedname`, `\etocthelinkednumber` and `\etocthelinkedpage`.
+This should arguably have been done since the addition of the latter to
+etoc with v1.07f [2013/03/07]. The earlier `\etocname` etc... contained
+the hyperlink destination only in an unexpanded form.
+
+The documentation has a brand new title page and a new section *The TOC as
+a TikZ mind map* both illustrating further uses of etoc to display tables
+of contents as trees in an automatic manner.
+
+v1.08 [2015/03/10]
+------------------
+
+`\etocskipfirstprefix` may now appear anywhere in the `<start>`
+part of a level style.
+
+New commands `\etociffirst`, `\etocxiffirst`, `\etocxifnumbered`.
+
+It is now possible to issue line style specifications directly with
+`&` and `\\` tokens, in order to typeset a TOC as a tabular or
+longtable with the opening for example in the first argument of
+`\etocsettocstyle` and the closing in its second argument.
+
+It is mandatory for such uses to issue `\etocglobaldefs` which tells
+etoc to proceed globally for certain definitions. This is also useful
+in the context of the inline environments of package enumitem.
+
+On this occasion, various old parts of the code have been improved.
+
+v1.07n [2015/03/05]
+-------------------
+
+No more use of `\toks@` when etoc constructs `\etocthelinkedname`
+etc... Thus `\toks@` can be put in the line styles in order to
+accumulate information. Only useful if it is certain nothing else
+will change `\toks@` either.
+
+In the documentation: list of main commands now in alphabetic order.
+
+v1.07m [2015/01/23]
+-------------------
+
+Reading of .toc file is delayed to `\begin{document}` to account for
+possible Babel active characters used therein. Thanks to Denis
+Bitouzé who reported a Babel related problem.
+
+Improved global toc display emulation under KOMA-script classes.
+
+New command `\etocbeforetitlehook`. New command `\etocdisplay`.
+
+v1.07l [doc of 2014/04/29]
+--------------------------
+
+Added to the documentation an example of use of `\etocthelinkedname`
+together with an enumitem inline itemize\* environment; moved main
+TOC to immediately after the title, and license to the first pages.
+
+Incorporation of the translation into German done on the initiative
+of Christine Römer by Felix Baral-Weber, Jenny Rothkrämer-Vogt,
+Daniel Büttner, Claudia Dahl, Christian Otto and Christine Römer (FSU
+Jena). My grateful thanks to all!
diff --git a/Master/texmf-dist/doc/latex/etoc/etoc-DE.pdf b/Master/texmf-dist/doc/latex/etoc/etoc-DE.pdf
new file mode 100644
index 00000000000..ea01b0fde7a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etoc-DE.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/etoc/etoc.pdf b/Master/texmf-dist/doc/latex/etoc/etoc.pdf
new file mode 100644
index 00000000000..f01cc06728b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/etoc/etoc.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/generic/etoc/etoc.dtx b/Master/texmf-dist/source/latex/etoc/etoc.dtx
index 12bb38b9730..8e9676b4e52 100644
--- a/Master/texmf-dist/source/generic/etoc/etoc.dtx
+++ b/Master/texmf-dist/source/latex/etoc/etoc.dtx
@@ -1,13 +1,13 @@
% -*- coding: utf-8; -*-
%<*none>
-{\def\doctimestamp {Time-stamp: <10-03-2015 22:45:02 CET>}%
+{\def\doctimestamp {Time-stamp: <13-03-2015 23:06:42 CET>}%
\def\getdtxtimestamp #1 <#2 #3 #4>{#2 at #3 #4}%
\xdef\etocdtxtimestamp {\expandafter\getdtxtimestamp\doctimestamp }}%
%</none>
%<*!readme>
%%
%% Package: etoc
-%% Version: 1.08 (2015/03/10)
+%% Version: 1.08a (2015/03/13)
%% License: LPPL 1.3c or later (see etoc.dtx)
%% Copyright (C) 2012-2015 Jean-Francois Burnol <jfbu at free dot fr>
%% Copyright (C) 2014-2015 Christine Roemer <Christine_Roemer at t-online dot de>
@@ -15,9 +15,9 @@
%%
%</!readme>
%<*insfile>
-\def\etocpkgdate {2015/03/10}
-\def\etocdocdate {2015/03/10}
-\def\etocpkgversion {v1.08}
+\def\etocpkgdate {2015/03/13}
+\def\etocdocdate {2015/03/13}
+\def\etocpkgversion {v1.08a}
\def\etocpkgdescription {Completely customisable TOCs (jfB)}
%</insfile>
%<*none>
@@ -34,7 +34,7 @@
\catcode32=13\catcode`\\=12^^Brelax^^A
^^Bfirstofone{^^Bendgroup^^Bdef^^BetocLicense^^A
{% Package: etoc
-% Version: 1.08 (2015/03/10)
+% Version: 1.08a (2015/03/13)
% License: LPPL 1.3c or later
% Copyright (C) 2012-2015 Jean-Francois Burnol <jfbu at free dot fr>
% Copyright (C) 2014-2015 Christine Roemer <Christine_Roemer at t-online dot de>
@@ -67,63 +67,54 @@
}}%
\iffalse
%</none>
-%<readme>% README
-%<readme>% etoc 1.08
-%<readme>% 2015/03/10
%<*readme>
+<!-- -->
- Source: etoc.dtx (v1.08 2015/03/10)
+ Source: etoc.dtx (v1.08a 2015/03/13)
Author: Jean-Francois Burnol
Author for German tranlation: Christine Roemer
Info: Completely customisable TOCs
License: LPPL 1.3c or later
-Copyright (C) 2012-2015 Jean-Francois Burnol <jfbu at free dot fr>
-
-Copyright (C) 2014-2015 Christine Roemer <Christine_Roemer at t-online dot de>
- and collaborators for the translation into German of the documentation.
+Copyright (C) 2012-2015 Jean-Francois Burnol `<jfbu at free dot fr>`
+Copyright (C) 2014-2015 Christine Roemer `<Christine_Roemer at t-online dot de>`
+and collaborators for the translation into German of the documentation.
ABSTRACT
========
->
- The etoc package gives to the user complete control on how
- the entries of the table of contents should be constituted
- from the *name*, *number*, and *page number* of each
- sectioning unit. This goes via the definition of *line
- styles* for each sectioning level used in the document. The
- package provides its own custom line styles. Simpler ones
- are given as examples in the documentation. The simplest
- usage will be to take advantage of the layout facilities of
- packages dealing with list environments.
->
- Regarding the *global toc display*, etoc provides
- pre-defined styles based on a multi-column format, with,
- optionally, a ruled title or framed contents.
->
- The `\tableofcontents` command may be used arbitrarily many
- times and it has a variant `\localtableofcontents` which
- prints tables of contents 'local' to the current surrounding
- document unit. An extension of the `\label/\ref` syntax allows
- to reproduce (with another layout) a local table of contents
- defined somewhere else in the document.
->
- Via ''depth tags'', one gets an even finer control for each
- table of contents of which sectioning units it should, or
- not, display.
->
- The formatting inherited (and possibly customized by other
- packages) from the document class will be used when in
- compatibility mode.
->
- The assignment of levels to the sectioning units can be
- changed at any time, and etoc can thus be used in a quite
- general manner to create custom ''lists of'', additionally
- to the tables of contents related to the document sectioning
- units. No auxiliary file is used additionally to the
- standard .toc file.
-
+The etoc package gives to the user complete control on how the entries
+of the table of contents should be constituted from the *name*,
+*number*, and *page number* of each sectioning unit. This goes via the
+definition of *line styles* for each sectioning level used in the
+document. The package provides its own custom line styles. Simpler
+ones are given as examples in the documentation. The simplest usage
+will be to take advantage of the layout facilities of packages dealing
+with list environments.
+
+Regarding the *global toc display*, etoc provides pre-defined styles
+based on a multi-column format, with, optionally, a ruled title or
+framed contents.
+
+The `\tableofcontents` command may be used arbitrarily many times and
+it has a variant `\localtableofcontents` which prints tables of
+contents 'local' to the current surrounding document unit. An
+extension of the `\label/\ref` syntax allows to reproduce (with
+another layout) a local table of contents defined somewhere else in
+the document.
+
+Via ''depth tags'', one gets an even finer control for each table of
+contents of which sectioning units it should, or not, display.
+
+The formatting inherited (and possibly customized by other packages)
+from the document class will be used when in compatibility mode.
+
+The assignment of levels to the sectioning units can be changed at any
+time, and etoc can thus be used in a quite general manner to create
+custom ''lists of'', additionally to the tables of contents related to
+the document sectioning units. No auxiliary file is used additionally
+to the standard .toc file.
INSTALLATION
============
@@ -132,13 +123,13 @@ 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
+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 (or tex etoc.ins)
- - without etoc.ins: etex etoc.dtx (or tex etoc.dtx)
+- if etoc.ins is present: etex etoc.ins (or tex etoc.ins)
+- without etoc.ins: etex etoc.dtx (or tex etoc.dtx)
It is also possible to run latex or pdflatex directly on etoc.dtx.
@@ -152,21 +143,22 @@ At least three ways to produce etoc.pdf (method (3) is preferred):
Method (3) produces the smallest pdf files.
Options can be set in etoc.tex:
- - scrdoc class options (paper size, font size, ...)
- - with or without source code,
- - with dvipdfmx or with latex+dvips or pdflatex.
+
+- scrdoc class options (paper size, font size, ...)
+- with or without source code,
+- with dvipdfmx or with latex+dvips or pdflatex.
To produce etoc-DE.pdf (German documentation) run tex on etoc.ins
or etoc.dtx to produce etoc-DE.tex, then compile etoc-DE.tex with
-latex (thrice) then dvipdmx, or set first to 0 \Withdvipdfmx in
+latex (thrice) then dvipdmx, or set first to 0 `\Withdvipdfmx` in
etoc-DE.tex to allow compilation with pdflatex.
Um etoc-DE.pdf zu erzeugen ist latex dreimal mit etoc-DE.tex laufen
zu lassen, dann dvipdfmx mit etoc-DE.dvi. Im Falle von Problemen
-mit dvipdfmx ist \Withdvidpdfmx auf 0 in etoc-DE.tex zu setzen,
+mit dvipdfmx ist `\Withdvidpdfmx` auf 0 in etoc-DE.tex zu setzen,
dann ist pdflatex dreimal mit etoc-DE.tex laufen zu lassen.
-Installation:
+Installation:
etoc.sty -> TDS:tex/latex/etoc/etoc.sty
etoc.dtx -> TDS:source/latex/etoc/etoc.dtx
@@ -179,85 +171,98 @@ The other files may be discarded.
LICENSE
=======
->
- This Work may be distributed and/or modified under the
- conditions of the LaTeX Project Public License, either
- version 1.3c of this license or (at your option) any later
- version. This version of this license is in
-<http://www.latex-project.org/lppl/lppl-1-3c.txt>
->
- and the latest version of this license is in
-<http://www.latex-project.org/lppl.txt>
->
- and version 1.3 or later is part of all distributions of
- LaTeX version 2005/12/01 or later.
+This Work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3c of this license or (at your option) any later
+version. This version of this license is in
+
+> <http://www.latex-project.org/lppl/lppl-1-3c.txt>
+
+and the latest version of this license is in
+
+> <http://www.latex-project.org/lppl.txt>
+
+and version 1.3 or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
The Authors of this Work are:
-- Jean-Francois Burnol <jfbu at free dot fr> for the source code and
- English documentation, and
-- Christine Roemer <Christine_Roemer at t-online dot de> and collaborators
- for the translation into German of the documentation.
+- Jean-Francois Burnol `<jfbu at free dot fr>` for the source code and
+ English documentation, and
+- Christine Roemer `<Christine_Roemer at t-online dot de>` and 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,
- etoc.pdf, etoc-DE.pdf, etoc.dvi, etoc-DE.dvi.
+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, etoc.dvi, etoc-DE.dvi.
RECENT CHANGES
==============
+v1.08a [2015/03/13]
+-------------------
+
+`\etocname`, `\etocnumber` and `\etocpage` are now the robust variants of
+`\etocthelinkedname`, `\etocthelinkednumber` and `\etocthelinkedpage`.
+This should arguably have been done since the addition of the latter to
+etoc with v1.07f [2013/03/07]. The earlier `\etocname` etc... contained
+the hyperlink destination only in an unexpanded form.
+
+The documentation has a brand new title page and a new section *The TOC as
+a TikZ mind map* both illustrating further uses of etoc to display tables
+of contents as trees in an automatic manner.
+
v1.08 [2015/03/10]
+------------------
-> `\etocskipfirstprefix` may now appear anywhere in the <start>
- part of a level style.
+`\etocskipfirstprefix` may now appear anywhere in the `<start>`
+part of a level style.
-> New commands `\etociffirst`, `\etocxiffirst`, `\etocxifnumbered`.
+New commands `\etociffirst`, `\etocxiffirst`, `\etocxifnumbered`.
-> It is now possible to issue line style specifications directly
- with `&` and `\\` tokens, in order to typeset a TOC as a tabular
- or longtable with the opening for example in the first
- argument of `\etocsettocstyle` and the closing in its second
- argument.
+It is now possible to issue line style specifications directly with
+`&` and `\\` tokens, in order to typeset a TOC as a tabular or
+longtable with the opening for example in the first argument of
+`\etocsettocstyle` and the closing in its second argument.
-> It is mandatory for such uses to issue `\etocglobaldefs` which
- tells etoc to proceed globally for certain definitions. This
- is also useful in the context of the inline environments of
- package enumitem.
+It is mandatory for such uses to issue `\etocglobaldefs` which tells
+etoc to proceed globally for certain definitions. This is also useful
+in the context of the inline environments of package enumitem.
-> On this occasion, various old parts of the code have been
- improved.
+On this occasion, various old parts of the code have been improved.
v1.07n [2015/03/05]
+-------------------
-> No more use of `\toks@` when etoc constructs `\etocthelinkedname` etc...
- Thus `\toks@` can be put in the line styles in order to accumulate
- information. Only useful if it is certain nothing else will change
- `\toks@` either.
+No more use of `\toks@` when etoc constructs `\etocthelinkedname`
+etc... Thus `\toks@` can be put in the line styles in order to
+accumulate information. Only useful if it is certain nothing else
+will change `\toks@` either.
-> In the documentation: list of main commands now in alphabetic order.
+In the documentation: list of main commands now in alphabetic order.
v1.07m [2015/01/23]
+-------------------
-> Reading of .toc file is delayed to `\begin{document}` to account for
- possible Babel active characters used therein. Thanks to Denis
- Bitouzé who reported a Babel related problem.
+Reading of .toc file is delayed to `\begin{document}` to account for
+possible Babel active characters used therein. Thanks to Denis
+Bitouzé who reported a Babel related problem.
-> Improved global toc display emulation under KOMA-script classes.
+Improved global toc display emulation under KOMA-script classes.
-> New command `\etocbeforetitlehook`. New command `\etocdisplay`.
+New command `\etocbeforetitlehook`. New command `\etocdisplay`.
v1.07l [doc of 2014/04/29]
+--------------------------
-> Added to the documentation an example of use of `\etocthelinkedname`
- together with an enumitem inline itemize\* environment; moved main TOC
- to immediately after the title, and license to the first pages.
-
-> Incorporation of the translation into German done on the initiative
- of Christine Römer by Felix Baral-Weber, Jenny Rothkrämer-Vogt,
- Daniel Büttner, Claudia Dahl, Christian Otto and Christine Römer (FSU
- Jena). My grateful thanks to all!
+Added to the documentation an example of use of `\etocthelinkedname`
+together with an enumitem inline itemize\* environment; moved main
+TOC to immediately after the title, and license to the first pages.
+Incorporation of the translation into German done on the initiative
+of Christine Römer by Felix Baral-Weber, Jenny Rothkrämer-Vogt,
+Daniel Büttner, Claudia Dahl, Christian Otto and Christine Römer (FSU
+Jena). My grateful thanks to all!
%</readme>
%<*tex>-------------------------------------------------------------------------
%% run latex thrice on this file etoc.tex then dvipdfmx on etoc.dvi
@@ -463,6 +468,7 @@ v1.07l [doc of 2014/04/29]
\usepackage[utf8]{inputenc}
\usepackage[hscale=0.66,vscale=0.75]{geometry}
\pagestyle{headings}
+% \usepackage{layout}
% January 2014. work-around a bug in KOMA 3.12 (December 2013):
\makeatletter
@@ -671,7 +677,9 @@ v1.07l [doc of 2014/04/29]
% 9 octobre 2013, je me décide à ne plus utiliser hidelinks, mais il est tout de
% même ajouté au .toc
-% 18 mai 2014: pdfinfo différent suivant anglais ou allemand
+\usetikzlibrary{mindmap} % 2015/03/12, see http://tex.stackexchange.com/a/232584/4686
+
+%18 mai 2014: pdfinfo différent suivant anglais ou allemand
\ifnum\ForEnglish=1
\usepackage[pdfencoding=pdfdoc]{hyperref}
\hypersetup{%
@@ -872,7 +880,6 @@ pdfpagemode=UseOutlines}
\endgroup
}
-
\newcommand\etoc{%
\texorpdfstring{{\color{joli}\ttfamily\bfseries etoc}}{etoc}\xspace}
@@ -1003,7 +1010,51 @@ etoc-framed-mp-hook}
\renewcommand*{\etocabbrevpagename}{S.~}
\fi
-\begin{document}\rmfamily
+
+% pour les TOC à la TikZ
+\newtoks\treetok
+\newtoks\parttok
+\newtoks\sectiontok
+\newtoks\subsectiontok
+\newtoks\tmptok
+\newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
+ #1\expandafter\expandafter\expandafter
+ {\expandafter\the\expandafter #1#2}}
+
+% pour les Mindmap
+\def\appendpart #1#2#3{%
+ \edef\tmpstuff {\the#1 child [branch color = #3]{\the#2}}%
+ #1\expandafter {\tmpstuff }%
+}
+
+
+% Vendredi 13 mars 2015 à 18:10:40
+% POUR LA TOC DE TITLE PAGE
+\newcount\tikznumberofcurrentgrandchild
+
+\def\tikzmycustomgrowth {%
+ \pgftransformreset
+ \ifnum\tikztreelevel=1
+ \pgftransformrotate {(\pgfkeysvalueof{/tikz/sibling angle})*(\tikznumberofcurrentchild-1)}%
+ \fi
+ \ifnum\tikztreelevel=2
+ \pgftransformrotate {(\pgfkeysvalueof{/tikz/sibling angle})*(\tikznumberofcurrentgrandchild-4)}%
+ \global\advance\tikznumberofcurrentgrandchild by 1
+ \fi
+ \pgftransformxshift {\the\tikzleveldistance}%
+}
+
+\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}
+%\newwrite\TOCasTree
+\newbox\TitlePageMindmapTOC
+
+\usepackage{eso-pic}
+\usepackage{picture}
+
+\begin{document}%\layout
+\rmfamily
\thispagestyle{empty}
%-------------------------------------------------------------------------------
@@ -1018,17 +1069,92 @@ etoc-framed-mp-hook}
% START ENGLISH VERSION
\bookmark[named=FirstPage,level=1]{Title page}
-\begin{center}
- {\normalfont\Large The \etoc package}\\
- \textsc{Jean-François Burnol}\par
- \footnotesize \ttfamily jfbu (at) free (dot) fr\\
- Package version: \etocpkgversion\ (\etocpkgdate)
- \let\thefootnote\empty
- \footnote{Documentation (\etocdocdate) generated from the source file
- with timestamp ``\etocdtxtimestamp''.}\par
-\end{center}
+\begingroup
+
+\etocsetstyle{part}
+ {\etocskipfirstprefix}
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendpart\treetok\parttok {teal!60}% first
+ \or \appendpart\treetok\parttok {yellow!80}% second
+ \else\appendpart\treetok\parttok {green!50}% third and next ...
+ \fi
+ }
+ {\stepcounter{partco}%
+ \edef\treenode{node
+ {\unexpanded\expandafter{\etocthelinkednumber}.
+ \unexpanded\expandafter{\etocthelinkedname}}}%
+% grosse astuce: la première Partie ne sera pas embêtée par les trois sections
+% avant car ce qu'elles auront mis dans \parttok va être effacé.
+ \parttok\expandafter{\treenode}}
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendpart\treetok\parttok {teal!60}% first
+ \or \appendpart\treetok\parttok {yellow!80}% second
+ \else\appendpart\treetok\parttok {green!50}% third and next ...
+ \fi
+ }
+
+\etocsetstyle{section}
+ {}
+ {}
+ {% define the section node
+ \edef\childnode{child {node {\unexpanded\expandafter{\etocthelinkednumber}
+ \unexpanded\expandafter{\etocthelinkedname}}}}%
+ \appendtotok\parttok\childnode }
+ {}
+
+\etocsetnexttocdepth{section}
+\etocsettocstyle
+ {\setcounter{partco}{0}%
+ \treetok{\node [root concept]{\normalfont{The \etoc package}\par {\normalsize\textsc
+ {Jean-François Burnol}\par \ttfamily jfbu (at) free (dot) fr}\par
+ {\normalsize Package
+ version:\par \etocpkgversion{} (\etocpkgdate )\par}}}}
+ {\global\appendtotok\treetok{ ;}}
+
+\etocinline\tableofcontents\label{toc:mindmaptitlepage}
+
+% \immediate\openout\TOCasTree=\jobname.toctree
+% \immediate\write\TOCasTree{\the\treetok}%
+
+\tikzset{
+ branch color/.style={
+ concept color=#1!white,
+ every child/.append style={concept color=#1!white!30!white},
+ }
+}%
+
+\global\setbox\TitlePageMindmapTOC\hbox{%
+\resizebox{.9\paperwidth}{!}{%
+\begin{tikzpicture}[mindmap,
+ text width=2cm,
+ align = flush center,
+ growth function=\tikzmycustomgrowth,
+ 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/8},% 8 hard-coded mais je pourrais aussi le calculer
+ level 1 concept/.append style={font=\Large, text width = 3cm},
+ level 2/.append style={level distance=12.5cm, sibling angle=360/35},% 35 hard coded mais je pourrais aussi le calculer
+ % distance par rapport au CENTRE ! (avec le code tel qu'en ce moment)
+ ]
+\the\treetok
+\end{tikzpicture}}}
+\endgroup
+
+\indent\null
+\begingroup
+ \let\thefootnote\empty
+ \footnote{Documentation (\etocdocdate) generated from the source file
+ with timestamp ``\etocdtxtimestamp''.}
+\endgroup
\setcounter{footnote}{0}
+\AddToShipoutPictureFG*{%
+ \put(10.5cm,16.85cm)
+ {\makebox(0,0){\box\TitlePageMindmapTOC}}}
+
+\clearpage
+
\etocdepthtag.toc {preamble}
%----
@@ -2773,11 +2899,9 @@ to maintain the correct |hyperref| hyperlinks.\footnote{This manual up to the
version of May 14, 2013 used package |tikz-qtree| but there were problems with
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
-hyperlink information put by \etoc inside \csa{etocname}, etc\dots, is just a
-pointer, not storable for later use; but the package provides
+commands \csa{etocname}, etc\dots, are robust, it is easier to work with
\csa{etocthelinkednumber}, \csa{etocthelinkedname}, and \csa{etocthelinkedpage}
-whose contents contain the hyperlink in a form which can be stored and later
-reused.
+which contain the same information in an easier accessible form.
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
@@ -2789,13 +2913,6 @@ a problem, but can be suppressed if need be via the command \csb{etocinline} or
its synonym \csb{etocnopar}.} This is the later job of a |forest| environment
which will be given the contents of |\treetok|.
-\newtoks\treetok
-\newtoks\tmptok
-
-\newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
- #1\expandafter\expandafter\expandafter
- {\expandafter\the\expandafter #1#2}}
-
% 7 mars: j'utilise \etocthelinkedname défini à partir de 1.07f
% mais bien sûr je sais que ça ne marche pas (sauf dans l'arbre pour le lien de
@@ -2963,7 +3080,7 @@ typesetting:
\end{itemize}
-\section{The TOC as a molecule}\label{ssec:molecule}
+\section{The TOC as a molecule}\label{sec:molecule}
It is also possible to construct a TOC tree obeying the TikZ
syntax for trees: but this is a more complicated task for the
@@ -3014,8 +3131,8 @@ contents of this (or another) document part, only a \csa{sectiontok} and a
% \tableofcontents \label{toc:molecule} \ref{toc:overview}
\end{verbatim}
-\newtoks\sectiontok
-\newtoks\subsectiontok
+% \newtoks\sectiontok
+% \newtoks\subsectiontok
\newcommand*\treenode {}
\newcommand*{\appendchildtree}[2]{% token list t1 becomes: t1 child {t2}
@@ -3065,7 +3182,6 @@ contents of this (or another) document part, only a \csa{sectiontok} and a
% Pour que \pageref fonctionne correctement, je dois mettre
% le \tableofcontents dans la figure.
-
The |\tableofcontents| command appears just above the
|tikzpicture| environment in a figure float (for the label of the
table of contents to certainly
@@ -3091,13 +3207,10 @@ producing it:
\end{figure}
\end{verbatim}
-
-
This \hyperref[toc:molecule]{TikZ TOC} is fully hyperlinked, like the
previous
\hyperref[toc:forest]{Forest TOC}.
-
\etocsettocstyle
{\treetok{\node {\autoref{part:globalcmds}}}}
{\global\appendtotok\treetok{ ;}}
@@ -3141,6 +3254,266 @@ previous
\end{verbatim}
\end{minipage}
+\section{The TOC as a TikZ mind map}
+\label{sec:mindmap}
+
+This is in the same spirit as the ``molecule'' example. The use of the \eTeX{}
+primitive \csa{unexpanded} will simplify the code.\footnote{The ``molecule''
+example was added to this documentation on |2013/03/03|. The ``mindmap''
+example was motivated on |2015/03/11| by
+\url{http://tex.stackexchange.com/a/232584/4686}. Further help was then obtained via
+\url{http://tex.stackexchange.com/q/232816/4686} and this led to the
+\hyperref[toc:mindmaptitlepage]{title page} which is a further example.}
+
+
+\begingroup
+%\newtoks\treetok
+%\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}}
+
+\renewcommand*{\appendchildtree}[3]{%
+% this is to construct "t1 child [branch color= #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 [branch color = #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.
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendchildtree\treetok\parttok {teal!60}% first
+ \or \appendchildtree\treetok\parttok {yellow!80}% second
+ \else\appendchildtree\treetok\parttok {green!50}% third and next ...
+ \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 {teal!60}% first
+ \or \appendchildtree\treetok\parttok {yellow!80}% second
+ \else\appendchildtree\treetok\parttok {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} {section}
+\etocsettagdepth {arbitrarily}{part}
+\etocsettagdepth {surprising} {section}
+\etocsettagdepth {linestyles} {part}
+\etocsettagdepth {globalcmds} {section}
+\etocsettagdepth {custom} {section}
+\etocsettagdepth {tips} {section}
+\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}[th!]
+\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=45, text width=3cm},
+ level 2/.append style={level distance=8cm,sibling angle=25, text width=3cm},
+ level 1 concept/.append style={font=\normalsize},
+ ]
+\the\treetok
+\end{tikzpicture}}}
+\end{figure}
+\endgroup
+
+It is difficult to get everything to fit on one page. However \csa{resizebox}
+comes to the rescue. And it preserves hyperlinks. Nevertheless for this
+example I excluded some sections from the display, using the technique of the
+\etoc \hyperref[etocdepthtag.toc]{depth tags}. The fully hyperlinked TOC
+appears \vpageref{toc:mindmap}.
+
+\begin{verbatim}
+\begingroup
+\newtoks\treetok
+\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}}
+
+\renewcommand*{\appendchildtree}[3]{%
+% this is to construct "t1 child [branch color= #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 [branch color = #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.
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendchildtree\treetok\parttok {teal!60}% first
+ \or \appendchildtree\treetok\parttok {yellow!80}% second
+ \else\appendchildtree\treetok\parttok {green!50}% third and next ...
+ \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 {teal!60}% first
+ \or \appendchildtree\treetok\parttok {yellow!80}% second
+ \else\appendchildtree\treetok\parttok {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} {section}
+\etocsettagdepth {arbitrarily}{part}
+\etocsettagdepth {surprising} {section}
+\etocsettagdepth {linestyles} {part}
+\etocsettagdepth {globalcmds} {section}
+\etocsettagdepth {custom} {section}
+\etocsettagdepth {tips} {section}
+\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}[th!]
+\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=45, text width=3cm},
+ level 2/.append style={level distance=8cm,sibling angle=25, text width=3cm},
+ level 1 concept/.append style={font=\normalsize},
+ ]
+\the\treetok
+\end{tikzpicture}}}
+\end{figure}
+\endgroup
+\end{verbatim}
+
+An interesting alternative is to use \etoc rather to convert the entire TOC
+into a TikZ tree (perhaps excluding some parts) and print it out to a file
+from which it can be recovered and manipulated directly by the author of the
+document. Things written to the |.log| file get broken into lines. Here is a
+technique to get non-broken output. Once the \csa{treetok} has been computed
+by \etoc (as in the \hyperref[toc:molecule]{molecule} example, or the current
+example), this code snippet will write it out to file with extension
+|.toctree|:
+\begin{verbatim}
+ \newwrite\TOCasTree
+ \immediate\openout\TOCasTree=\jobname.toctree
+ \immediate\write\TOCasTree{\the\treetok}%
+\end{verbatim}
+The author can then copy it from there and customize it manually to get a
+suitable tikz picture.
+
\section{The TOC as a table}
\label{sec:tocastable}
@@ -3155,11 +3528,6 @@ conditions and a few caveats:
\begin{enumerate}
\item it is mandatory to issue \csb{etocglobaldefs} for \etoc's
definitions to have global scope,
-\item use \csb{etocthelinkedname},
- \csb{etocthelinkednumber} and \csb{etocthelinkedpage} in preference to
- \csb{etocname}, \csb{etocnumber}, \csb{etocpage}: if |hyperref| is
- present, this is mandatory, and if it is not present, it does not hurt
- and gives the same output,
\item it is impossible to start one of the \meta{start}, \meta{prefix},
\meta{contents} or \meta{finish} specification with a sole |\hline|,
\emph{i.e.} one not preceded by a |\\| (it is however possible to put
@@ -3179,32 +3547,25 @@ simply now with |1.08|. The code follows.
\begingroup
\etocglobaldefs % necessary for \etocthename etc... to survive &
-% we must use \etocthelinkednumber and not \etocnumber if hyperref is
-% present, because \etocnumber does not incorporate a fully expanded
-% hyperlink destination specification, hence that part gets lost when a
-% & is encountered
-
% observe the locations of the \\
\etocsetstyle{part}
{}
{\\\hline}
- {\strut\etocthelinkednumber &\bfseries\etocthelinkedname
- &\etocthelinkedpage }
+ {\strut\etocnumber &\bfseries\etocname &\etocpage }
{}
\etocsetstyle{section}
{}
{\etociffirst{\etocifnumbered{\\\hline}{\\\hline\hline}}{\\}}
- {\etocthelinkednumber&\etocthelinkedname &\etocthelinkedpage }
+ {\etocnumber&\etocname &\etocpage }
{}
\etocsetstyle{subsection}
{}
{\\}
- {&\makebox[1cm][c]{\etocthelinkednumber}%
- \parbox[t]{\dimexpr6cm-\tabcolsep\relax}
- {\sloppy\itshape\etocthelinkedname\strut}%
- &\itshape\etocthelinkedpage }
+ {&\makebox[1cm][c]{\etocnumber}%
+ \parbox[t]{\dimexpr6cm-\tabcolsep\relax}{\sloppy\itshape\etocname\strut}%
+ &\itshape\etocpage }
{}
\etocsettocstyle
@@ -3222,34 +3583,27 @@ simply now with |1.08|. The code follows.
\begin{verbatim}
\begingroup
-\etocglobaldefs % necessary for \etocthename etc... to survive &
-
-% we must use \etocthelinkednumber and not \etocnumber if hyperref is
-% present, because \etocnumber does not incorporate a fully expanded
-% hyperlink destination specification, hence that part gets lost when a
-% & is encountered
+\etocglobaldefs % necessary for \etocname etc... to survive &
% observe the locations of the \\
\etocsetstyle{part}
{}
{\\\hline}
- {\strut\etocthelinkednumber &\bfseries\etocthelinkedname
- &\etocthelinkedpage }
+ {\strut\etocnumber &\bfseries\etocname&\etocpage }
{}
\etocsetstyle{section}
{}
{\etociffirst{\etocifnumbered{\\\hline}{\\\hline\hline}}{\\}}
- {\etocthelinkednumber&\etocthelinkedname &\etocthelinkedpage }
+ {\etocnumber&\etocname &\etocpage }
{}
\etocsetstyle{subsection}
{}
{\\}
- {&\makebox[1cm][c]{\etocthelinkednumber}%
- \parbox[t]{\dimexpr6cm-\tabcolsep\relax}
- {\sloppy\itshape\etocthelinkedname\strut}%
- &\itshape\etocthelinkedpage }
+ {&\makebox[1cm][c]{\etocnumber}%
+ \parbox[t]{\dimexpr6cm-\tabcolsep\relax}{\sloppy\itshape\etocname\strut}%
+ &\itshape\etocpage }
{}
\etocsettocstyle
@@ -3312,9 +3666,9 @@ contents.
\etocsetstyle{section}
{}
{\etociffirst{\\\hline\hline}{\\\hline}}
- {\etocthelinkedname&
- \etocthelinkednumber&
- \etocthelinkedpage }
+ {\etocname&
+ \etocnumber&
+ \etocpage }
{}
\etocsettocstyle
@@ -3335,9 +3689,7 @@ contents.
\etocsetstyle{section}
{}
{\etociffirst{\\\hline\hline}{\\\hline}}
- {\etocthelinkedname&
- \etocthelinkednumber&
- \etocthelinkedpage }
+ {\etocname & \etocnumber & \etocpage }
{}
\etocsettocstyle
@@ -3555,7 +3907,7 @@ command which explains why it can be used inside the label specification
without needing an added |\protect|.
-\subsubsection{The \csbhyp{etocifnumbered} switch}
+\subsection{The \csbhyp{etocifnumbered} switch}
\label{etocifnumbered}
\label{etocxifnumbered}
@@ -3649,19 +4001,19 @@ define the macro |\lastone| to expand to the last name seen at the
corresponding level. But no facilities was previously available to
do the same with the link data.
-The package now provides \csa{etocthelinkedname} to do the similar
-thing, with the link data included. It was used in this
-documentation when doing the
-\hyperref[tocastree]{examples with trees}.
+The package provides since |1.07f 2013/03/07| \csa{etocthelinkedname} to do
+the similar thing, with the link data included. It was used in this
+documentation when doing the \hyperref[tocastree]{examples with trees}.
Also provided with the similar goal: \csa{etocthelinkednumber},
\csa{etocthelinkedpage} (which contains a link only if |hyperref|
added one to the page number) and \csa{etocthelink}\marg{linkname}
which allows to make a link with an arbitrary name.
-All these commands are fragile.
+All these commands are fragile. In fact starting with |1.08a|, \csa{etocname}
+is exactly the robust variant of \csa{etocthelinkedname}
-Example of \begingroup
+Obsolete example of \begingroup
\etocsetstyle {section}
{\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, and }}]}
{\global\let\TmpEtocNumber\etocthelinkednumber
@@ -3677,7 +4029,7 @@ Example of \begingroup
\endgroup
\begin{verbatim}
-Example of \begingroup
+Obsolete example of \begingroup
\etocsetstyle {section}
{\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, and }}]}
{\global\let\TmpEtocNumber\etocthelinkednumber
@@ -3694,28 +4046,29 @@ Example of \begingroup
\endgroup
\end{verbatim}
-\etoc |1.08| offers a simpler way to the same result:
+\etoc |1.08a| offers a simpler way to the same result. And there is no need
+anymore here for \csa{etocthelinkedname}, \csa{etocname} works.
\begin{verbatim}
Example of
\begingroup\etocglobaldefs % <-- NEW mit etoc 1.08.
\etocsetstyle {section}
{\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, und }}]}
{}
- {\item [{\bfseries\etocthelinkednumber.}]
- \etocthelinkedname\ (\emph{p. \etocthelinkedpage })}
+ {\item [{\bfseries\etocnumber.}] \etocname\ (\emph{p. \etocpage })}
{\end{itemize*}.}%
\etocsetnexttocdepth {section}%
\etocsettocstyle {a table of contents done as an inline
\texttt{enumitem} environment: }{}%
\etocinline\tableofcontents \ref{toc:globalcmds}
+\endgroup
\end{verbatim}
Example of
\begingroup\etocglobaldefs % <-- NEW mit etoc 1.08.
\etocsetstyle {section}
{\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, und }}]}
{}
- {\item [{\bfseries\etocthelinkednumber.}]
- \etocthelinkedname\ (\emph{p. \etocthelinkedpage })}
+ {\item [{\bfseries\etocnumber.}]
+ \etocname\ (\emph{p. \etocpage })}
{\end{itemize*}.}%
\etocsetnexttocdepth {section}%
\etocsettocstyle {a table of contents done as an inline
@@ -4922,7 +5275,7 @@ none). However, one cannot modify then the font or the color (using the
allow to change the color of the un-boxed saved box). If such a need
arises, one must switch from using boxes to using macros, and store the
|hyperref| data for later use as was done in the code presented in
-\autoref{ssec:molecule}. We present also this second method.
+\autoref{sec:molecule}. We present also this second method.
But first, the code of \csa{thispartstats}:\par
\begin{verbatim}
@@ -5189,6 +5542,9 @@ language changing instructions, or updates to certain counters, etc...),
and we are less susceptible to fall potential victims of various
external macros inserted in the |.toc| file by other packages.
+Note: rather than |\toks| registers it would be easier here to use \eTeX{}
+\csa{unexpanded} primitive. See for example \autoref{sec:mindmap}.
+
\begin{verbatim}
\newtoks\toctabletok
\newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
@@ -5355,18 +5711,20 @@ terminated since then, or \csb{etoclocaldefs} has cancelled its influence.
\subsection{\TeX nical matters}
-The \csa{etocname}, \csa{etocnumber}, \csa{etocpage} commands are protected against
-premature expansion. They contain suitable |hyperref| links if package
-|hyperref| is loaded and active for the TOC. The commands \csa{etoclink} and
-\csa{etocifnumbered} are also protected against premature expansion.
+The \csb{etocname}, \csb{etocnumber}, \csb{etocpage} commands are protected
+against premature expansion. They contain suitable |hyperref| links if package
+|hyperref| is loaded and active for the TOC. The commands \csb{etoclink} and
+\csb{etocifnumbered} are also protected against premature expansion. Also
+\csb{etociffirst} and \csb{etoctoccontentsline}.
-On the other hand \csa{etocthename}, \csa{etocthenumber},
-\csa{etocthepage} do not represent |hyperref| links, and are
-\emph{not} protected against expansion.
+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 contain hyperlink data, if present in the |.toc| file.
-The commands such as \csa{etocsetstyle}, \csa{etocsetlevel},
-\csa{etocsettocstyle}, \csa{etocmulticolstyle},
-\csa{etocruledstyle}, \csa{etocframedstyle} obey \LaTeX{}'s
+The commands such as \csb{etocsetstyle}, \csb{etocsetlevel},
+\csb{etocsettocstyle}, \csb{etocmulticolstyle},
+\csb{etocruledstyle}, \csb{etocframedstyle} obey \LaTeX{}'s
groups. All TOCs are typeset inside groups.
\subsection{Errors and catastrophes}
@@ -5414,18 +5772,95 @@ version is \texttt{\etocpkgversion}, of \texttt{\etocpkgdate}.
% START GERMAN (DEUTSCH) VERSION
\bookmark[named=FirstPage,level=1]{Titelseite}% 10 octobre 2013.
-\begin{center}
- {\normalfont\Large Das \etoc-Paket}\\
- \textsc{Jean-François Burnol}\par
- \footnotesize \ttfamily jfbu (at) free (dot) fr\\
- Paketversion: \etocDEpkgversion\ (\etocDEpkgdate) \let\thefootnote\empty
- \footnote{Original Dokumentationzeitstempel: ``\etocDEdocdate''.\par
+\begingroup
+
+\etocsetstyle{part}
+ {\etocskipfirstprefix}
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendpart\treetok\parttok {teal!60}% first
+ \or \appendpart\treetok\parttok {yellow!80}% second
+ \else\appendpart\treetok\parttok {green!50}% third and next ...
+ \fi
+ }
+ {\stepcounter{partco}%
+ \edef\treenode{node
+ {\unexpanded\expandafter{\etocthelinkednumber}.
+ \unexpanded\expandafter{\etocthelinkedname}}}%
+% grosse astuce: la première Partie ne sera pas embêtée par les trois sections
+% avant car ce qu'elles auront mis dans \parttok va être effacé.
+ \parttok\expandafter{\treenode}}
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendpart\treetok\parttok {teal!60}% first
+ \or \appendpart\treetok\parttok {yellow!80}% second
+ \else\appendpart\treetok\parttok {green!50}% third and next ...
+ \fi
+ }
+
+\etocsetstyle{section}
+ {}
+ {}
+ {% define the section node
+ \edef\childnode{child {node {\unexpanded\expandafter{\etocthelinkednumber}
+ \unexpanded\expandafter{\etocthelinkedname}}}}%
+ \appendtotok\parttok\childnode }
+ {}
+
+\etocsetnexttocdepth{section}
+
+\etocsettocstyle
+ {\setcounter{partco}{0}%
+ \treetok{\node [root concept]{\normalfont{Das \etoc-Paket}\par {\normalsize\textsc
+ {Jean-François Burnol}\par \ttfamily jfbu (at) free (dot) fr}\par
+ {\normalsize Paketversion:\par \etocDEpkgversion{} (\etocDEpkgdate )\par}}}}
+ {\global\appendtotok\treetok{ ;}}
+
+\etocinline\tableofcontents\label{toc:mindmaptitlepage}
+
+% \immediate\openout\TOCasTree=\jobname.toctree
+% \immediate\write\TOCasTree{\the\treetok}%
+
+\tikzset{
+ branch color/.style={
+ concept color=#1!white,
+ every child/.append style={concept color=#1!white!30!white},
+ }
+}%
+
+\global\setbox\TitlePageMindmapTOC\hbox{%
+\resizebox{.9\paperwidth}{!}{%
+\begin{tikzpicture}[mindmap,
+ text width=2cm,
+ align = flush center,
+ growth function=\tikzmycustomgrowth,
+ 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/8},% 8 hard-coded mais je pourrais aussi le calculer
+ level 1 concept/.append style={font=\Large, text width = 3cm},
+ level 2/.append style={level distance=12.5cm, sibling angle=360/35},% 35 hard coded mais je pourrais aussi le calculer
+ % distance par rapport au CENTRE ! (avec le code tel qu'en ce moment)
+ ]
+\the\treetok
+\end{tikzpicture}}}
+\endgroup
+
+\indent\null
+\begingroup
+ \let\thefootnote\empty
+\footnote{Original Dokumentationzeitstempel: ``\etocDEdocdate''.\par
Übersetzt ins Deutsche von Felix Baral-Weber, Jenny Rothkrämer-Vogt, Daniel
Büttner, Claudia Dahl, Christian Otto und Christine Römer (FSU Jena).
- Hinweise zur Übersetzung an Christine\_Roemer at t-online dot de.}\par
-\end{center}
+ Hinweise zur Übersetzung an Christine\_Roemer at t-online dot de.}
+\endgroup
\setcounter{footnote}{0}
+\AddToShipoutPictureFG*{%
+ \put(10.5cm,16.85cm)
+ {\makebox(0,0){\box\TitlePageMindmapTOC}}}
+
+\clearpage
+
+
\etocdepthtag.toc {preamble}
%----
% MAIN TOC
@@ -7124,12 +7559,22 @@ wir wollen auch die korrekten |hyperref|-Hyper-Links erhalten.\footnote{Dieses
Handbuch bis zu der Version vom 14. Mai 2013 verwendete das Paket |tikz-qtree|,
aber es gab Probleme mit den Hyper-Links. Kein solches Problem entsteht mit
|forest| oder mit der nativen Syntax |tikz| für Bäume (die im nächsten Abschnitt
-dargestellt sind).} Die Hyper-Link-Informationen von \etoc setzen innen
-\csa{etocname}, etc. \ldots, aber es ist nur ein Zeiger, nicht lagerungsfähig
-für die spätere Verwendung; aber das Paket bietet \csa{etocthelinkednumber},
-\csa{etocthelinkedname} und \csa{etocthelinkedpage}, deren Inhalte enthalten den
-Hyper-Link in einer Form, die gespeichert und später wiederverwendet werden
-können.
+dargestellt sind).}
+
+\textbf{UEBERSETZUNG NOETIG}
+\begin{otherlanguage}{english}
+ The commands \csa{etocname}, etc\dots, are robust, it is easier to work with
+ \csa{etocthelinkednumber}, \csa{etocthelinkedname}, and
+ \csa{etocthelinkedpage} which contain the same information in an easier
+ accessible form.
+\end{otherlanguage}
+% ALT:
+% Die Hyper-Link-Informationen von \etoc setzen innen
+% \csa{etocname}, etc. \ldots, aber es ist nur ein Zeiger, nicht lagerungsfähig
+% für die spätere Verwendung; aber das Paket bietet \csa{etocthelinkednumber},
+% \csa{etocthelinkedname} und \csa{etocthelinkedpage}, deren Inhalte enthalten den
+% Hyper-Link in einer Form, die gespeichert und später wiederverwendet werden
+% können.
Aus diesem |forest|-Baum haben wir ganz besondere \etoc-Stile für Abschnitte und
Unterabschnitte konzipiert. Sie verwenden ein symbolisches Listenregister mit
@@ -7144,9 +7589,9 @@ dessen Synonym \csb{etocnopar} besteht.} Das ist der spätere Job einer
\newtoks\treetok
\newtoks\tmptok
-\newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
- #1\expandafter\expandafter\expandafter
- {\expandafter\the\expandafter #1#2}}
+% \newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
+% #1\expandafter\expandafter\expandafter
+% {\expandafter\the\expandafter #1#2}}
% 7 mars: j'utilise \etocthelinkedname défini à partir de 1.07f
@@ -7310,7 +7755,7 @@ Schriftsatz:
\end{itemize}
-\section{Das TOC als ein Molekül}\label{ssec:molecule}
+\section{Das TOC als ein Molekül}\label{sec:molecule}
Es ist auch möglich, einen Inhaltsverzeichnisbaum nach der TikZ-Syntax für Bäume
zu konstruieren: Aber das ist eine kompliziertere Aufgabe für die \etoc
@@ -7481,6 +7926,271 @@ vorherige \hyperref[toc:forest]{Forest-TOC} auch.
\end{verbatim}
\end{minipage}
+\section{Das TOC als ein TikZ Mind-Map}
+\label{sec:mindmap}
+
+\textbf{UEBERSETZUNG NOETIG}
+
+\begin{otherlanguage}{english}
+This is in the same spirit as the ``molecule'' example. The use of the \eTeX{}
+primitive \csa{unexpanded} will simplify the code.\footnote{The ``molecule''
+example was added to this documentation on |2013/03/03|. The ``mindmap''
+example was motivated on |2015/03/11| by
+\url{http://tex.stackexchange.com/a/232584/4686}. Further help was then obtained via
+\url{http://tex.stackexchange.com/q/232816/4686} and this led to the
+\hyperref[toc:mindmaptitlepage]{title page} which is a further example.}
+
+\begingroup
+%\newtoks\treetok
+%\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}}
+
+\renewcommand*{\appendchildtree}[3]{%
+% this is to construct "t1 child [branch color= #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 [branch color = #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.
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendchildtree\treetok\parttok {teal!60}% first
+ \or \appendchildtree\treetok\parttok {yellow!80}% second
+ \else\appendchildtree\treetok\parttok {green!50}% third and next ...
+ \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 {teal!60}% first
+ \or \appendchildtree\treetok\parttok {yellow!80}% second
+ \else\appendchildtree\treetok\parttok {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} {section}
+\etocsettagdepth {arbitrarily}{part}
+\etocsettagdepth {surprising} {section}
+\etocsettagdepth {linestyles} {part}
+\etocsettagdepth {globalcmds} {section}
+\etocsettagdepth {custom} {section}
+\etocsettagdepth {tips} {section}
+\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}[th!]
+\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=45, text width=3cm},
+ level 2/.append style={level distance=8cm,sibling angle=25, text width=3cm},
+ level 1 concept/.append style={font=\normalsize},
+ ]
+\the\treetok
+\end{tikzpicture}}}
+\end{figure}
+\endgroup
+
+It is difficult to get everything to fit on one page. However \csa{resizebox}
+comes to the rescue. And it preserves hyperlinks. Nevertheless for this
+example I excluded some sections from the display, using the technique of the
+\etoc \hyperref[etocdepthtag.toc]{depth tags}. The fully hyperlinked TOC
+appears \vpageref{toc:mindmap}.
+
+\begin{verbatim}
+\begingroup
+\newtoks\treetok
+\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}}
+
+\renewcommand*{\appendchildtree}[3]{%
+% this is to construct "t1 child [branch color= #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 [branch color = #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.
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendchildtree\treetok\parttok {teal!60}% first
+ \or \appendchildtree\treetok\parttok {yellow!80}% second
+ \else\appendchildtree\treetok\parttok {green!50}% third and next ...
+ \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 {teal!60}% first
+ \or \appendchildtree\treetok\parttok {yellow!80}% second
+ \else\appendchildtree\treetok\parttok {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} {section}
+\etocsettagdepth {arbitrarily}{part}
+\etocsettagdepth {surprising} {section}
+\etocsettagdepth {linestyles} {part}
+\etocsettagdepth {globalcmds} {section}
+\etocsettagdepth {custom} {section}
+\etocsettagdepth {tips} {section}
+\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}[th!]
+\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=45, text width=3cm},
+ level 2/.append style={level distance=8cm,sibling angle=25, text width=3cm},
+ level 1 concept/.append style={font=\normalsize},
+ ]
+\the\treetok
+\end{tikzpicture}}}
+\end{figure}
+\endgroup
+\end{verbatim}
+
+An interesting alternative is to use \etoc rather to convert the entire TOC
+into a TikZ tree (perhaps excluding some parts) and print it out to a file
+from which it can be recovered and manipulated directly by the author of the
+document. Things written to the |.log| file get broken into lines. Here is a
+technique to get non-broken output. Once the \csa{treetok} has been computed
+by \etoc (as in the \hyperref[toc:molecule]{molecule} example, or the current
+example), this code snippet will write it out to file with extension
+|.toctree|:
+\begin{verbatim}
+ \newwrite\TOCasTree
+ \immediate\openout\TOCasTree=\jobname.toctree
+ \immediate\write\TOCasTree{\the\treetok}%
+\end{verbatim}
+The author can then copy it from there and customize it manually to get a
+suitable tikz picture.
+
+\end{otherlanguage}
+
+
\section{Das TOC als eine Tabelle}
\label{sec:tocastable}
@@ -7496,11 +8206,6 @@ conditions and a few caveats:
\begin{enumerate}
\item it is mandatory to issue \csb{etocglobaldefs} for \etoc's
definitions to have global scope,
-\item use \csb{etocthelinkedname},
- \csb{etocthelinkednumber} and \csb{etocthelinkedpage} in preference to
- \csb{etocname}, \csb{etocnumber}, \csb{etocpage}: if |hyperref| is
- present, this is mandatory, and if it is not present, it does not hurt
- and gives the same output,
\item it is impossible to start one of the \meta{start}, \meta{prefix},
\meta{contents} or \meta{finish} specification with a sole |\hline|,
\emph{i.e.} one not preceded by a |\\| (it is however possible to put
@@ -7523,21 +8228,21 @@ simply now with |1.08|. The code follows.
\etocsetstyle{part}
{}
{\\\hline}
- {\strut\etocthelinkednumber &\bfseries\etocthelinkedname
- &\etocthelinkedpage }
+ {\strut\etocnumber &\bfseries\etocname
+ &\etocpage }
{}
\etocsetstyle{section}
{}
{\etociffirst{\etocifnumbered{\\\hline}{\\\hline\hline}}{\\}}
- {\etocthelinkednumber&\etocthelinkedname &\etocthelinkedpage }
+ {\etocnumber&\etocname &\etocpage }
{}
\etocsetstyle{subsection}
{}
{\\}
- {&\makebox[1cm][c]{\etocthelinkednumber}%
+ {&\makebox[1cm][c]{\etocnumber}%
\parbox[t]{\dimexpr6cm-\tabcolsep\relax}
- {\sloppy\itshape\etocthelinkedname\strut}%
- &\itshape\etocthelinkedpage }
+ {\sloppy\itshape\etocname\strut}%
+ &\itshape\etocpage }
{}
\etocsettocstyle
{\hypersetup{hidelinks}%
@@ -7553,34 +8258,29 @@ simply now with |1.08|. The code follows.
\begin{verbatim}
UEBERSETZUNG NOETIG
\begingroup
-\etocglobaldefs % necessary for \etocthename etc... to survive &
-
-% we must use \etocthelinkednumber and not \etocnumber if hyperref is
-% present, because \etocnumber does not incorporate a fully expanded
-% hyperlink destination specification, hence that part gets lost when a
-% & is encountered
+\etocglobaldefs % necessary for \etocname etc... to survive &
% observe the locations of the \\
\etocsetstyle{part}
{}
{\\\hline}
- {\strut\etocthelinkednumber &\bfseries\etocthelinkedname
- &\etocthelinkedpage }
+ {\strut\etocnumber &\bfseries\etocname
+ &\etocpage }
{}
\etocsetstyle{section}
{}
{\etociffirst{\etocifnumbered{\\\hline}{\\\hline\hline}}{\\}}
- {\etocthelinkednumber&\etocthelinkedname &\etocthelinkedpage }
+ {\etocnumber&\etocname &\etocpage }
{}
\etocsetstyle{subsection}
{}
{\\}
- {&\makebox[1cm][c]{\etocthelinkednumber}%
+ {&\makebox[1cm][c]{\etocnumber}%
\parbox[t]{\dimexpr6cm-\tabcolsep\relax}
- {\sloppy\itshape\etocthelinkedname\strut}%
- &\itshape\etocthelinkedpage }
+ {\sloppy\itshape\etocname\strut}%
+ &\itshape\etocpage }
{}
\etocsettocstyle
@@ -7647,9 +8347,7 @@ contents.
\etocsetstyle{section}
{}
{\etociffirst{\\\hline\hline}{\\\hline}}
- {\etocthelinkedname&
- \etocthelinkednumber&
- \etocthelinkedpage }
+ {\etocname& \etocnumber&\etocpage }
{}
\etocsettocstyle
@@ -7670,9 +8368,7 @@ contents.
\etocsetstyle{section}
{}
{\etociffirst{\\\hline\hline}{\\\hline}}
- {\etocthelinkedname&
- \etocthelinkednumber&
- \etocthelinkedpage }
+ {\etocname & \etocnumber & \etocpage }
{}
\etocsettocstyle
@@ -7903,7 +8599,7 @@ benutzt. Dabei ist festzuhalten, dass \csa{etocnumber} ein robuster Befehl ist,
was erklärt, warum er in der Label-Spezifikation benutzt werden kann, ohne
|\protect| hinzuzufügen.
-\subsubsection{Der \csbhyp{etocifnumbered}-Schalter}
+\subsection{Der \csbhyp{etocifnumbered}-Schalter}
\label{etocifnumbered}
\label{etocxifnumbered}
@@ -8002,9 +8698,14 @@ Ebenfalls bereit gestellt mit ähnlichen Funktionen: \csa{etocthelinkednumber},
zu dieser Seitenzahl hinzugefügt hat) und \csa{etocthelink}\marg{linkname},
welches es erlaubt einen Link mit einem beliebigen Name zu erstellen.
-All diese Befehle sind \emph{nicht} robust.
+All diese Befehle sind \emph{nicht} robust.
+\textbf{UEBERSETZUNG NOETIG}
+\begin{otherlanguage}{english}
+ In fact starting with |1.08a|, \csa{etocname}
+is exactly the robust variant of \csa{etocthelinkedname}
+\end{otherlanguage}
-Beispiel\begingroup\
+Veralteter Beispiel\begingroup\
\etocsetstyle {section}
{\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, und }}]}
{\global\let\TmpEtocNumber\etocthelinkednumber
@@ -8020,7 +8721,7 @@ Beispiel\begingroup\
\endgroup
\begin{verbatim}
-Beispiel\begingroup
+Veralteter Beispiel\begingroup
\etocsetstyle {section}
{\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, und }}]}
{\global\let\TmpEtocNumber\etocthelinkednumber
@@ -8043,8 +8744,8 @@ Beispiel\begingroup\etocglobaldefs % <-- NEU mit etoc 1.08.
\etocsetstyle {section}
{\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, und }}]}
{}
- {\item [{\bfseries\etocthelinkednumber.}]
- \etocthelinkedname\ (\emph{S. \etocthelinkedpage })}
+ {\item [{\bfseries\etocnumber.}]
+ \etocname\ (\emph{S. \etocpage })}
{\end{itemize*}.}%
\etocsetnexttocdepth {section}%
\etocsettocstyle {(ein Inhaltsverzeichnis als eine Inline-%
@@ -8056,8 +8757,8 @@ Beispiel\begingroup\etocglobaldefs % <-- NEU mit etoc 1.08.
\etocsetstyle {section}
{\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, und }}]}
{}
- {\item [{\bfseries\etocthelinkednumber.}]
- \etocthelinkedname\ (\emph{S. \etocthelinkedpage })}
+ {\item [{\bfseries\etocnumber.}]
+ \etocname\ (\emph{S. \etocpage })}
{\end{itemize*}.}%
\etocsetnexttocdepth {section}%
\etocsettocstyle {(ein Inhaltsverzeichnis als eine Inline-%
@@ -9241,7 +9942,7 @@ ist oder keiner). Allerdings kann man dann nichts an der Schriftart oder Farbe
\csa{sbox} würde die Farbe Farbe um das ohne Boxen gespeicherte Feld verändern).
Wenn eine solche Notwendigkeit entsteht, muss man von der Boxenverwendung zum
Makro nehmen wechseln und die |hyperref|-Daten für später speichern, wie im oben
-im Code von \autoref{ssec:molecule} vorgestellt. Wir präsentieren auch diese
+im Code von \autoref{sec:molecule} vorgestellt. Wir präsentieren auch diese
zweite Methode.
Aber als Erstes der Code von \csa{thispartstats}:\par
@@ -9555,6 +10256,9 @@ they are executed but hopefully do not create havoc; typically they are
language changing instructions, or updates to certain counters, etc...),
and we are less susceptible to fall potential victims of various
external macros inserted in the |.toc| file by other packages.
+
+Note: rather than |\toks| registers it would be easier here to use \eTeX{}
+\csa{unexpanded} primitive. See for example \autoref{sec:mindmap}.
\end{otherlanguage}
@@ -9736,13 +10440,15 @@ Die \csa{etocname}, \csa{etocnumber}, \csa{etocpage} Befehle sind gegen
vorzeitige Expansion geschützt. Sie enthalten geeignete |hyperref|-Links, wenn
das Paket |hyperref| geladen und aktiviert für das TOC ist. Die Befehle
\csa{etoclink} und \csa{etocifnumbered} sind auch gegen vorzeige Expansion
-geschützt.
+geschützt. Auch \csb{etociffirst} und \csb{etoctoccontentsline}.
-Andererseits \csa{etocthename}, \csa{etocthenumber}, \csa{etocthepage}, haben
+Andererseits \csb{etocthename}, \csb{etocthenumber}, \csb{etocthepage}, haben
keine Anbindung an |hyperref|-Links und sind nicht gegen Expansionen geschützt.
+Und \csb{etocthelinkedname}, \csb{etocthelinkednumber},
+\csb{etocthelinkedpage} sind auch nicht gegen Expansionen geschützt.
-Befehle wie \csa{etocsetstyle}, \csa{etocsetlevel}, \csa{etocsettocstyle},
-\csa{etocmulticolstyle}, \csa{etocruledstyle}, \csa{etocframedstyle} folgen
+Befehle wie \csb{etocsetstyle}, \csb{etocsetlevel}, \csb{etocsettocstyle},
+\csb{etocmulticolstyle}, \csb{etocruledstyle}, \csb{etocframedstyle} folgen
Gruppierungen von \LaTeX. Alle TOCs werden in Gruppierungen gesetzt.
\subsection{Fehler und Katastrophen}
@@ -9847,6 +10553,21 @@ Paketversion ist \texttt{\etocDEpkgversion} von \texttt{\etocDEpkgdate}.
\begin{multicols}{2}
\begin{jfverbatim}
+v1.08a [2015/03/13]^
+
+ \etocname, \etocnumber and \etocpage are now the robust
+ variants of \etocthelinkedname, \etocthelinkednumber and
+ \etocthelinkedpage. This should arguably have been done since
+ the addition of the latter to etoc with v1.07f [2013/03/07].
+ The earlier \etocname etc... contained the hyperlink
+ destination only in an unexpanded form.
+
+ The documentation has a brand new title page and a new section
+ The TOC as a TikZ mind map both illustrating further uses of
+ etoc to display tables of contents as trees in an automatic
+ manner.
+
+
v1.08 [2015/03/10]^
\etocskipfirstprefix may now appear anywhere in the <start>
@@ -10614,17 +11335,22 @@ v1.02 [2012/11/18]^
% Then |1.07| added \csa{etocthename}, \csa{etocthenumber}, \csa{etocthepage}
% which are left fragile and do not have the links data, and
% \csa{etoclink}\marg{linkname} which is robust and reconstructs an arbitrarily
-% named link. A need (for things like building up a token list to be used in a
-% |tikzpicture|) arose later to have some form of the link which could be saved
-% by a simple command like one can do |\global\let\lastname\etocthename|, and
-% avoid having to manipulate \csa{Hy@tocdestname}. So |1.07f| adds
-% \csa{etocthelinkedname}, \csa{etocthelinkednumber}, \csa{etocthelinkedpage},
-% \csa{etocthelink}: they use \csa{hyperlink} with an expanded
-% \csa{Hy@tocdestname}.
+% named link.
%
-% One could now define \csa{etocname}, etc ... to be the robust versions of
-% \csa{etocthelinkedname}, etc ..., but the original definitions are kept by
-% sentimentalism. |1.07f| also adds \csa{leavevmode} to \csa{etoclink} which
+% A need (for things like building up a token list to be used in a
+% |tikzpicture|) arose later to have some form of the link which could be
+% saved by a simple command like one can do
+% |\global\let\lastname\etocthename|, and avoid having to manipulate
+% \csa{Hy@tocdestname}. So |1.07f| adds \csa{etocthelinkedname},
+% \csa{etocthelinkednumber}, \csa{etocthelinkedpage}, \csa{etocthelink}: they
+% use \csa{hyperlink} with an expanded \csa{Hy@tocdestname}.
+%
+% |1.08a|: I delayed from |2013/03/07| to release |1.08a| of |2015/03/13| the
+% obvious decision to convert \csa{etocname}, etc ... to be the robust
+% versions of \csa{etocthelinkedname}, etc ..., for sentimental reason. But
+% the earlier variants contained the hyperref destination in unexpanded form.
+%
+% |1.07f| also adds \csa{leavevmode} to \csa{etoclink} which
% should have been done earlier, as it was included in \csa{etocname} etc...
%
% attention, \csa{@namedef}|{A}{B}| and not \csa{@namedef}|{A} {B}| !!
@@ -10633,21 +11359,26 @@ v1.02 [2012/11/18]^
% code), a \csa{@firstofone} construct is however the simplest of all.
%
% |2015/03/09|: |1.08| adds |\Etoc@global| prefix.
+%
+% |2015/03/13|: |1.08a| drops the original constructions of |\etocname| etc...
+% which contained an unexpanded hyperref destination.
% \begin{macrocode}
\def\Etoc@lxyz #1#2{%
- \Etoc@global\@namedef {etoclink }{\leavevmode}% fall-back
- \Etoc@global\let\etocthelink \@empty % fall-back
- \Etoc@global\@namedef {etocname }{\leavevmode #1}% fall-back (perhaps linked)
- \Etoc@global\def\etocthename {#1}% (if link, will be removed later)
- \Etoc@global\def\etocthelinkedname {#1}% will probably get redefined
- \Etoc@global\@namedef {etocpage }{\leavevmode #2}% (perhaps linked)
- \Etoc@getthepage #2\etoc@ % defines also \etocthelinkedpage (and \etoclink)
- \Etoc@getnb #1\relax\relax\etoc@ % gets number *and* name, and \etoclink
- \ifEtoc@number\else
+ \Etoc@global\@namedef {etoclink }{\leavevmode}% fall-back
+ \Etoc@global\let\etocthelink \@empty % fall-back
+ \Etoc@global\def\etocthename {#1}% (if link, will be removed later)
+ \Etoc@global\def\etocthelinkedname {#1}% will probably get redefined
+ \Etoc@getthepage #2\etoc@ % defines \etocthelinkedpage (and \etoclink)
+ \Etoc@getnb #1\relax\relax\etoc@ % gets number *and* name, and \etoclink
+ \ifEtoc@number\else
\ifnum\Etoc@level=\m@ne
\Etoc@getit #1\hspace\relax\etoc@ % additional job for parts
\fi
- \fi}
+ \fi
+ \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname
+ \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber
+ \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage
+ }
% \end{macrocode}
% |1.08| adds the |\Etoc@global|'s.
% \begin{macrocode}
@@ -10676,9 +11407,8 @@ v1.02 [2012/11/18]^
% \begin{macrocode}
\def\Etoc@getthepage@hyp #1#2#3#4#5\etoc@ {%
\Etoc@global\@namedef{etoclink }##1{\leavevmode #1{#2}{#3}{##1}#5}%
- \Etoc@global\edef\etocthelink ##1{\noexpand\hyperlink {#3}{##1}}%
\Etoc@global\def\etocthepage {#4}%
- \edef\Etoc@tmp {{#3}}%
+ \edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkedpage\expandafter
{\expandafter\hyperlink \Etoc@tmp{#4}}%
}
@@ -10703,18 +11433,15 @@ v1.02 [2012/11/18]^
% \begin{macrocode}
\def\Etoc@getnb@nohyp #1#2#3\etoc@ {%
\def\Etoc@getname ##1\relax\relax\etoc@ {%
- \Etoc@global\@namedef {etocname }{\leavevmode ##1}%
\Etoc@global\def\etocthename {##1}%
\Etoc@global\def\etocthelinkedname {##1}%
}%
\ifx #1\numberline
- \Etoc@global\@namedef {etocnumber }{\leavevmode #2}%
\Etoc@global\def\etocthenumber {#2}%
\Etoc@global\def\etocthelinkednumber {#2}%
\Etoc@global\Etoc@numbertrue
\Etoc@getname #3\etoc@
\else % then \etocthename and \etocthelinkedname already defined
- \Etoc@global\@namedef {etocnumber }{\leavevmode}%
\Etoc@global\let\etocthenumber \@empty
\Etoc@global\let\etocthelinkednumber \@empty
\Etoc@global\Etoc@numberfalse
@@ -10725,8 +11452,7 @@ v1.02 [2012/11/18]^
% the |\Etoc@global|'s.
% \begin{macrocode}
\def\Etoc@getnb@hyp #1#2#3#4#5#6\etoc@ {%
- \Etoc@global\def\Etoc@getname ##1\relax\relax\etoc@ {%
- \Etoc@global\@namedef {etocname }{\leavevmode #1{#2}{#3}{##1}#5}%
+ \def\Etoc@getname ##1\relax\relax\etoc@ {%
\Etoc@global\def\etocthename {##1}%
\edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkedname\expandafter
@@ -10734,7 +11460,6 @@ v1.02 [2012/11/18]^
}%
\def\Etoc@getnbr ##1##2##3\etoc@ {%
\ifx ##1\numberline
- \Etoc@global\@namedef {etocnumber }{\leavevmode #1{#2}{#3}{##2}#5}%
\Etoc@global\def\etocthenumber {##2}%
\edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkednumber
@@ -10742,7 +11467,6 @@ v1.02 [2012/11/18]^
\Etoc@global\Etoc@numbertrue
\Etoc@getname ##3\etoc@
\else
- \Etoc@global\@namedef {etocnumber }{\leavevmode}%
\Etoc@global\let\etocthenumber \@empty
\Etoc@global\let\etocthelinkednumber \@empty
\Etoc@global\Etoc@numberfalse
@@ -10761,12 +11485,10 @@ v1.02 [2012/11/18]^
% \begin{macrocode}
\def\Etoc@getit@nohyp #1\hspace#2#3\etoc@ {%
\def\Etoc@getname ##1\hspace\relax\etoc@ {%
- \Etoc@global\@namedef {etocname }{\leavevmode ##1}%
\Etoc@global\def\etocthename {##1}%
\Etoc@global\def\etocthelinkedname {##1}%
}%
\ifx\relax#2\else
- \Etoc@global\@namedef {etocnumber }{\leavevmode #1}%
\Etoc@global\def\etocthenumber {#1}%
\Etoc@global\def\etocthelinkednumber {#1}%
\Etoc@global\Etoc@numbertrue
@@ -10779,7 +11501,6 @@ v1.02 [2012/11/18]^
% \begin{macrocode}
\def\Etoc@getit@hyp #1#2#3#4#5#6\etoc@ {%
\def\Etoc@getname ##1\hspace\relax\etoc@ {%
- \Etoc@global\@namedef {etocname }{\leavevmode #1{#2}{#3}{##1}#5}%
\Etoc@global\def\etocthename {##1}%
\edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkedname
@@ -10787,7 +11508,6 @@ v1.02 [2012/11/18]^
}%
\def\Etoc@getnbr ##1\hspace##2##3\etoc@ {%
\ifx\relax##2\else
- \Etoc@global\@namedef {etocnumber }{\leavevmode #1{#2}{#3}{##1}#5}%
\Etoc@global\def\etocthenumber {##1}%
\edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkednumber
@@ -10799,7 +11519,8 @@ v1.02 [2012/11/18]^
\Etoc@getnbr #4\hspace\relax\etoc@
}
% \end{macrocode}
-% placeholder for comments
+% |1.08a| of |2015/03/12| does the long-postponed thing to let |\etocname|
+% etc.. be simply the robust variant of |\etocthelinkedname| etc...
% \begin{macrocode}
\let\etocthename \@empty
\let\etocthenumber \@empty
@@ -10817,10 +11538,10 @@ v1.02 [2012/11/18]^
\expandafter\let\expandafter\etocxifnumbered\csname etocifnumbered \endcsname
% \end{macrocode}
% |1.08| defines |\etociffirst|
+% \begin{macrocode}
\DeclareRobustCommand*{\etociffirst}
{\ifEtoc@isfirst\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
\expandafter\let\expandafter\etocxiffirst\csname etociffirst \endcsname
-% \begin{macrocode}
% \end{macrocode}
% |1.07j| modifies |\Etoc@readtoc|.
% \begin{macrocode}
@@ -10839,7 +11560,7 @@ v1.02 [2012/11/18]^
% \begin{macrocode}
\Etoc@toctoks {}% (superfluous, but for clarity)
\AtBeginDocument{\IfFileExists{\jobname.toc}
- {{\endlinechar=-1
+ {{\endlinechar=\m@ne
\makeatletter
\newread\Etoc@tf
\openin\Etoc@tf\@filef@und
@@ -11912,7 +12633,7 @@ v1.02 [2012/11/18]^
Grave accent \` Left brace \{ Vertical bar \|
Right brace \} Tilde \~}
-\CheckSum{3061}
+\CheckSum{3053}
\csname check@checksum\endcsname
\Finale
diff --git a/Master/texmf-dist/source/generic/etoc/etoc.ins b/Master/texmf-dist/source/latex/etoc/etoc.ins
index 7e292525a27..a7a3e92da1b 100644
--- a/Master/texmf-dist/source/generic/etoc/etoc.ins
+++ b/Master/texmf-dist/source/latex/etoc/etoc.ins
@@ -1,14 +1,14 @@
%%
%% Package: etoc
-%% Version: 1.08 (2015/03/10)
+%% Version: 1.08a (2015/03/13)
%% License: LPPL 1.3c or later (see etoc.dtx)
%% Copyright (C) 2012-2015 Jean-Francois Burnol <jfbu at free dot fr>
%% Copyright (C) 2014-2015 Christine Roemer <Christine_Roemer at t-online dot de>
%% and collaborators for the translation into German of the documentation
%%
-\def\etocpkgdate {2015/03/10}
-\def\etocdocdate {2015/03/10}
-\def\etocpkgversion {v1.08}
+\def\etocpkgdate {2015/03/13}
+\def\etocdocdate {2015/03/13}
+\def\etocpkgversion {v1.08a}
\def\etocpkgdescription {Completely customisable TOCs (jfB)}
%% Run tex on this file to extract from etoc.dtx:
%% etoc.sty, etoc.tex, etoc-DE.tex and README.md
diff --git a/Master/texmf-dist/tex/generic/etoc/etoc.sty b/Master/texmf-dist/tex/latex/etoc/etoc.sty
index 172af134d4e..867aa9278fd 100644
--- a/Master/texmf-dist/tex/generic/etoc/etoc.sty
+++ b/Master/texmf-dist/tex/latex/etoc/etoc.sty
@@ -23,10 +23,10 @@
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{etoc}
- [2015/03/10 v1.08 Completely customisable TOCs (jfB)]
+ [2015/03/13 v1.08a Completely customisable TOCs (jfB)]
%%
%% Package: etoc
-%% Version: 1.08 (2015/03/10)
+%% Version: 1.08a (2015/03/13)
%% License: LPPL 1.3c or later (see etoc.dtx)
%% Copyright (C) 2012-2015 Jean-Francois Burnol <jfbu at free dot fr>
%% Copyright (C) 2014-2015 Christine Roemer <Christine_Roemer at t-online dot de>
@@ -296,19 +296,21 @@
\Etoc@et@hop{\Etoc@prefix\Etoc@contents}{\Etoc@savedcontentsline{#1}}%
}
\def\Etoc@lxyz #1#2{%
- \Etoc@global\@namedef {etoclink }{\leavevmode}% fall-back
- \Etoc@global\let\etocthelink \@empty % fall-back
- \Etoc@global\@namedef {etocname }{\leavevmode #1}% fall-back (perhaps linked)
- \Etoc@global\def\etocthename {#1}% (if link, will be removed later)
- \Etoc@global\def\etocthelinkedname {#1}% will probably get redefined
- \Etoc@global\@namedef {etocpage }{\leavevmode #2}% (perhaps linked)
- \Etoc@getthepage #2\etoc@ % defines also \etocthelinkedpage (and \etoclink)
- \Etoc@getnb #1\relax\relax\etoc@ % gets number *and* name, and \etoclink
- \ifEtoc@number\else
+ \Etoc@global\@namedef {etoclink }{\leavevmode}% fall-back
+ \Etoc@global\let\etocthelink \@empty % fall-back
+ \Etoc@global\def\etocthename {#1}% (if link, will be removed later)
+ \Etoc@global\def\etocthelinkedname {#1}% will probably get redefined
+ \Etoc@getthepage #2\etoc@ % defines \etocthelinkedpage (and \etoclink)
+ \Etoc@getnb #1\relax\relax\etoc@ % gets number *and* name, and \etoclink
+ \ifEtoc@number\else
\ifnum\Etoc@level=\m@ne
\Etoc@getit #1\hspace\relax\etoc@ % additional job for parts
\fi
- \fi}
+ \fi
+ \Etoc@global\expandafter\let\csname etocname \endcsname\etocthelinkedname
+ \Etoc@global\expandafter\let\csname etocnumber \endcsname\etocthelinkednumber
+ \Etoc@global\expandafter\let\csname etocpage \endcsname\etocthelinkedpage
+ }
\def\Etoc@getthepage #1{%
\let\Etoc@next\Etoc@getthepage@nohyp
\ifEtoc@hyperref\ifx #1\hyper@linkstart
@@ -322,9 +324,8 @@
}
\def\Etoc@getthepage@hyp #1#2#3#4#5\etoc@ {%
\Etoc@global\@namedef{etoclink }##1{\leavevmode #1{#2}{#3}{##1}#5}%
- \Etoc@global\edef\etocthelink ##1{\noexpand\hyperlink {#3}{##1}}%
\Etoc@global\def\etocthepage {#4}%
- \edef\Etoc@tmp {{#3}}%
+ \edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkedpage\expandafter
{\expandafter\hyperlink \Etoc@tmp{#4}}%
}
@@ -344,26 +345,22 @@
}
\def\Etoc@getnb@nohyp #1#2#3\etoc@ {%
\def\Etoc@getname ##1\relax\relax\etoc@ {%
- \Etoc@global\@namedef {etocname }{\leavevmode ##1}%
\Etoc@global\def\etocthename {##1}%
\Etoc@global\def\etocthelinkedname {##1}%
}%
\ifx #1\numberline
- \Etoc@global\@namedef {etocnumber }{\leavevmode #2}%
\Etoc@global\def\etocthenumber {#2}%
\Etoc@global\def\etocthelinkednumber {#2}%
\Etoc@global\Etoc@numbertrue
\Etoc@getname #3\etoc@
\else % then \etocthename and \etocthelinkedname already defined
- \Etoc@global\@namedef {etocnumber }{\leavevmode}%
\Etoc@global\let\etocthenumber \@empty
\Etoc@global\let\etocthelinkednumber \@empty
\Etoc@global\Etoc@numberfalse
\fi
}
\def\Etoc@getnb@hyp #1#2#3#4#5#6\etoc@ {%
- \Etoc@global\def\Etoc@getname ##1\relax\relax\etoc@ {%
- \Etoc@global\@namedef {etocname }{\leavevmode #1{#2}{#3}{##1}#5}%
+ \def\Etoc@getname ##1\relax\relax\etoc@ {%
\Etoc@global\def\etocthename {##1}%
\edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkedname\expandafter
@@ -371,7 +368,6 @@
}%
\def\Etoc@getnbr ##1##2##3\etoc@ {%
\ifx ##1\numberline
- \Etoc@global\@namedef {etocnumber }{\leavevmode #1{#2}{#3}{##2}#5}%
\Etoc@global\def\etocthenumber {##2}%
\edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkednumber
@@ -379,7 +375,6 @@
\Etoc@global\Etoc@numbertrue
\Etoc@getname ##3\etoc@
\else
- \Etoc@global\@namedef {etocnumber }{\leavevmode}%
\Etoc@global\let\etocthenumber \@empty
\Etoc@global\let\etocthelinkednumber \@empty
\Etoc@global\Etoc@numberfalse
@@ -395,12 +390,10 @@
}
\def\Etoc@getit@nohyp #1\hspace#2#3\etoc@ {%
\def\Etoc@getname ##1\hspace\relax\etoc@ {%
- \Etoc@global\@namedef {etocname }{\leavevmode ##1}%
\Etoc@global\def\etocthename {##1}%
\Etoc@global\def\etocthelinkedname {##1}%
}%
\ifx\relax#2\else
- \Etoc@global\@namedef {etocnumber }{\leavevmode #1}%
\Etoc@global\def\etocthenumber {#1}%
\Etoc@global\def\etocthelinkednumber {#1}%
\Etoc@global\Etoc@numbertrue
@@ -409,7 +402,6 @@
}
\def\Etoc@getit@hyp #1#2#3#4#5#6\etoc@ {%
\def\Etoc@getname ##1\hspace\relax\etoc@ {%
- \Etoc@global\@namedef {etocname }{\leavevmode #1{#2}{#3}{##1}#5}%
\Etoc@global\def\etocthename {##1}%
\edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkedname
@@ -417,7 +409,6 @@
}%
\def\Etoc@getnbr ##1\hspace##2##3\etoc@ {%
\ifx\relax##2\else
- \Etoc@global\@namedef {etocnumber }{\leavevmode #1{#2}{#3}{##1}#5}%
\Etoc@global\def\etocthenumber {##1}%
\edef\Etoc@tmp {{#3}}%
\Etoc@global\expandafter\def\expandafter\etocthelinkednumber
@@ -456,7 +447,7 @@
}
\Etoc@toctoks {}% (superfluous, but for clarity)
\AtBeginDocument{\IfFileExists{\jobname.toc}
- {{\endlinechar=-1
+ {{\endlinechar=\m@ne
\makeatletter
\newread\Etoc@tf
\openin\Etoc@tf\@filef@und