summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/etoc
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-04-29 21:48:39 +0000
committerKarl Berry <karl@freefriends.org>2014-04-29 21:48:39 +0000
commit3603d66ecbc122dc0b287c5cebde72beafeba67c (patch)
tree0e12fc5f02b8bdf2747caf876ca5d6e07e958171 /Master/texmf-dist/source/latex/etoc
parentb5777a3a3919ee935dc6b78bf541399b30ddc2d3 (diff)
etoc (29apr14)
git-svn-id: svn://tug.org/texlive/trunk@33751 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/etoc')
-rw-r--r--Master/texmf-dist/source/latex/etoc/etoc.dtx4906
-rw-r--r--Master/texmf-dist/source/latex/etoc/etoc.ins53
2 files changed, 4614 insertions, 345 deletions
diff --git a/Master/texmf-dist/source/latex/etoc/etoc.dtx b/Master/texmf-dist/source/latex/etoc/etoc.dtx
index 5254557876c..f6f180e378e 100644
--- a/Master/texmf-dist/source/latex/etoc/etoc.dtx
+++ b/Master/texmf-dist/source/latex/etoc/etoc.dtx
@@ -1,16 +1,46 @@
-% -*- coding: iso-latin-1; time-stamp-format: "%02d-%02m-%:y %02H:%02M:%02S %Z" -*-
-%<*none>
-\def\doctimestamp {Time-stamp <22-04-2014 21:52:47 CEST>}
-%</none>
-%<*!package>
-\def\jfbpkgname {etoc} \def\jfbpkgdate {2014/04/22} \def\jfbpkgversion {v1.07l}
-\def\jfbpkgdescription {Completely customisable TOCs (jfB)}
-%</!package>
+% -*- coding: utf-8; time-stamp-format: "%02d-%02m-%:y %02H:%02M:%02S %Z" -*-
%%
%% Package: etoc
-%% Version: 2014/04/22 v1.07l
-%% Copyright (C) 2012-2013-2014 by Jean-Francois Burnol <jfbu at free dot fr>
+%% Version: 1.07l (2014/04/22)
+%% License: LPPL 1.3c or later (see etoc.dtx for more information)
+%% Copyright (C) 2012-2013-2014 Jean-Francois Burnol <jfbu at free dot fr>
+%% Copyright (C) 2014 Christine Roemer <Christine_Roemer at t-online dot de>
+%% and collaborators for the translation into German of the documentation
%%
+% (repeated below in \etocLicense macro and must be manually updated there)
+%<*insfile>
+\def\etocpkgdate {2014/04/22}
+\def\etocpkgversion {v1.07l}
+\def\etocpkgdescription {Completely customisable TOCs (jfB)}
+%</insfile>
+%<*none>
+{\def\doctimestamp {Time-stamp: <29-04-2014 12:05:48 CEST>}%
+ % needs a colon : after Time-stamp for emacs automatic updating of
+ % time-stamp and must be among first eight lines
+ \def\getdtxtimestamp #1 <#2 #3 #4>{#2 at #3 #4}%
+ \def\getdocdate #1 <#2-#3-#4 #5>{#4/#3/#2}%
+ \xdef\etocdtxtimestamp {\expandafter\getdtxtimestamp\doctimestamp }%
+ \xdef\etocdocdate {\expandafter\getdocdate\doctimestamp }}%
+% Now the date and version which are specific to the German translation.
+% Replace \let by suitable \def's in case this lags behing English version.
+\let\etocDEdocdate \etocdocdate % currently 2014/04/29
+\let\etocDEpkgdate \etocpkgdate % currently 2014/04/22
+\let\etocDEpkgversion\etocpkgversion % currently 1.07l
+% Definiton of \etocLicense, in order to have it here and not have to maintain
+% a copy elsewhere. Must be compatible with all manners of compiling etoc.dtx.
+% (copyright lines from top of file must be repeated here)
+\begingroup
+ \long\def\firstofone #1{#1}\catcode1=14\catcode2=0
+ \catcode`\%=12\catcode`\_=12\endlinechar13\catcode13=13 ^^A
+ \catcode32=13\catcode`\\=12^^Brelax^^A
+^^Bfirstofone{^^Bendgroup^^Bdef^^BetocLicense^^A
+{% Package: etoc
+% Version: 1.07l (2014/04/22)
+% License: LPPL 1.3c or later
+% Copyright (C) 2012-2013-2014 Jean-Francois Burnol <jfbu at free dot fr>
+% Copyright (C) 2014 Christine Roemer <Christine_Roemer at t-online dot de>
+% and collaborators for the translation into German of the documentation
+%
% 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
@@ -21,12 +51,15 @@
% and version 1.3 or later is part of all distributions of
% LaTeX version 2005/12/01 or later.
%
-% This Work has the LPPL maintenance status Author-Maintained.
-%
-% The Author of this Work is Jean-Francois Burnol <jfbu at free dot fr>.
+% 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.dvi, etoc.pdf
+% 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.
%
% Extraction of the package (.sty) and driver (.tex) files:
% - if etoc.ins is present: tex etoc.ins
@@ -34,7 +67,8 @@
%
% It is also possible to run latex/pdflatex directly on etoc.dtx
%
-% At least three ways to produce etoc.pdf:
+% 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
@@ -43,64 +77,118 @@
% Options can be set in etoc.tex:
% - scrdoc class options (paper size, font size, ...)
% - with or without source code,
-% - with dvipdfmx or with latex/pdflatex.
+% - with dvipdfmx or with latex+dvips or pdflatex.
%
-% Installation:
+% 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.
%
-% etoc.sty->TDS:tex/latex/etoc/etoc.sty
-% etoc.dtx->TDS:source/latex/etoc/etoc.dtx
-% etoc.pdf->TDS:doc/latex/etoc/etoc.pdf
+% 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.
%
-% etoc.tex, etoc.ins, etoc.aux, etoc.toc, etc... may be discarded
+% Installation:
%
-%<*none>
+% 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
+%
+% The other files may be discarded.
+}}%
\iffalse
%</none>
-%<*driver>----------------------------------------------------------------------
+%<*tex>-------------------------------------------------------------------------
%% run latex thrice on this file etoc.tex then dvipdfmx on etoc.dvi
-%% to produce the documentation etoc.pdf, with source code included.
+%% to produce the documentation etoc.pdf, with source code included.
%%
-%% customize as desired the class options and the two toggles below.
+%% possible dvipdfmx warnings (due to hyperlinks extending over page
+%% breaks) may be ignored, but in case of a too old dvipdfmx, it may
+%% be preferable to use pdflatex. Set \Withdvipdfmx to 0 first.
%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesFile{\jfbpkgname.tex}%
- [\jfbpkgdate\space\jfbpkgversion\space\jfbpkgdescription]%
-\PassOptionsToClass{a4paper,fontsize=11pt,twoside}{scrdoc}
-\chardef\Withdvipdfmx 1 % replace 1 by 0 for using latex/pdflatex, rather.
+\chardef\Withdvipdfmx 1 % replace 1 by 0 for using latex+dvips or pdflatex
\chardef\NoSourceCode 0 % replace 0 by 1 for the doc *without* the source code
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile {etoc.tex}[Driver for etoc documentation]%
+\PassOptionsToClass {a4paper,fontsize=11pt,twoside}{scrdoc}
+\PassOptionsToPackage {german,english}{babel}
+\chardef\ForEnglish 1 % (can NOT be both 1..)
+\chardef\ForDeutsch 0 %
+\input etoc.dtx
+%%% Local Variables:
+%%% mode: latex
+%%% End:
+%</tex>-------------------------------------------------------------------------
+%<*DEtex>-----------------------------------------------------------------------
+%% run latex thrice on this file etoc-DE.tex then dvipdfmx on etoc-DE.dvi
+%% to produce the German documentation etoc-DE.pdf (without source code).
+%%
+%% possible dvipdfmx warnings (due to hyperlinks extending over page
+%% breaks) may be ignored, but in case of a too old dvipdfmx, it may
+%% be preferable to use pdflatex. For this set \Withdvipdfmx to 0.
+%%
+%% 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 zu setzen, dann ist pdflatex
+%% dreimal mit etoc-DE.tex laufen zu lassen.
+%%
+\chardef\Withdvipdfmx 1 % replace 1 by 0 for using latex+dvips or pdflatex
+\chardef\NoSourceCode 1 % replace 1 by 0 for the doc *with* the source code
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile {etoc-DE.tex}[Driver for etoc German documentation]%
+\PassOptionsToClass {a4paper,fontsize=11pt,twoside,ngerman}{scrdoc}
+\PassOptionsToPackage {english,german}{babel}
+\chardef\ForEnglish 0 % (can NOT be both 1..)
+\chardef\ForDeutsch 1 %
\input etoc.dtx
%%% Local Variables:
%%% mode: latex
%%% End:
-%</driver>----------------------------------------------------------------------
+%</DEtex>-----------------------------------------------------------------------
%<*insfile>---------------------------------------------------------------------
-%% Run tex on this file to extract etoc.sty and etoc.tex from etoc.dtx
+%% Run tex on this file to extract from etoc.dtx:
+%% etoc.sty, etoc.tex, etoc-DE.tex
%%
-%% At least three ways to produce etoc.pdf:
+%% 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:
+%% Options can be set in etoc.tex (and etoc-DE.tex):
%% - scrdoc class options (paper size, font size, ...)
%% - with or without source code,
%% - with dvipdfmx or with latex/pdflatex.
%%
-%% 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
+%% To produce the German documentation etoc-DE.pdf run tex on etoc.ins
+%% or etoc.dtx to produce etoc-DE.tex, then compile etoc-DE.tex with
+%% latex (thrice) then dvipdmx, or edit the suitable toggle in
+%% etoc-DE.tex to allow compilation to proceed 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
%%
\input docstrip.tex
\askforoverwritefalse
-\def\jfbpkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
-\string\ProvidesPackage{\jfbpkgname}^^J%
-\space[\jfbpkgdate\space\jfbpkgversion\space\jfbpkgdescription]}%
+\def\etocpkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
+\string\ProvidesPackage{etoc}^^J%
+\space[\etocpkgdate\space\etocpkgversion\space\etocpkgdescription]}%
\generate{\nopreamble
-\file{\jfbpkgname.tex}{\from{\jfbpkgname.dtx}{driver}}%
-\usepreamble\jfbpkgpreamble
-\file{\jfbpkgname.sty}{\from{\jfbpkgname.dtx}{package}}}%
+\file{etoc.tex}{\from{etoc.dtx}{tex}}%
+\file{etoc-DE.tex}{\from{etoc.dtx}{DEtex}}%
+\usepreamble\etocpkgpreamble
+\file{etoc.sty}{\from{etoc.dtx}{package}}}%
\catcode32=13\relax% active space
\let =\space%
\Msg{************************************************************************}
@@ -111,7 +199,8 @@
\Msg{* etoc.sty}
\Msg{*}
\Msg{* To produce the documentation run latex thrice on file etoc.tex}
-\Msg{* and then run dvipdfmx on file etoc.dvi}
+\Msg{* (or etoc-DE.tex) and then run dvipdfmx on file etoc.dvi, resp.}
+\Msg{* etoc-DE.dvi}
\Msg{*}
\Msg{* Happy TeXing!}
\Msg{*}
@@ -121,10 +210,6 @@
%<*none>------------------------------------------------------------------------
\fi
%
-\def\getdtxtimestamp #1 <#2 #3 #4>{#2 at #3 #4}
-\def\getdocdate #1 <#2-#3-#4 #5>{#4/#3/#2}
-\edef\dtxtimestamp {\expandafter\getdtxtimestamp\doctimestamp }
-\edef\docdate {\expandafter\getdocdate\doctimestamp }
\chardef\noetex 0
\expandafter\ifx\csname numexpr\endcsname\relax \chardef\noetex 1 \fi
\ifnum\noetex=1 \chardef\extractfiles 0 % extract files, then stop
@@ -134,15 +219,17 @@
\expandafter\ifx\csname ProvidesFile\endcsname\relax
\chardef\extractfiles 0 % etex etc.. on etoc.dtx
\else % latex/pdflatex on etoc.tex or on etoc.dtx
- \ProvidesFile{\jfbpkgname.dtx}%
- [`\jfbpkgname' source and documentation (\dtxtimestamp)]%
+ \ProvidesFile{etoc.dtx}%
+ [`etoc' source and documentation (\etocdtxtimestamp)]%
\expandafter\ifx\csname Withdvipdfmx\endcsname\relax
% latex run is on etoc.dtx
- \chardef\extractfiles 1 % 1 = extract .sty, .ins, .tex and typeset
+ \chardef\extractfiles 1 % 1 = extract files and typeset manual
\chardef\Withdvipdfmx 0 % 0 = pdflatex or latex+dvips
- \chardef\NoSourceCode 1 %
- \PassOptionsToClass{a4paper,fontsize=11pt,twoside}{scrdoc}%
- \else % latex run is on etoc.tex
+ \chardef\NoSourceCode 1 % do not include source code
+ \chardef\ForEnglish 1 \chardef\ForDeutsch 0
+ \PassOptionsToClass {a4paper,fontsize=11pt,twoside}{scrdoc}%
+ \PassOptionsToPackage {german,english}{babel}%
+ \else % latex run is on etoc.tex or etoc-DE.tex
\chardef\extractfiles 2 % do not extract files
\fi
\fi
@@ -154,11 +241,14 @@
\Msg{* To finish the installation you have to move the following^^J}%
\Msg{* file into a directory searched by TeX:^^J}%
\Msg{*^^J}%
-\Msg{*\space\space\space\space \jfbpkgname.sty^^J}%
+\Msg{*\space\space\space\space etoc.sty^^J}%
\Msg{*^^J}%
\Msg{* To produce the documentation with source code included run latex^^J}%
\Msg{* thrice on file etoc.tex and then dvipdfmx on etoc.dvi^^J}%
\Msg{*^^J}%
+\Msg{* To produce the German documentation run latex thrice on file^^J}%
+\Msg{* etoc-DE.tex and then dvipdfmx on etoc-DE.dvi^^J}%
+\Msg{*^^J}%
\Msg{* Happy TeXing!^^J}%
\Msg{*^^J}%
\Msg{********************************************************************^^J}%
@@ -166,14 +256,15 @@
\begingroup
\input docstrip.tex
\askforoverwritefalse
- \def\jfbpkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
- \string\ProvidesPackage{\jfbpkgname}^^J%
- \space[\jfbpkgdate\space\jfbpkgversion\space\jfbpkgdescription]}%
+ \def\etocpkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
+ \string\ProvidesPackage{etoc}^^J%
+ \space[\etocpkgdate\space\etocpkgversion\space\etocpkgdescription]}%
\generate{\nopreamble
- \file{\jfbpkgname.ins}{\from{\jfbpkgname.dtx}{insfile}}%
- \file{\jfbpkgname.tex}{\from{\jfbpkgname.dtx}{driver}}%
- \usepreamble\jfbpkgpreamble
- \file{\jfbpkgname.sty}{\from{\jfbpkgname.dtx}{package}}}%
+ \file{etoc.ins}{\from{etoc.dtx}{insfile}}%
+ \file{etoc.tex}{\from{etoc.dtx}{tex}}%
+ \file{etoc-DE.tex}{\from{etoc.dtx}{DEtex}}%
+ \usepreamble\etocpkgpreamble
+ \file{etoc.sty}{\from{etoc.dtx}{package}}}%
\endgroup
\fi % end of file extraction
\ifnum\extractfiles=0 % tex/etex/xetex/etc on etoc.dtx, files extracted, stop
@@ -181,9 +272,7 @@
% no use of docstrip to extract files if latex run was on etoc.tex
\ifdefined\MessageDeFin\AtEndDocument{\MessageDeFin}\fi
%-------------------------------------------------------------------------------
-% twoside option à partir de version du 3 déc 2013 (1.07j)
-% (2014/03/05:) cependant ce n'était pas le bon endroit pour le mettre, cf plus
-% haut les \PassOptionsToClass.
+% START OF USER MANUAL TEX SOURCE
\documentclass[abstract]{scrdoc}
\ifnum\NoSourceCode=1 \OnlyDescription\fi
@@ -205,11 +294,11 @@
\makeatother
\usepackage[T1]{fontenc}
-\usepackage[latin1]{inputenc}
+\usepackage[utf8]{inputenc}
\usepackage[hscale=0.66,vscale=0.75]{geometry}
\pagestyle{headings}
-% January 2014. work-around a bug in KOMA 3.12:
+% January 2014. work-around a bug in KOMA 3.12 (December 2013):
\makeatletter
\def\buggysectionmark #1{% KOMA 3.12 as released to CTAN December 2013
\if@twoside\expandafter\markboth\else\expandafter\markright\fi
@@ -245,7 +334,7 @@
% pour les environnements verbatim
-% uniformisé finalement, avec quelques exceptions, pour dtx du 3 déc 2013
+% uniformisé finalement, avec quelques exceptions, pour dtx du 3 déc 2013
\def\MacroFont{\ttfamily\small\hyphenchar\font45 \baselineskip11pt\relax}
% mais \verb fait \ttfamily hardcoded!!! (contrairement au
@@ -253,9 +342,9 @@
%----
% better \verb pour doc.
-% 12 octobre 2013, importé de xint.dtx
-% je rajoute pour { afin que truc{machin puisse avoir hyphénation
-% retire \leavemmode, pas nécessaire pour emploi ici
+% 12 octobre 2013, importé de xint.dtx
+% je rajoute pour { afin que truc{machin puisse avoir hyphénation
+% retire \leavemmode, pas nécessaire pour emploi ici
\def\MicroFont{\ttfamily\hyphenchar\font45 }
% modif de \do@noligs: \char`#1} --> \char`#1 }
@@ -294,8 +383,8 @@
}%
\def\@jfverb #1{\catcode`#1\active
\lccode`\~`#1\lowercase{\def~{\egroup\unskip}}}%
-% (\unskip ajouté le 14 octobre)
-% \lowast est défini plus loin
+% (\unskip ajouté le 14 octobre)
+% \lowast est défini plus loin
\begingroup
\lccode`\~=`\*
\lowercase{%
@@ -310,8 +399,8 @@
% avril 2013
% ATTENTION ATTENTION ATTENTION Un changement de taille comme \small semble
-% déclencher (peut-être) la relecture de t1txtt.fd et quoi qu'il en soit le
-% \hyphenchar est REMIS à -1 !
+% déclencher (peut-être) la relecture de t1txtt.fd et quoi qu'il en soit le
+% \hyphenchar est REMIS à -1 !
% update: 13 octobre 2013
% et pourtant tailles sont ok, donc au moins cette information est
@@ -376,10 +465,11 @@
\definecolor{BLUE}{RGB}{0,0,255}
\colorlet{niceone}{green!35!blue!75}
-\usepackage[english]{babel}
-\AtBeginDocument{
- \renewcommand\partname{Part}
+\usepackage {babel} % german and english options have been passed to babel
+\AtBeginDocument {
+ \ifnum\ForEnglish=1 \renewcommand\partname{Part}\fi
\addto\captionsenglish{\renewcommand\partname{Part}}
+ \addto\captionsgerman {\renewcommand\partname{Teil}}
}
\usepackage{tikz}
@@ -387,22 +477,22 @@
\usepackage{forest} % switched from tikz-qtree to forest 2013/09/09
% No problem with hyperlinks then, contrarily to tikz-qtree.
-% NOTE: (12 octobre)
-% - si compilation pour dvipdfmx, les arbres dans le dvi visualisés par xdvi
+% NOTE: (12 octobre 2013)
+% - si compilation pour dvipdfmx, les arbres dans le dvi visualisés par xdvi
% montrent correctement les textes, mais rien au point de vue graphique,
-% - si compilation pour dvips, l'arbre fait par forest est tout empilé, celui
-% fait par tikz sans forest est presque correct, les labels débordent.
-% Dans les deux cas, le résultat final dans le pdf est bon.
-% grosso modo dans l'état actuel le pdf fait 250K (dvipdfmx), 340K (pdflatex) et
+% - si compilation pour dvips, l'arbre fait par forest est tout empilé, celui
+% fait par tikz sans forest est presque correct, les labels débordent.
+% Dans les deux cas, le résultat final dans le pdf est bon.
+% grosso modo dans l'état actuel le pdf fait 250K (dvipdfmx), 340K (pdflatex) et
% 1M pour dvips+ps2pdf.
-% 9 octobre 2013, je me décide à ne plus utiliser hidelinks, mais il est tout de
-% même ajouté au .toc
+% 9 octobre 2013, je me décide à ne plus utiliser hidelinks, mais il est tout de
+% même ajouté au .toc
\usepackage[pdfencoding=pdfdoc]{hyperref}
\hypersetup{%
linktoc=all,% why is the important stuff
-%% bookmarksdepth=3,% in a *hard* to find README? anyhow
+%% bookmarksdepth=3,% in a *hard* to find README?
%% (but not needeed anymore now, v1.07g)
breaklinks=true,%
colorlinks,%
@@ -426,8 +516,8 @@ pdfpagemode=UseOutlines}
%--------
% 10 octobre 2013:
\AtBeginDocument{\addtocontents{toc}{\protect\hypersetup{hidelinks}}}
-% mieux que de passer hidelinks comme option à hyperref.
-% Comme toutes les tocs sont faites dans un groupe, c'est très
+% mieux que de passer hidelinks comme option à hyperref.
+% Comme toutes les tocs sont faites dans un groupe, c'est très
% bien. (et j'utilise \etocaftertitlehook pour autre chose)
%--------
@@ -449,15 +539,17 @@ pdfpagemode=UseOutlines}
%--------
% for "Another compatibility mode" (2013/02/21):
% attention au 5 qui est hard-coded
-% (pour 1.07f c'était 3, maintenant 5 pour 1.07g; et 4 maintenant pour 1.07h...)
-% (et pour 1.07i.. à nouveau 3 faudra vraiment que je change cela)
+% (pour 1.07f c'était 3, maintenant 5 pour 1.07g; et 4 maintenant pour 1.07h...)
+% (et pour 1.07i.. à nouveau 3 faudra vraiment que je change cela)
+% et maintenant =4 pour version de la doc du 28 avril 2014... faudra vraiment qu
+% je mette un mécanisme plus robuste pour cette TOC.
\makeatletter
\newcommand*{\MyQuasiStandardTOC}[1]{%
\begingroup
\let\savedsectionline\l@section
\let\savedsubsectionline\l@subsection
\etocsetstyle{section}{}
- {\ifnum\etocthenumber=3
+ {\ifnum\etocthenumber=4 % <- check this if new sections added to user manual
\etocsetstyle{subsection}
{\par\nopagebreak\begingroup
\leftskip1.5em \rightskip\@tocrmarg
@@ -483,10 +575,10 @@ pdfpagemode=UseOutlines}
%--------
% Statistics on sections and subsections in a part \thispartstats:
% 2 mars 2013
-% cette version utilise des box, plutôt que des macros.
+% cette version utilise des box, plutôt que des macros.
% mais on ne peut plus alors changer de police etc...
-% 11 octobre, je retire les \color{teal}.
+% 11 octobre 2013, je retire les \color{teal}.
\newsavebox\firstnamei
\newsavebox\firstnumberi
@@ -523,6 +615,7 @@ pdfpagemode=UseOutlines}
\sbox{\lastnameii}{\etocname}%
\sbox{\lastnumberii}{\etocnumber}}
{}
+\ifnum\ForEnglish=1
\etocsetstyle{section}
{}
{}
@@ -543,7 +636,35 @@ pdfpagemode=UseOutlines}
``\unhbox\firstnameii{}'' and the corresponding number is
``\unhbox\firstnumberii''. The name of the last subsection is
``\unhbox\lastnameii{}'' and its number is
- ``\unhbox\lastnumberii''.\fi }%
+ ``\unhbox\lastnumberii''.\fi }
+\fi
+%--------------------------------UEBERSETZUNG
+\ifnum\ForDeutsch=1
+ \etocsetstyle{section}
+ {}
+ {}
+ {\thispartstatsauxi
+ \stepcounter{mycounti}%
+ \sbox{\lastnamei}{\etocname}%
+ \sbox{\lastnumberi}{\etocnumber}}
+% Hier wird ein Befehl definiert, der fuer jedes Teil ein paar Fakten sammelt
+% und ausgibt.
+ {Zu Beginn wollen wir ein paar Fakten zu diesem Teil nennen. Er enthält
+ \arabic{mycounti} Abschnitt\ifnum\value{mycounti}>1 e\fi{} und
+ \arabic{mycountii} Unterabschnitt\ifnum\value{mycountii}>1 e\fi. Der Name des ersten
+ Abschnitts lautet
+ \glqq\unhbox\firstnamei{}\grqq~und er hat die Gliederungsnummer
+ \glqq\unhbox\firstnumberi\grqq. Der Name des letzten Abschnitts lautet
+ \glqq\unhbox\lastnamei{}\grqq~und er hat die Nummer
+ \glqq\unhbox\lastnumberi\grqq.
+ \ifnum\value{mycountii}>0 Der erste
+ Unterabschnitt heißt
+ \glqq\unhbox\firstnameii{}\grqq~und er hat die Nummer
+ \glqq\unhbox\firstnumberii\grqq. Der Name des letzten Unterabschnitts ist
+ \glqq\unhbox\lastnameii{}\grqq~und dessen Nummer ist
+ \glqq\unhbox\lastnumberii\grqq.\fi }%
+\fi
+%-------------------------------/UEBERSETZUNG
\etocinline
% october 10, 2013.
\etocsetnexttocdepth {2}%
@@ -554,13 +675,12 @@ pdfpagemode=UseOutlines}
\newcommand\etoc{%
-\texorpdfstring{{\color{joli}\ttfamily\bfseries etoc}}{etoc}\xspace}
+ \texorpdfstring{{\color{joli}\ttfamily\bfseries etoc}}{etoc}\xspace}
-\DeclareRobustCommand\csa [1]
- {{\ttfamily\hyphenchar\font45 \char`\\ #1}}
+\DeclareRobustCommand\csa [1] {{\ttfamily\hyphenchar\font45 \char`\\ #1}}
-\DeclareRobustCommand\csb [1]
- {\hyperref[#1] {\ttfamily\hyphenchar\font45 \char`\\ #1}}
+\DeclareRobustCommand\csb [1]
+ {\hyperref[#1] {\ttfamily\hyphenchar\font45 \char`\\ #1}}
\newcommand\cshyp[1]{\texorpdfstring{\csa{#1}}{\textbackslash #1}}
@@ -583,22 +703,22 @@ etoc-page
etoc-skip-first-pre-fix
etoc-num-ber
etoc-ifnum-bered
-etoc-thename
-etoc-thenum-ber
-etoc-thep-age
+etoc-the-name
+etoc-the-num-ber
+etoc-the-page
etoc-link
etoc-the-linked-name
etoc-the-linked-num-ber
etoc-the-linked-page
etoc-the-link
-etoc-setlevel
+etoc-set-level
etoc-set-toc-depth
etoc-set-next-toc-depth
etoc-set-toc-depth
etoc-obey-toc-toc-depth
etoc-ig-nor-toc-depth
etoc-depth-tag
-etoc-set-tagdepth
+etoc-set-tag-depth
etoc-obey-depth-tags
etoc-ig-nore-depth-tags
etoc-stan-dard-dis-playstyle
@@ -676,23 +796,59 @@ etoc-framed-mp-hook}
% for illustration only. Not to be recommended in general.
\setcounter{secnumdepth}{4}
+%-------------------------------UEBERSETZUNG
+\ifnum\ForDeutsch=1
+ \renewcommand*{\etocabbrevpagename}{S.~}
+\fi
+%-------------------------------/UEBERSETZUNG
+
\begin{document}\rmfamily
\thispagestyle{empty}
-% 10 octobre 2013.
+%-------------------------------------------------------------------------------
+% THIS IS TO AVOID TEX BEING CONFUSED BY CONDITIONALS IN FALSE BRANCHES
+\catcode1 0
+\catcode92 12
+
+^^Aifnum^^AForEnglish=1
+
+ ^^Acatcode92 0
+
+% START ENGLISH VERSION
\bookmark[named=FirstPage,level=1]{Title page}
\begin{center}
{\normalfont\Large The \etoc package}\\
- \textsc{Jean-François Burnol}\par
+ \textsc{Jean-François Burnol}\par
\footnotesize \ttfamily jfbu (at) free (dot) fr\\
- Package version: \jfbpkgversion\ (\jfbpkgdate)
+ Package version: \etocpkgversion\ (\etocpkgdate)
\let\thefootnote\empty
\footnote{Documentation generated from the source file
- with timestamp ``\dtxtimestamp''.}\par
+ with timestamp ``\etocdtxtimestamp''.}\par
\end{center}
\setcounter{footnote}{0}
+\etocdepthtag.toc {preamble}
+
+%----
+% MAIN TOC
+%
+\etocsettocdepth {subsubsection}
+\etoctoclines
+\etocmarkboth\contentsname
+\etocmulticolstyle[1]
+ {\pdfbookmark[1]{Table of contents}{MAINTOC}%
+ \noindent\bfseries\Large
+ \leaders\hrule height1pt\hfill
+ \MakeUppercase{Table of Contents}}
+
+\begingroup
+ \etocsetlevel{subsection}{3}
+ \etocsetlevel{subsubsection}{6}
+\tableofcontents \label{toc:main}
+\endgroup
+
+\phantomsection\addcontentsline{toc}{section}{\abstractname}
\begin{abstract}
The \etoc package gives to the user complete control on how
the entries of the table of contents should be constituted
@@ -728,12 +884,6 @@ etoc-framed-mp-hook}
additionally to the standard |.toc| file.
\end{abstract}
-
-\begingroup
-\small
-
-\etocdepthtag.toc {preamble}
-
\section{Foreword}
Popular packages dealing with TOCs include |tocloft|, |titletoc|
@@ -769,30 +919,17 @@ manner: they are made available via the \csb{etocname},
|memoir| classes. Starting with release |1.07k| it is possible to
use \etoc concurrently with package |tocloft|.
-\endgroup
-\clearpage
+\section{License, installation}
-%----
-% MAIN TOC
-%
-\etocsettocdepth {subsubsection}
-\etoctoclines
-\etocmarkboth\contentsname
-\etocmulticolstyle[1]
- {\pdfbookmark[1]{Table of contents}{MAINTOC}%
- \noindent\bfseries\Large
- \leaders\hrule height1pt\hfill
- \MakeUppercase{Table of Contents}}
+\begingroup\ttfamily\small\hyphenchar\font -1
+ \parindent0pt
+ \obeyspaces\obeylines %
+\etocLicense\endgroup
-\begingroup
- \etocsetlevel{subsection}{3}
- \etocsetlevel{subsubsection}{6}
-\tableofcontents \label{toc:main}
-\endgroup
-\etocsettocdepth {subsection}
+\clearpage
-% \clearpage
+\etocsettocdepth {subsection}
\etocdepthtag.toc{overview}
@@ -1262,7 +1399,7 @@ The code:
\etocdepthtag.toc {arbitrarily}
\part{Arbitrarily many TOCs, and local ones too}
-% 13 octobre, ceci était une section avant
+% 13 octobre, ceci était une section avant
\thispartstats
@@ -1290,7 +1427,7 @@ current value of the |tocdepth| counter is obeyed. As an
example the table of contents of
\autoref{part:custom} is in a \hyperref[toc:d]{float} which appears
\vpageref{toc:d}.
-\begin{figure*}[ht!]
+\begin{figure}[ht!]
\centering
\begingroup
\etocstandardlines
@@ -1302,11 +1439,11 @@ example the table of contents of
\tableofcontents \label{toc:d} \ref{toc:c}
\endgroup
%% \centeredline{The original is \hyperref[toc:c]{there}.}
-\end{figure*}
+\end{figure}
We used this:
\begin{verbatim}
-\begin{figure*}[ht!]
+\begin{figure}[ht!]
\centering
\begingroup
\etocstandardlines
@@ -1317,7 +1454,7 @@ We used this:
\hyperref[toc:c]{I am from far away}}}}
\tableofcontents \label{toc:d} \ref{toc:c}
\endgroup
-\end{figure*}
+\end{figure}
\end{verbatim}
Important: one should not use elsewhere \toc|\ref{toc:d}|. To clone again, one
must use a reference to the original label: \toc|\ref{toc:c}|.
@@ -1663,7 +1800,6 @@ breaks. Also, they do not worry about potential multi-column use.
\endgroup
\end{verbatim}
-% \clearpage
\begingroup
\newlength{\tocleftmargin}
@@ -1711,7 +1847,7 @@ We wrap it up in a \hyperref[toc:floating]{figure environment} showing up
\vpageref{toc:floating}.
-\begin{figure*}[htbp!]\centering
+\begin{figure}[htbp!]\centering
\colorlet{subsecnum}{black}
\colorlet{secbackground}{green!30}
\colorlet{tocbackground}{red!20!green!20}
@@ -1763,21 +1899,27 @@ We wrap it up in a \hyperref[toc:floating]{figure environment} showing up
\noindent\colorbox{secbackground}
{\parbox{\linewidth}{%
\vskip5pt
- {\noindent\color{#1}#2\par\nointerlineskip}
+ {\noindent\color{#1}#2\par}\nointerlineskip
\vskip3pt}}%
\par\nointerlineskip}
-\etocsetstyle{section}{\coloredstuff{blue}
+% v1.07l on the occasion of traduction into German documentation:
+ % APRIL 26, 2014 Improvement in the section style for better placement of
+ % page number when the section name is more than one line long. Use of
+ % \makebox rather than \hbox, to be more LaTeX like.
+\etocsetstyle{section}
+{\coloredstuff{blue}
{\hfil \bfseries\large Contents of Part One\hfil}}
{\vskip3pt\sffamily\small}
-{\coloredstuff{blue}{\kern1cm\hbox to .5cm{\etocnumber\hss}%
- \etocname\hfill
-{\hbox to .5cm{\hss\etocpage\hskip.1cm}}}%
+{\coloredstuff{blue}
+ {\leftskip1.5cm\rightskip.5cm\parfillskip-\rightskip
+ \makebox[0pt][r]{\makebox[.5cm][l]{\etocnumber}}%
+ \etocname\hfill{\makebox[.5cm][r]{\etocpage\hspace{.1cm}}}}%
\vskip6pt}
{}
-% attention car \ref{toc:floating} fera référence au compteur de
+% attention car \ref{toc:floating} fera référence au compteur de
% toutes les toc, pas visibletoc.
\etocframedstyle[1]{}
@@ -1785,7 +1927,7 @@ We wrap it up in a \hyperref[toc:floating]{figure environment} showing up
\vspace{-\baselineskip}
\centeredline{|\tableofcontents \ref{toc:overview}|
(\emph{cf.} \autoref{ssec:again} and \hyperref[toc:clone]{this other toc})}
-\end{figure*}
+\end{figure}
The actual design is not pre-built in \etoc; it uses its `framed' style with a
background color. The frame borders have been set to have the same color as the
@@ -1794,16 +1936,16 @@ is in use also for \hyperref[toc:clone]{this other toc}, and the
reader is referred to its \hyperref[ssec:tocclone]{subsection} for the
coding used.
-% 11 octobre 2013 ceci était une section avant:
-% (17 octobre, je m'aperçois qu'à cause des différents chgts, des
+% 11 octobre 2013 ceci était une section avant:
+% (17 octobre, je m'aperçois qu'à cause des différents chgts, des
% sous-sections devenant des sections etc... \thisspecialstats ici ne
% faisait pas du tout des statistiques; vaut mieux supprimer et faire
-% simplement \localtableofcontents pour maintenir le même layout.)
+% simplement \localtableofcontents pour maintenir le même layout.)
-% les \clearpage sont embêtants; surtout si je prétends qu'on peut
+% les \clearpage sont embêtants; surtout si je prétends qu'on peut
% recompiler facilement sous d'autres conditions...
-% on va plutôt faire un \vspace suffisant, cela sera un moindre mal
+% on va plutôt faire un \vspace suffisant, cela sera un moindre mal
\vspace{1cm}
@@ -2038,8 +2180,6 @@ source file |etoc.dtx| for the details of how this is done.
Another technique for doing this kind of things is explained in
\autoref{ssec:statistics}.
-%\clearpage
-
\begingroup
\etocsetlevel{dummypart}{-1}
@@ -2060,7 +2200,7 @@ Another technique for doing this kind of things is explained in
\ifextraidone\else
\noindent\hskip.7\linewidth
\hbox to .2\linewidth
-% février (ou janvier?) 2013
+% février (ou janvier?) 2013
% je modifie ici en ajoutant un \hss, pour compenser la plus petite
% taille de txrm. Ok.
{\hss\small\textsc{\bfseries Sections.\hss Page.}}\par\fi
@@ -2087,7 +2227,7 @@ Another technique for doing this kind of things is explained in
\newbox\forsectionnumbers
\makeatletter
-% 21 février 2013: je rajoute \color@begingroup et \color@endgroup
+% 21 février 2013: je rajoute \color@begingroup et \color@endgroup
\etocsetstyle{dummysection}
{\setbox\forsectionnumbers=\hbox to .1\linewidth
\bgroup\color@begingroup\hss\etocskipfirstprefix}
@@ -2096,10 +2236,10 @@ Another technique for doing this kind of things is explained in
{\etocnumber\color@endgroup\egroup
% for reasons I do not quite understand, in some pdf viewers the dots
% do not completely disappear if here \fboxsep0pt is used.
- % (problèmes liés à l'anti-aliasing, sur Mac OS X, Skim, Preview...)
- % (j'ai maintenu ici la méthode de mon post sur stackexchange, mais
- % sans doute je pourrais réfléchir à une autre façon évitant d'avoir à
- % « effacer »)
+ % (problèmes liés à l'anti-aliasing, sur Mac OS X, Skim, Preview...)
+ % (j'ai maintenu ici la méthode de mon post sur stackexchange, mais
+ % sans doute je pourrais réfléchir à une autre façon évitant d'avoir à
+ % « effacer »)
\fboxsep=.5pt\colorbox{white}{\box\forsectionnumbers}\par
\ifextraiidone\else
\begin{center}\bfseries Concord.\end{center}
@@ -2121,41 +2261,50 @@ Another technique for doing this kind of things is explained in
\tableofcontents
-
\makeatletter
\def\adddummysection {\stepcounter{dummysection}%
\addtocontents {toc}{\protect\contentsline
{dummysection}{\protect\numberline{\thedummysection}}%
{\the\dummypage }%
- \ifEtoc@hyperref{\@currentHref }\fi}}
+ %\ifEtoc@hyperref ou \ifdefined\hyperref si e-TeX
+ {\@currentHref }%
+ %\fi
+ }}
\def\adddummychapter #1{\stepcounter{dummychapter}%
\advance\dummypage2
\addtocontents {toc}{\protect\contentsline
{dummychapter}{\protect\numberline{\thedummychapter}#1}%
{\the\dummypage }%
- \ifEtoc@hyperref{\@currentHref }\fi}}
+ %\ifEtoc@hyperref ou \ifdefined\hyperref si e-TeX
+ {\@currentHref }%
+ %\fi
+ }}
\def\adddummychapno #1{\advance\dummypage2
\addtocontents {toc}{\protect\contentsline
{dummychapter}{#1}{\the\dummypage }%
- \ifEtoc@hyperref{\@currentHref }\fi}}
+ %\ifEtoc@hyperref ou \ifdefined\hyperref si e-TeX
+ {\@currentHref }%
+ %\fi
+ }}
\def\adddummypart #1{\stepcounter{dummypart}%
\advance\dummypage4
\addtocontents {toc}{\protect\contentsline
{dummypart}{\protect\numberline{\Roman{dummypart}}#1}%
{\the\dummypage }%
- \ifEtoc@hyperref{\@currentHref }\fi}}
-
+ %\ifEtoc@hyperref ou \ifdefined\hyperref si e-TeX
+ {\@currentHref }%
+ %\fi
+ }}
\makeatother
\newcount\dummypage \dummypage-1
\adddummypart {}
-
\adddummychapno {Introductory}
\newcount\tempcount
@@ -2450,13 +2599,13 @@ which will be given the contents of |\treetok|.
{\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
-% la section du bas) dans un QTree. Mais ça marche parfaitement dans un arbre
+% 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
+% la section du bas) dans un QTree. Mais ça marche parfaitement dans un arbre
% TikZ natif.
-% 9 septembre 2013: je remplace QTree par Forest, et il n'y a pas de problème
-% avec les hyperliens, ça marche out of the box (une fois que j'ai appris un peu
+% 9 septembre 2013: je remplace QTree par Forest, et il n'y a pas de problème
+% avec les hyperliens, ça marche out of the box (une fois que j'ai appris un peu
% de sa syntaxe et de celle de TikZ).
\newcommand*\PrepareSectionNode{%
@@ -2467,7 +2616,7 @@ which will be given the contents of |\treetok|.
% 7 mars: j'utilise maintenant \etocthelinkedname
\newcommand*{\PrepareSubsectionNode}{%
- \tmptok {\raggedright}% j'ai essayé aussi avec \sloppy
+ \tmptok {\raggedright}% j'ai essayé aussi avec \sloppy
\appendtotok\tmptok\etocthelinkedname
\edef\foresttreenode{ [{\noexpand\parbox{6cm}{\the\tmptok}}}%
}
@@ -2491,14 +2640,14 @@ which will be given the contents of |\treetok|.
% 11 octobre
% forest ne veut pas @\the\treetok avec un \treetok vide, donc
-% il faut lui donner une valeur par défaut.
+% il faut lui donner une valeur par défaut.
\treetok{[{run latex again}]}
% 12 octobre
% pour que varioref fonctionne bien, je dois mettre la \tableofcontents
-% au plus près de l'environnement forest
+% au plus près de l'environnement forest
-\begin{figure*}[th!]\centering
+\begin{figure}[th!]\centering
\etocsetnexttocdepth{subsection}
\tableofcontents \label{toc:forest}\ref{toc:overview}
\hypersetup{hidelinks}%
@@ -2516,7 +2665,7 @@ which will be given the contents of |\treetok|.
@\the\treetok
\end{forest}
\centeredline{A table of contents displayed as a |forest| tree.}
-\end{figure*}
+\end{figure}
The resulting tree has been put in a \hyperref[toc:forest]{float}, which
@@ -2564,7 +2713,7 @@ code used for its production:
% TOC yet. So we must give a safe default value to \treetok
\treetok{[{run latex again}]}
-\begin{figure*}[th!]\centering
+\begin{figure}[th!]\centering
\etocsetnexttocdepth{subsection}
\tableofcontents \label{toc:forest}\ref{toc:overview}
\hypersetup{hidelinks}%
@@ -2580,13 +2729,13 @@ code used for its production:
rectangle, thick, fill=cyan!5, inner sep=6pt,
@\the\treetok
\end{forest}
-\end{figure*}
+\end{figure}
\end{verbatim}
Why |\hypersetup{hidelinks}|? as explained in
\autoref{ssec:hidelinks}, I prefer the links in TOCs not to be
colorized, nor framed, so this document inserts a command
-%\csa{hypersetup}\texttt{\{hidelinks\}} % ok pour hyphénation
+%\csa{hypersetup}\texttt{\{hidelinks\}} % ok pour hyphénation
%\csa{hypersetup}|{hidelinks}| % pas ok
|\hypersetup{hidelinks}| % ok maintenant 12 octobre 2013
in the |.toc| file. But at the time the
@@ -2698,7 +2847,7 @@ contents of this (or another) document part, only a \csa{sectiontok} and a
{\treetok{\node {\hyperref[part:overview]{Overview}}}}
{\global\appendtotok\treetok{ ;}}
-\begin{figure*}[th!]\centering
+\begin{figure}[th!]\centering
\etocsetnexttocdepth{subsection}
\tableofcontents \label{toc:molecule}\ref{toc:overview}
\hypersetup{hidelinks}%
@@ -2712,7 +2861,7 @@ contents of this (or another) document part, only a \csa{sectiontok} and a
\the\treetok
\end{tikzpicture}
\centeredline{A table of contents as a ``molecule.''}
-\end{figure*}
+\end{figure}
% Pour que \pageref fonctionne correctement, je dois mettre
% le \tableofcontents dans la figure.
@@ -2727,7 +2876,7 @@ which
appears \vpageref[above]{toc:molecule}. Here is the code actually
producing it:
\begin{verbatim}
-\begin{figure*}[th!]\centering
+\begin{figure}[th!]\centering
\etocsetnexttocdepth{subsection}
\tableofcontents \label{toc:molecule} \ref{toc:overview}
\hypersetup{hidelinks}%
@@ -2740,7 +2889,7 @@ producing it:
(\tikzparentnode) --(\tikzchildnode)}]
\the\treetok
\end{tikzpicture}
-\end{figure*}
+\end{figure}
\end{verbatim}
@@ -2829,8 +2978,8 @@ previous
{\etocname}
{.\hfil\par\endgroup\pagebreak[3]}
-% 27 janvier 22:30
-% je définis les macros (non protégées)
+% 27 janvier 2013 22:30
+% je définis les macros (non protégées)
% \etocthename, \etocthenumber, \etocthepage
\etocruledstyle[1]{\etocfontminusone\color{green}%
@@ -2838,7 +2987,6 @@ previous
\framebox[\linewidth]
{\normalcolor\hss Contents of \autoref{part:linestyles}\hss}}
-% \clearpage
\localtableofcontents \label{toc:a}
\section{The \csbhyp{etocsetstyle} command}
@@ -3062,7 +3210,40 @@ Also provided with the similar goal: \csa{etocthelinkednumber},
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.
+
+Example of use\begingroup
+ \etocsetstyle {section}
+ {\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, and }}]}
+ {\global\let\TmpEtocNumber\etocthelinkednumber
+ \global\let\TmpEtocName\etocthelinkedname
+ \global\let\TmpEtocPage\etocthelinkedpage }
+ {\item [{\bfseries\TmpEtocNumber.}]\TmpEtocName\
+ (\emph{p. \TmpEtocPage})}
+ {\end{itemize*}.}%
+ \etocsetnexttocdepth {section}%
+ \etocsettocstyle {(a table of contents done as an inline
+ \texttt{enumitem} environment): }{}%
+ \etocinline\tableofcontents \ref{toc:globalcmds}
+\endgroup
+
+\begin{verbatim}
+Example of use\begingroup
+ \etocsetstyle {section}
+ {\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, and }}]}
+ {\global\let\TmpEtocNumber\etocthelinkednumber
+ \global\let\TmpEtocName\etocthelinkedname
+ \global\let\TmpEtocPage\etocthelinkedpage }
+% (the above needed as \item closes a group in enumitem inline environments)
+ {\item [{\bfseries\TmpEtocNumber.}]\TmpEtocName\
+ (\emph{p. \TmpEtocPage})}
+ {\end{itemize*}.}%
+ \etocsetnexttocdepth {section}%
+ \etocsettocstyle {(a table of contents done as an inline
+ \texttt{enumitem} environment): }{}%
+ \etocinline\tableofcontents \ref{toc:globalcmds}
+\endgroup
+\end{verbatim}
\section{The \csbhyp{etocsetlevel} command}
@@ -3201,8 +3382,6 @@ multi-lingual document, as the |babel| package writes to the |.toc| file the
language changes occurring in the document.
-% \clearpage
-
\etocdepthtag.toc {globalcmds}
\part{Commands for the toc display style}
@@ -3515,7 +3694,7 @@ beginning of this \autoref{part:globalcmds}.
We now opt for a ``framed'' style, using the package default
line styles and some colors added (it has been put in a float which appears
-\vpageref{toc:b}).\footnote{inside the |figure*| environment and before the
+\vpageref{toc:b}).\footnote{inside the |figure| environment and before the
framed toc, which uses |multicols|, we added \csa{normalcolor} as work-around
to an interaction bug (related to the \csa{color\{red\}} command we added to
the |.toc| file) between |multicols|, |color| and the |figure|
@@ -3548,11 +3727,11 @@ line styles and some colors added (it has been put in a float which appears
the sections and subsections in this part. As it is put
in a frame, it has to be small enough to fit on
one page. It has the label |toc:b|.}}}
-\begin{figure*}[ht!]
+\begin{figure}[ht!]
\centering
\normalcolor % work-around to a bug involving color and multicols (and figure)
\tableofcontents \label{toc:b} \ref{toc:globalcmds}
-\end{figure*}
+\end{figure}
\endgroup
\end{verbatim}
@@ -3583,26 +3762,26 @@ line styles and some colors added (it has been put in a float which appears
the sections and subsections in this part. As it is put
in a frame, it has to be small enough to fit on
one page. It has the label |toc:b|.}}}
-\begin{figure*}[ht!]
+\begin{figure}[ht!]
\centering
\normalcolor % work-around to a bug involving color and multicols (and figure)
\tableofcontents \label{toc:b} \ref{toc:globalcmds}
-\end{figure*}
+\end{figure}
\endgroup
% Il y a un color leak du framed mais uniquement lorsqu'il est mis dans le
-% float. 2013/10/13, qui révèle un bug (?? NON) du style framed je vais regarder
-% mais bon. Le leak apparaît avec ruled aussi, et même avec juste multicolstyle
-% MAIS PAS EN UNE SEULE COLONNE (même framed ou ruled). il semble qu'il y aie
-% donc un problème d'interaction avec multicol là. à voir. Pas le temps
+% float. 2013/10/13, qui révèle un bug (?? NON) du style framed je vais regarder
+% mais bon. Le leak apparaît avec ruled aussi, et même avec juste multicolstyle
+% MAIS PAS EN UNE SEULE COLONNE (même framed ou ruled). il semble qu'il y aie
+% donc un problème d'interaction avec multicol là. à voir. Pas le temps
% maintenant.
% 2013/10/14
-% il s'agit en fait d'un bug de color+multicols+figure qui n'a rien à voir avec
+% il s'agit en fait d'un bug de color+multicols+figure qui n'a rien à voir avec
% etoc:
% http://tex.stackexchange.com/questions/138783/color-leak-from-multicols-within-a-figure
-% J'ai trouvé le work-around qui consiste simplement à ajouter un \normalcolor
-% _avant_ le multicols à l'intérieur de figure*
+% J'ai trouvé le work-around qui consiste simplement à ajouter un \normalcolor
+% _avant_ le multicols à l'intérieur de figure
\subsection{A (crazy) inline display}
@@ -3612,6 +3791,28 @@ footnotes... This kind of style is suitable for a hyperlinked
document, probably not for print! (although I like it, but my personal taste in
many matters does not seem to be widely shared).
+%%%% Note: 27 april 2014
+
+%%%% except for a miraculous situation depending from the quantity of previous
+%%%% material this TOC will have links extending accross pagebreaks, which
+%%%% dvipdfmx does not know how to handle completely. Apart from that the output
+%%%% is ok, thus no need to try seriously to avoid them.
+
+\begingroup
+\newsavebox{\forsubsections}
+\etocsetstyle{part}{\upshape. \etocskipfirstprefix}{. \upshape}{\bfseries\etocname:~~}{}
+\etocsetstyle{section}{\itshape\etocskipfirstprefix}{, }{\mdseries\etocname}{}
+\etocsetstyle{subsection}
+ {\begin{lrbox}{\forsubsections}\upshape\etocskipfirstprefix}
+ {; }
+ {\etocname}
+ {\end{lrbox}\footnote{\unhbox\forsubsections.}}
+\etocsetstyle{subsubsection}{ (\itshape\etocskipfirstprefix}
+ {, }{\etocname}{\/\upshape)}
+\etocsettocstyle{Here is the inline table of contents. }{.\par}
+\tableofcontents \label{toc:crazyinline}
+\endgroup
+
The code used:
\begin{verbatim}
\begingroup
@@ -3630,24 +3831,6 @@ The code used:
\endgroup
\end{verbatim}
-\clearpage
-\begingroup
-\newsavebox{\forsubsections}
-\etocsetstyle{part}{\upshape. \etocskipfirstprefix}{. \upshape}{\bfseries\etocname:~~}{}
-\etocsetstyle{section}{\itshape\etocskipfirstprefix}{, }{\mdseries\etocname}{}
-\etocsetstyle{subsection}
- {\begin{lrbox}{\forsubsections}\upshape\etocskipfirstprefix}
- {; }
- {\etocname}
- {\end{lrbox}\footnote{\unhbox\forsubsections.}}
-\etocsetstyle{subsubsection}{ (\itshape\etocskipfirstprefix}
- {, }{\etocname}{\/\upshape)}
-\etocsettocstyle{Here is the inline table of contents. }{.\par}
-\tableofcontents \label{toc:crazyinline}
-\endgroup
-
-
-
\etocdepthtag.toc {custom}
\part{Using and customizing \etoc}
@@ -3855,7 +4038,6 @@ package. Customizing them goes through suitable
\newcommand*\etocsepminusone{4ex plus .5ex minus .5ex}
\newcommand*\etocsepzero{2.5ex plus .4ex minus .4ex}
\newcommand*\etocsepone{1.5ex plus .3ex minus .3ex}
-%%\newcommand*\etocseptwo{1ex plus .15ex minus .15ex} % modified in 1.07e
\newcommand*\etocseptwo{.5ex plus .1ex minus .1ex}
\newcommand*\etocsepthree{.25ex plus .05ex minus .05ex}
@@ -3872,7 +4054,7 @@ package. Customizing them goes through suitable
\newcommand*\etocbaselinespreadthree{.9}
\newcommand*\etoctoclineleaders
{\hbox{\normalfont\normalsize\hbox to 2ex {\hss.\hss}}}
-\newcommand*\etocabbrevpagename{p.~}
+\newcommand*\etocabbrevpagename{p.~} % initial of "page"
\newcommand*\etocpartname{\partname} % utilisateurs de frenchb: attention
% car donne "partie" sans majuscule.
\newcommand*\etocbookname{Book} % to be modified according to language
@@ -4032,26 +4214,27 @@ the frame.
\noindent\colorbox{secbackground}
{\parbox{\linewidth}{%
\vskip5pt
- {\noindent\color{#1}#2\par\nointerlineskip}
+ {\noindent\color{#1}#2\par}\nointerlineskip
\vskip3pt}}%
\par\nointerlineskip}
\etocsetstyle{section}
- {\coloredstuff{white}
+{\coloredstuff{white}
{\hfil \hyperref[toc:b]{\bfseries\large I am a twin of
that other TOC (click me!)}\hfil}}
- {\vskip3pt\sffamily\small}
- {\coloredstuff{white}{\hbox to 1.5cm{\hss\etocnumber\hskip.2cm}%
- \etocname\hfill\hbox{\etocpage\hskip.2cm}}\vskip6pt}
- {}
+{\vskip3pt\sffamily\small}
+{\coloredstuff{white}
+ {\leftskip1.5cm\rightskip.5cm\parfillskip-\rightskip
+ \makebox[0pt][r]{\makebox[.5cm][r]{\etocnumber\hspace{.2cm}}}%
+ \etocname\hfill\makebox[.5cm][r]{\etocpage\hspace{.2cm}}}%
+ \vskip6pt }
+{}
\etocframedstyle[1]{}
\tableofcontents \label{toc:clone} \ref{toc:globalcmds}
\endgroup
\end{verbatim}
-% \clearpage
-
\begingroup
\definecolor{subsecnum}{RGB}{13,151,225}
\definecolor{secbackground}{RGB}{0,177,235}
@@ -4104,31 +4287,38 @@ the frame.
\noindent\colorbox{secbackground}
{\parbox{\linewidth}{%
\vskip5pt
- {\noindent\color{#1}#2\par\nointerlineskip}
+ {\noindent\color{#1}#2\par}\nointerlineskip
\vskip3pt}}%
\par\nointerlineskip}
-\etocsetstyle{section}{\coloredstuff{white}
+% v1.07l on the occasion of traduction into German documentation
+ % APRIL 26, 2014 Improvement in the section style for better placement of
+ % page number when the section name is more than one line long. Use of
+ % \makebox rather than \hbox, to be more LaTeX like.
+\etocsetstyle{section}
+{\coloredstuff{white}
{\hfil \hyperref[toc:b]{\bfseries\large I am a twin of
that other TOC (click me!)}\hfil}}
{\vskip3pt\sffamily\small}
-{\coloredstuff{white}{\hbox to 1.5cm{\hss\etocnumber\hskip.2cm}%
- \etocname\hfill\hbox{\etocpage\hskip.2cm}}\vskip6pt}
+{\coloredstuff{white}
+ {\leftskip1.5cm\rightskip.5cm\parfillskip-\rightskip
+ \makebox[0pt][r]{\makebox[.5cm][r]{\etocnumber\hspace{.2cm}}}%
+ \etocname\hfill\makebox[.5cm][r]{\etocpage\hspace{.2cm}}}%
+ \vskip6pt }
{}
\etocframedstyle[1]{}
-\begin{figure*}[ht!]\centering
+\begin{figure}[ht!]\centering
\tableofcontents \label{toc:clone} \ref{toc:globalcmds}
-\end{figure*}
+\end{figure}
\endgroup
The TOC has been put in a \hyperref[toc:clone]{float} which appears
\vpageref{toc:clone}. The coding is a bit involved\footnote{and reveals the
author's preference for the \TeX{} syntax...} as it does not use any
-additional
-package. Also, it was written at some early stage and I have not revised it
-since.
+additional package. Also, it was written at some early stage and I have not
+revised it since.
A better solution would be to use some package to set
up a background color possibly extending accross pages, as the
@@ -4140,9 +4330,6 @@ Regarding colors, generally speaking all color commands inside
\etoc are initially defined to do nothing, and the choice to
use or not colors is left to the user.
-
-%\clearpage
-
\etocdepthtag.toc {tips}
\part{Tips}
@@ -4352,8 +4539,6 @@ underneath the numbers contrarily to the code from
lengths (now that this has been done once, it can be recycled easily) we
get:
-%\clearpage
-
\etocsetnexttocdepth {all}
\begingroup
\parindent 0pt
@@ -4767,8 +4952,6 @@ groups. All TOCs are typeset inside groups.
to run latex a certain number of times to let the produced
document get its final appearance (at least twice).\par
-
-
\clearpage
\etocdepthtag.toc {code}
@@ -4776,78 +4959,4103 @@ groups. All TOCs are typeset inside groups.
\section{Timestamp}
-This is the documentation as of \texttt{\docdate}, printed from the source file
-with the time stamp \texttt{\dtxtimestamp}. The package version is
-\texttt{\jfbpkgversion}, of \texttt{\jfbpkgdate}.
+This is the documentation as of \texttt{\etocdocdate}, printed from the
+source file with the time stamp \texttt{\etocdtxtimestamp}. The package
+version is \texttt{\etocpkgversion}, of \texttt{\etocpkgdate}.
+% STOP ENGLISH VERSION
+^^Afi
-\section{License, installation}
+^^Acatcode92 12
-\begin{verbatim}
-% Copyright (C) 2012-2013-2014 by Jean-Francois Burnol <jfbu at free dot fr>
+^^Aifnum^^AForDeutsch=1
+
+ ^^Acatcode92 0
+
+
+% 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: ``\etocdtxtimestamp''.\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}
+\setcounter{footnote}{0}
+
+\etocdepthtag.toc {preamble}
+%----
+% MAIN TOC
%
-% 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.
+\etocsettocdepth {subsubsection}
+\etoctoclines
+\etocmarkboth\contentsname
+\etocmulticolstyle[1]
+ {\pdfbookmark[1]{Inhaltsverzeichnis}{MAINTOC}%
+ \noindent\bfseries\Large
+ \leaders\hrule height1pt\hfill
+ \MakeUppercase{Inhaltsverzeichnis}}
+\begingroup
+ \etocsetlevel{subsection}{3}
+ \etocsetlevel{subsubsection}{6}
+\tableofcontents \label{toc:main}
+\endgroup
+
+\phantomsection\addcontentsline{toc}{section}{\abstractname}
+\begin{abstract}
+ Das \etoc-Paket gibt dem Nutzer lückenlose Möglichkeiten, die Einträge des
+ Inhaltsverzeichnis individuell über \emph{Name}, \emph{Nummer}, und
+ \emph{Seitenzahl} für jede gliedernde Einheit zu setzen. Dieses wird durch die
+ Definition von \emph{Zeilenstilen (line-styles)} für jede Unterteilungsstufe
+ des Dokuments realisiert. Das Paket bietet darüber hinaus seinen eigenen
+ Zeilenstile. Einfachere werden als Beispiele in dieser Dokumentation
+ angeboten. Die einfachste Nutzung wird durch die Verwendung der
+ Layout-Hilfsmittel, von Paketen die sich mit Listen-Umgebungen beschäftigen,
+ gewährt.
+
+ In Hinsicht auf das \emph{globale Inhaltsverzeichnis} bietet \etoc\
+ vordefinierte Stile, die auf der Mehrspaltenansicht mit optionalen,
+ unterstrichenen Titeln oder eingerahmten Inhalten basieren.
+
+ Der \csa{tableofcontents}-Befehl kann beliebig mehrfach benutzt werden. Er hat
+ die Variante \csa{localtableofcontents}, welche die Inhaltsangabe 'local' zur
+ aktuellen Dokumenten-Sektion ausgibt. Eine Erweiterung der
+ \csa{label}/\csa{ref}-Syntax erlaubt die Reproduktion (mit anderem Layout)
+ einer lokalen Inhaltsangabe, die irgendwo anders im Dokument definiert wurde.
+
+ Mit "`tiefen Tags"' erhält man noch feinere Kontrolle über jede Inhaltsangabe
+ und darüber, welche unterteilende Einheit angezeigt werden soll, oder nicht.
+
+ Mit \emph{Kompatibilismus} wird die Formatierung der Dokumentklasse geerbt
+ (die womöglich von anderen Paketen verändert wurde); und die Formatierung, die
+ von der Dokumentklasse (die womöglich von anderen Paketen verändert wurde)
+ geerbt wird.
+
+ Die Zuweisung von Ebenen zu den unterteilenden Einheiten kann zu jeder Zeit
+ geändert werden und \etoc kann dadurch in einer ziemlich generellen Weise
+ genutzt werden, um selbsterstellte 'Listen von' zu erzeugen. Keine
+ Zusatzdateien werden zusätzlich zu der Standard-|.toc|-Datei benutzt.
+\end{abstract}
+
+\section{Vorwort}
+
+Andere populäre Pakete, die sich mit Inhaltsangaben befassen, sind
+|tocloft|, |titletoc| und |minitoc|. Warum also ein anderes?
+Ich habe \etoc erst für mich selbst entwickelt und
+später von den anderen Paketen erfahren.
+
+Wie es auch in der |tocloft|-Dokumentation erklärt wird, ist das
+Standard-\LaTeX -Layout für Inhaltsangaben in den Klassen-Definitionen
+begraben. Im Besonderen sind die meisten Längen hart codiert und der
+einzige Weg für den Benutzer, sie zu ändern, ist, die Klasse in den
+Dokumenten-Ordner zu kopieren und dann die Längen zu ändern.
+Die vernünftigere Alternative ist die Benutzung eines auf das Veränderungsziel
+gerichteten Pakets, wie |tocloft| oder eine andere flexible Dokumentklasse.
+
+Freilich, obwohl jetzt hoffentlich nichts mehr hart codiert ist,
+muss man noch immer das Paket oder die Klassen-Definitionen durchgehen.
+Das bedeutet, dass man sich viele (vermutlich große) Menge an Makros
+merken muss, die nur dieser Aufgabe dienen. Und man wird immer
+auf die Anpassung eines zu Anfang gegebenen Layouts eingeschränkt sein.
+
+Der Sinn von \etoc ist ein anderer. Der Nutzer wird sich mit
+\emph{Name}, \emph{Nummer} und der \emph{Seitenzahl} beschäftigen.
+Diese korresponieren mit jeder Dokumenten-Unterteilung (und können in
+einer Zeile der |.toc|-Datei gefunden werden). Sie können, wenn gewünscht,
+durch die Befehle \csb{etocname}, \csb{etocnumber} und \csb{etocpage}
+abgerufen werden.
+
+\etoc scheint (mindestens teilweise) mit den Dokument-Klassen |article|,
+|book|, |report|, |scrartcl|, |scrbook|, |scrreprt| und |memoir|
+kompatibel zu sein. Seit der Version |1.07k| ist es möglich \etoc
+gleichzeitig mit |tocloft| zu benutzen.
+
+\section{Lizenz, Installation}
+
+\begingroup\ttfamily\small\hyphenchar\font -1
+ \parindent0pt
+ \obeyspaces\obeylines
+\etocLicense\endgroup
+
+
+\clearpage
+
+\etocsettocdepth {subsection}
+
+\etocdepthtag.toc{overview}
+
+\part{Ãœberblick}\label{part:overview}
+
+\thispartstats
+
+\invisiblelocaltableofcontents \label{toc:overview}
+
+\section{Muss ich Computerfreak sein, um \etoc benutzen zu können?}
+
+Nicht wirklich. Der einfachste Weg ist die Benutzung von
+|enumerate|-Umgebungen mit den Anpassungsmöglichkeiten von
+Paketen wie |enumitem|, \footnote{\url{http://ctan.org/pkg/enumitem}}
+um von \etoc aus der |.toc|-Datei die abgerufenen Daten anzuzeigen.
+Die Daten bestehen aus \emph{Name} (\csb{etocname}), \emph{Gliederungsnummer}
+(\csb{etocnumber}) und \emph{Seitenzahl} (\csb{etocpage}).
+
+Dieses wird \hyperref[toc:a]{zu Beginn} von \autoref{part:linestyles}
+gezeigt. Anspruchsvollere Beispiele würden anspruchsvollere
+|enumitem|-Optionen benutzen. Man könnte nun sagen, dass der Nutzer
+sich einige Anpassungen merken muss. Und das ist auch so, aber die
+Syntax und Optionsbezeichnungen, die es zu behalten gilt, sind
+in keinster Weise ähnlich.
+
+Die Methode wird \hyperref[sec:firstexample]{später}
+(\autoref{sec:firstexample}) erklärt. Dafür ist ein wenig Wissen über
+|\leftskip|, |\rightskip| usw. notwendig. Und eine Ausarbeitung , deren
+Code kann man hier (\autoref{ssec:tocwithdepthtags}) finden, die Nachahmung des
+Standardaussehens einer Inhaltsangabe.
+
+Wie Sie beim Lesen dieser Anleitung noch sehen werden, ist \etoc
+ziemlich vielfältig (ganz besonders, weil es erlaubt, die Hierarchie jeder
+unterteilenden Einheit des Dokuments zu re-definieren) und man kann damit
+überraschende Effekte erreichen: \autoref{part:surprising} handelt davon. Mehr
+davon gibt es noch in \autoref{part:tipsandtricks}.
+
+\begin{framed}
+\setcounter{mycounti}{0}%
+ \etocinline
+\etocsetlevel{part}{1}
+\etocsetlevel{chapter}{1}
+\etocsetlevel{visibletoc}{0}
+\etocsetstyle{visibletoc}
+ {}
+ {\stepcounter{mycounti}}
+ {}
+ {}
+\etocsettocstyle{}{}
+\etocsetnexttocdepth{0}
+\tableofcontents
+Ein ganz besonders wichtiger Aspekt von \etoc ist, dass es darauf ausgelegt ist,
+viele Inhaltsangaben in dem selben Dokument zu erzeugen, \emph{Mit nur einer
+ |.toc|-Datei.} Die gegenwärtige Dokumentation enthält \arabic{mycounti}
+sichtbare Inhaltsangaben (und ein paar unsichtbare). Sie benutzt dabei nur eine
+|.toc|-Datei!\footnotemark{} Darum sollte man zweimal nachdenken, bevor man
+manuell extra Befehle zu der |.toc|-Datei hinzufügt (siehe
+\autoref{sec:addingtotoc}).
+\end{framed}
+
+\footnotetext{Das Selbstzählen wurde durch eine Inhaltsangabe erreicht, die
+in einen gerahmten Paragraphen eingesetzt wurde! \dots Die Technik für diese Art
+von Effekt wird später erklärt.}
+
+
+\subsection{Beschränkungen in der Benutzung von Listen-Umgebungen für
+Inhalsangaben}
+\label{ssec:limitations}
+
+Es gibt ein paar Einschränkungen für das Nutzen von Listen-Umgebungen
+beim Setzen der TOCs. Eine davon liegt dem
+Geltungsbereichsbeschränkungen der Umgebungen inne. Die |.toc|-Datei
+könnte neben den Informationen zum Stil einige andere Befehle
+beinhalten, die Probleme hervorrufen können
+(\LaTeX -Umgebungen schaffen Gruppen.).
+
+Darum machen die eingebauten "`Zeilenstile"' (line styles), wie sie von \etoc
+vorgeschlagen werden (die durch die \hyperref[toc:main]{Hauptinhaltsangabe} in
+diesem Dokument gezeigt werden) keinen Gebrauch von Umgebungen. Tatsächlich
+nutzt in dieser Gebrauchsanweisung nur die \hyperref[toc:a]{Inhaltsangabe} zu
+Beginn von \autoref{part:linestyles} und in \autoref{toc:allsubsections}
+e\texttt{numerate}-Umgebungen, um Zeilenstile anzugeben.
+
+\section{Zeilenstile und Stile der Inhaltsangabe (toc display style)}
+
+Eine Unterscheidung muss zwischen den \emph{Zeilenstilen},
+\emph{z.\,B.} der Art und Weise wie Namen, Kapitelnummern und
+Seitenzahlen auf jedem Level angezeigt werden und dem
+\emph{Inhaltsangabenstil} (mangels einer besseren Bezeichnung)
+gemacht werden. Dieser sagt, wie die Titel gesetzt werden sollen,
+ob oder nicht ein Eintrag in die |.toc|-Datei gemacht werden soll,
+ob oder nicht der Inhalt mit mehreren Spalten gesetzt werden soll,
+usw..., der letztere wird von \csa{etocsettocstyle} (oder einem
+höherrangigen Befehl) geregelt. Das erste wird von
+\csa{etocsetstyle} initialisiert.
+
+\subsection{\csbhyp{etocsetstyle} für den Zeilenstil}
+
+Das ist der Befehl, der \etoc sagt, was es mit \csa{etocname}, \csa{etocnumber},
+und \csa{etocpage} machen soll. Er hat fünf Pflichtargumente: Das erste ist der
+Name der unterteilenden Einheit: Im Vorhinein bekannte Namen sind |book|,
+|part|, |chapter|, |section|, |subsection|, |subsubsection|, |paragraph|,
+|subparagraph| und viele weitere können anhand dem \csb{etocsetlevel}-Befehl
+einem (numerischen) Level zugewiesen werden.\footnote{Mit der
+ \texttt{memoir}-Dokumentklasse kennt \etoc \texttt{Appendix} als
+ Kapitelüberschrift.}
+
+
+%% Änderungen zur Übersetzung ins Deutsche:
+%% jf b has added here forgotten emphasized text for 2)&3) and
+%% removed various \newline.
+Die vier anderen Argumente von \csb{etocsetstyle}
+spezifizieren:
+1) \emph{Was zu tun ist, wenn dieses Level zuerst nach einem höheren
+ auftritt,}
+2) \& 3) (Zwei Argumente, ein 'Präfix' und ein 'Inhalt')
+\emph{Was zu tun ist, wenn ein neuer Eintrag dieses Typs gefunden wird,}
+und 4) \emph{Das letzte Argument ist der Code, der ausgeführt
+ wird, wenn eine unterteilende Einheit von höherer Wichtigkeit wieder von oben
+ getroffen wird.}
+
+
+\subsection{\csbhyp{etocsettocstyle} für den Stil der Inhaltsangabe}
+
+Der \csb{etocsettocstyle}-Befehl erlaubt es festzulegen,
+was vor und nach den Zeileneinträgen eines Inhaltsverzeichnis
+passieren soll, und im Speziellen wie die Titel ausgegeben
+werden sollen. Er hat zwei Argumente. Das erste wird vor
+der Inhaltsangabe ausgeführt (typischerweise wird es Inhalte
+ausgeben und definiert passende Markierungen für die
+Seitenüberschriften). Der Zweite wird nach der Inhaltsangabe
+ausgeführt.
+
+\etoc bietet vier (anpassbare) höhere Inhaltsabgabenstile:
+\csb{etocmulticolstyle}, \csb{etoctocstyle},
+\csb{etocruledstyle} und \csb{etocframedstyle}.
+Alle nutzen das |multicol|-Paket mit standardmäßig zwei
+Spalten (Einspaltenmodus kann durch das optionale Argument
+ |[1]| erreicht werden).
+
+Diese Befehle müssen entweder von \toc oder \localtoc gefolgt sein.
+
+\subsection{Kompatibilismus}\label{ssub:compat}
+\label{etoctoclines}
+\label{etocstandardlines}
+
+Vor den "`Zeilenstilen"' und den "`Inhaltsangabenstilen"' besteht
+die Möglichkeit in den Kompabilitätsmodus zu wechseln, der die
+Standardeinstellungen der Dokumentenklasse nimmt.
+\footnote{Für den "`Inhaltsangabenstil"' überprüft \etoc, ob
+es die Klassen kennt, wenn nicht, fällt es zur |article|-Klasse
+zurück. Es wird auch überprüfen, ob \texttt{tocloft} die
+Inhaltsangaben-Datei verändert hat.}
+Dieses wir wie folgt aktiviert:\\
+\makebox[5.2cm][l]{\csb{etocstandardlines}}
+ |% `Zeileneinträge' wie ohne \usepackage{etoc}|\\
+\makebox[5.2cm][l]{\csb{etocstandarddisplaystyle}}
+ |% `Inhaltsstil' wie ohne \usepackage{etoc}|
+
+Wenn der Befehl \csa{etocsetstyle} \emph{noch nicht in der Präambel benutzt
+worden ist}, wird das Paket in |\begin{document}| sitzen (in diesem
+Kompatibilismus). Folglich sollte \csa{usepackage\{etoc\}} hoffentlich
+nichts am Aussehen eines im Vorhinein vorhandenen Dokuments der Klassen
+|article|, |book|, |report|, |scrartcl|, |scrbook|, |scrreprt| und |memoir|
+ändern.
+
+Jede Benutzung von \csa{etocsetstyle} in der \emph(Präambel des Textkörpers) des
+Dokuments schaltet den Kompabilitäsmodus für Zeilenstile aus, behält ihn aber
+für den Inhaltsabgabenstil.
+
+Man kann ihn für Zeilenstile anhand von \csb{etocstandardlines}
+wieder aktivieren. \csb{etoctoclines} reaktiviert Zeilenstile wie
+Sie mit der Hilfe von \csa{etocsetstyle} definiert wurden, wenn deren
+Gültigkeitsbereich nicht auf eine Gruppe oder eine Umgebung beschränkt
+war.
+
+Der Befehl \csb{etocdefaultlines} setzt den Zeilenstil darauf zurück,
+wie er intern von \etoc in \autoref{etocdefaultlines} beschrieben wurde.
+
+Sogar wenn \csb{etocsetstyle} benutzt wurde, bleibt der globale Stil
+zu Beginn, wie er in der Dokumentenklasse definiert wurde (oder von dem
+|tocloft| Paket). Man muss den Befehl \csb{etocsettocstyle} oder seine
+Varianten setzen, um diesem Kompatibilitätsmodus auf dem
+"`Inhaltsangebenstil"'-Level zu beenden. Er wird reaktiviert,
+wenn \csb{etocstandarddisplaystyle} benutzt wird.
+
+\section{Ein erstes Beispiel}
+\label{sec:firstexample}
+
+Hier sehen sie ein erstes Beispiel zur Beschreibung der Zeilenform.
+Wir fügen die Quelldatei direkt nach dem Start von \autoref{part:overview} ein:
+
+\centeredline{|\invisiblelocaltableofcontents \label{toc:overview}|}
%
-% This Work has the LPPL maintenance status Author-Maintained.
+Dieses erstellt ein Label |toc:overview|, das wir von jeder Stelle im Dokument
+benutzen können:
%
-% The Author of this Work is
-% Jean-Francois Burnol <jfbu at free dot fr>.
-%
-% This Work consists of the main source file etoc.dtx and the
-% derived files etoc.sty, etoc.dvi, etoc.pdf, etoc.ins, etoc.tex
+\centeredline{|\tableofcontents \ref{toc:overview}|}
%
-% Extraction of the package (.sty) and driver (.tex) files:
-% - if etoc.ins is present: tex etoc.ins
-% - without etoc.ins: tex etoc.dtx
+Und da wir |\invisible...|,\footnote{Das ist eine Abkürzung, um die |tocdepth|
+ temporär auf |-3| zu setzen. Dieses sagt \etoc, die Inhaltsangabe und die
+ Ãœberschrift nicht auszugeben.} benutzt haben, existiert die lokale
+Inhaltsangabe nur durch seine Klone anderswo im Dokument.
+
+Anhand von \csb{etocdefaultlines} oder dem Stil der Standard-Dokumentklasse,
+anhand von \csb{etocstandardlines}, könnten wir auch die Zeilenform benutzen,
+die von \etoc definiert wird. Hier waren wir jedoch ein wenig ehrgeiziger und
+wollten unser eigenen Stil anlegen. Die Technik ist einfach: Jede Ãœberschrift
+ist an sich ein eigener Paragraph, der sich über mehrere Zeilen erstrecken kann;
+es ist für seinen |\leftskip| selbst verantwortlich.
+
+\begingroup
+\parindent 0pt
+\parfillskip 0pt
+\leftskip 0cm
+\rightskip 1cm
+\etocsetstyle {section}
+ {}
+ {\leavevmode\leftskip 0cm\relax}
+ {\bfseries\normalsize\makebox[.5cm][l]{\etocnumber.}%
+ \etocname\nobreak\hfill\nobreak
+ \rlap{\makebox[1cm]{\mdseries\etocpage}}\par}
+ {}
+\etocsetstyle {subsection}
+ {}
+ {\leavevmode\leftskip .5cm\relax }
+ {\mdseries\normalsize\makebox[1cm][l]{\etocnumber}%
+ \etocname\nobreak\hfill\nobreak
+ \rlap{\makebox[1cm]{\etocpage}}\par}
+ {}
+\etocsetstyle {subsubsection}
+ {}
+ {\leavevmode\leftskip 1.5cm\relax }
+ {\mdseries\normalsize\makebox[1cm][l]{\etocnumber}%
+ \etocname\nobreak\hfill\nobreak
+ \rlap{\makebox[1cm]{\etocpage}}\par}
+ {}
+\etocruledstyle[1]{\bfseries \Large Mein erstes \etoc: TOC von
+ \autoref{part:overview} (\nameref{part:overview})}
+\tableofcontents \ref {toc:overview}
+\endgroup
+
+Dieses ist ein einfaches Design, das keine Maßnahmen zum Zeilenumbruch
+bereitstellt. Diese sollten zwischen Abschnitten und Unterabschnitten, etc.
+unterbunden werden, da wir es nur für die Inhaltsangabe von diesem Abschnitt
+nutzen. Durch die Abschnitte als höchste Ebene entstand keine Notwendigkeit,
+einen Stil für den ganze Teil zu erstellen. (Wir definierten einen
+Unterabschnitt-Zeilenstil, aber wie sich herausstellt, gibt es keine
+Unterabschnitte in diesem Teil). Die zwei Befehle, die benutzt wurden,
+spezifizieren den Zeilen-Stil (\csb{etocsetstyle}) und den globalen
+Inhaltsausgabestil (\csb{etocruledstyle}).
+
+Das |\rightskip| wird von allen angewandt und schafft Platz, wo die Seitenzahlen
+gedruckt werden. Einzelheiten dieser Technik werden in dem
+\autoref{sec:secondexample} und \autoref{ssec:tocwithdepthtags} benutzt. Hier
+wird eine Inhaltsangabe mit Abschnitten und Paragraphen verwendet. Beide
+erlauben mehrzeilige Ãœberschriften und nutzen einer Technik, die Seitenzahlen
+mit dem richtigen Seitenabstand auszugeben. Dieses wurde von der Funktionsweise
+von Makros aus \LaTeX2e's |\@dottedtocline| inspiriert.
+
+\begin{verbatim}
+\begingroup\parindent 0pt \parfillskip 0pt \leftskip 0cm \rightskip 1cm
+\etocsetstyle {section}
+ {}
+ {\leavevmode\leftskip 0cm\relax}
+ {\bfseries\normalsize\makebox[.5cm][l]{\etocnumber.}%
+ \etocname\nobreak\hfill\nobreak
+ \rlap{\makebox[1cm]{\mdseries\etocpage}}\par}
+ {}
+\etocsetstyle {subsection}
+ {}
+ {\leavevmode\leftskip .5cm\relax }
+ {\mdseries\normalsize\makebox[1cm][l]{\etocnumber}%
+ \etocname\nobreak\hfill\nobreak
+ \rlap{\makebox[1cm]{\etocpage}}\par}
+ {}
+\etocsetstyle {subsubsection}
+ {}
+ {\leavevmode\leftskip 1.5cm\relax }
+ {\mdseries\normalsize\makebox[1cm][l]{\etocnumber}%
+ \etocname\nobreak\hfill\nobreak
+ \rlap{\makebox[1cm]{\etocpage}}\par}
+ {}
+\etocruledstyle[1]{\bfseries \Large My first \etoc: TOC von
+ \autoref{part:overview} (\nameref{part:overview})}
+\tableofcontents \ref {toc:overview}
+\endgroup
+\end{verbatim}
+
+\section{Ein zweites Beispiel}
+\label{sec:secondexample}
+
+Dieses zweite Beispiel zeigt nur den Inhalt von \autoref{part:linestyles} und
+\autoref{part:globalcmds}. Diese Auswahl wird durch die Technik von \emph{depth
+ tags} realisiert, die in \autoref{etocsettagdepth} und
+\autoref{ssec:tocwithdepthtags} beschrieben wird. Dessen Layout ist in etwa wie
+das von der \hyperref[toc:main]{Hauptinhaltsangabe}, obwohl die Zeilenstile ganz
+anders programmiert sind.
+
+\begingroup
+\newcommand*{\DotsAndPage}
+{\nobreak\leaders\hbox{\bfseries\normalsize\hbox to .75ex {\hss.\hss}}%
+ \hfill\nobreak
+ \makebox[\rightskip][r]{\bfseries\normalsize\etocpage}\par}
+
+\etocsetstyle {part}
+{\parindent 0pt
+ \nobreak
+ \etocskipfirstprefix}
+{\pagebreak[3]\bigskip}
+{\large\rmfamily\bfseries\scshape\centering
+ \etocifnumbered{Part \etocnumber{} -- }{}\etocname\par}
+{}
+
+\etocsetstyle {section}
+{\leftskip 0pt \rightskip .75cm \parfillskip-\rightskip
+ \nobreak\medskip
+ \etocskipfirstprefix}
+{\leftskip 0pt \rightskip .75cm \parfillskip-\rightskip
+ \pagebreak[1]\smallskip}
+{\normalsize\rmfamily\bfseries\scshape
+ \etocnumber. \etocname\DotsAndPage }
+{\parfillskip 0pt plus 1fil\relax }
+
+\etocsetstyle {subsection}
+{\leftskip1cm\rightskip .75cm \parfillskip 0pt plus 1fil\relax
+ \nobreak\smallskip}
+{}
+{\footnotesize\sffamily\mdseries\itshape
+ \etocname{} (\etocnumber, p. \etocpage). }
+{\par\medskip}
+
+\etocsettagdepth {preamble} {none}
+\etocsettagdepth {overview} {none}
+\etocsettagdepth {arbitrarily}{none}
+\etocsettagdepth {surprising} {none}
+\etocsettagdepth {linestyles} {subsection}
+\etocsettagdepth {globalcmds} {subsection}
+\etocsettagdepth {custom} {none}
+\etocsettagdepth {tips} {none}
+\etocsettagdepth {code} {none}
+
+\etocsettocstyle {\centering\LARGE\textsc{\contentsname}\par\nobreak\medskip}{}
+\etocsetnexttocdepth {subsection}
+\tableofcontents
+\endgroup
+
+Der Code:
+\begin{verbatim}
+\begingroup
+\newcommand*{\DotsAndPage}
+{\nobreak\leaders\hbox{\bfseries\normalsize\hbox to .75ex {\hss.\hss}}%
+ \hfill\nobreak
+ \makebox[\rightskip][r]{\bfseries\normalsize\etocpage}\par}
+
+\etocsetstyle {part}
+{\parindent 0pt
+ \nobreak
+ \etocskipfirstprefix}
+{\pagebreak[3]\bigskip}
+{\large\rmfamily\bfseries\scshape\centering
+ \etocifnumbered{Part \etocnumber{} -- }{}\etocname\par}
+{}
+
+\etocsetstyle {section}
+{\leftskip 0pt \rightskip .75cm \parfillskip-\rightskip
+ \nobreak\medskip
+ \etocskipfirstprefix}
+{\leftskip 0pt \rightskip .75cm \parfillskip-\rightskip
+ \pagebreak[1]\smallskip}
+{\normalsize\rmfamily\bfseries\scshape
+ \etocnumber. \etocname\DotsAndPage }
+{\parfillskip 0pt plus 1fil\relax }
+
+\etocsetstyle {subsection}
+{\leftskip1cm\rightskip .75cm \parfillskip 0pt plus 1fil\relax
+ \nobreak\smallskip}
+{}
+{\footnotesize\sffamily\mdseries\itshape
+ \etocname{} (\etocnumber, p. \etocpage). }
+{\par\medskip}
+
+\etocsettagdepth {preamble} {none}
+\etocsettagdepth {overview} {none}
+\etocsettagdepth {arbitrarily}{none}
+\etocsettagdepth {surprising} {none}
+\etocsettagdepth {linestyles} {subsection}
+\etocsettagdepth {globalcmds} {subsection}
+\etocsettagdepth {custom} {none}
+\etocsettagdepth {tips} {none}
+\etocsettagdepth {code} {none}
+
+\etocsettocstyle {\centering\LARGE\textsc{\contentsname}\par\nobreak\medskip}{}
+\etocsetnexttocdepth {subsection}
+\tableofcontents
+\endgroup
+\end{verbatim}
+
+\section{Verlinkte Liste der Hauptbefehle}
+% 16 octobre
+
+\begingroup\raggedcolumns
+\advance\linewidth18pt
+\begin{multicols}{3}\parindent0pt\relax
+\csb{etocstandardlines}\par
+\csb{etocdefaultlines}\par
+ \csb{etoctoclines}\par
+ \csb{etocsetstyle}\par
+\csb{etocname}\par
+\csb{etocpage}\par
+\csb{etocskipfirstprefix}\par
+ \csb{etocnumber}\par
+\csb{etocifnumbered}\par
+\csb{etocthename}\par
+\csb{etocthenumber}\par
+ \csb{etocthepage}\par
+\csb{etoclink}\par
+\csb{etocthelinkedname}\par
+ \csb{etocthelinkednumber}\par
+\csb{etocthelinkedpage}\par
+\csb{etocthelink}\par
+ \csb{etocsetlevel}\par
+\csb{etocsettocdepth}\par
+\csb{etocsetnexttocdepth}\par
+ \csb{etocsettocdepth.toc}\par
+\csb{etocobeytoctocdepth}\par
+ \csb{etocignoretoctocdepth}\par
+\csb{etocdepthtag.toc}\par
+\csb{etocsettagdepth}\par
+ \csb{etocobeydepthtags}\par
+\csb{etocignoredepthtags}\par
+ \csb{etocstandarddisplaystyle}\par
+\csb{etocsettocstyle}\par
+\csb{etocmulticolstyle}\par
+ \csb{etocmulticol}\par
+\csb{etoclocalmulticol}\par
+% \csb{etoctocstyle}\par
+% \csb{etoctocstylewithmarks}\par
+% \csb{etoctocstylewithmarksnouc}\par
+ \csb{etocruledstyle}\par
+\csb{etocruled}\par
+\csb{etoclocalruled}\par
+ \csb{etocframedstyle}\par
+\csb{etocframed}\par
+\csb{etoclocalframed}\par
+\csb{etocinline}\par
+ \csb{etocaftertitlehook}\par
+\csb{etocaftercontentshook}\par
+\csb{etocaftertochook}\par
+\csb{etoctoccontentsline}\par
+%\vspace{5\baselineskip}\hrule height 0pt
+\end{multicols}
+\endgroup
+
+
+
+% 15 octobre, je teste les tags
+\etocdepthtag.toc {arbitrarily}
+
+\part{Beliebig viele TOCs und lokale Versionen davon}
+% 13 octobre, ceci était une section avant
+
+\thispartstats
+
+\etocsettocstyle{}{}
+\etocstandardlines
+\localtableofcontents
+
+\section{Beschriften und anderswo wieder benutzen}
+
+\etoc erlaubt beliebig viele \csa{tableofcontents}-Befehle in
+ihrem Dokument. Die Zeilen- und Inhaltsangabenstile können
+natürlich dazwischen geändert werden. Außerdem setzt
+\csa{localtableofcontents} lokale Inhaltsangaben: \emph{z.\,B.} alle
+Abschnitte und Unterabschnitte innerhalb eines bestimmten
+Kapitels oder alle Unterabschnitte und tiefer innerhalb eines gegebenen
+Unterabschnitt usw.
+
+\etoc erlaubt das Labeln von Inhaltsangaben, beispielsweise mit
+\csa{label\{toc:A\}}, und wird es woanders
+\csa{tableofcontents}\csa{ref\{toc:A\}}, wenn gewollt, wieder anzeigen. Das
+eigentliche Layout (inklusive Titel) wird lokal bestimmt. Die Zeilen- und
+Inhaltsangabenstile (inklusive Titel) sind die aktuellen und der Wert von
+|tocdepth| leistet Folge. Hier ein Beispiel: Die Inhaltsangabe von
+\autoref{part:custom} ist innerhalb eines \hyperref[toc:d]{float}, der auf
+dieser Seite erscheint: \vpageref{toc:d}.
+\begin{figure}[ht!]
+ \centering
+ \begingroup
+ \etocstandardlines
+ \renewcommand{\etocbkgcolorcmd}{\color{green!5}}
+ \renewcommand{\etocbelowtocskip}{0pt\relax}
+ \fboxsep1ex
+ \etocframedstyle [1]{\fbox{\makebox[.5\linewidth]{\etocfontminusone
+ \hyperref[toc:c]{Ich bin von weit her}}}}
+ \tableofcontents \label{toc:d} \ref{toc:c}
+ \endgroup
+\end{figure}
+
+Wir benutzen dies:
+\begin{verbatim}
+\begin{figure}[ht!]
+ \centering
+ \begingroup
+ \etocstandardlines
+ \renewcommand{\etocbkgcolorcmd}{\color{green!5}}
+ \renewcommand{\etocbelowtocskip}{0pt\relax}
+ \fboxsep1ex
+ \etocframedstyle [1]{\fbox{\makebox[.5\linewidth]{\etocfontminusone
+ \hyperref[toc:c]{I am from far away}}}}
+ \tableofcontents \label{toc:d} \ref{toc:c}
+ \endgroup
+\end{figure}
+\end{verbatim}
+Wichtig: Man sollte \toc|\ref{toc:d}| nicht woanders benutzen. Um wieder zu
+Klonen, muss man eine Refernz zum Original-Label benutzen: \toc|\ref{toc:c}|.
+
+\section{Eine mächtige Funktionsweise von \etoc: Die Wieder\-zuweisung von
+Levels mit von \csbhyp{etocsetlevel}}
+
+Die intrinsischen Level, die durch \etoc manipuliert wurden, sind numerisch: von
+|-2| (welches |book| aus der |memoir|-Klasse entspricht) bis hinab zu |5|
+(|subparagraph|). Jedoch kann die Zuweisung eines numerischen Level zu einem
+gegebenen Namen zu jeder Zeit mit de Befehl
+\csb{etocsetlevel}\marg{level\_name}\marg{number} abgeändert werden. Daraus und
+aus der Benutzung des \LaTeX -|tocdepth|-Zählers resultieren mächtige
+Anwendungszwecke: \meta{level\_name} muss sich nicht mit dem eigentlichen
+Unterteilungsbefehls des Dokuments überschneiden. Außerdem kann \etoc genutzt
+werden, um beliebige "`Listen von Dingen"' ohne weitere Hilfsdateien, außer der
+|.toc|-Datei, zu erstellen. Dieses wird in \autoref{part:surprising} weiter
+erklärt.
+
+\begin{framed}
+ Es wird oft gesagt, dass Unterteilungslevel von |\part| in den
+ Standardklassen, die keinen |\chapter|-Befehl haben, gleich |0| sind, und in
+ denen mit |\chapter|-Befehl gleich |-1| ist. Das ist auch \emph{richtig}, wenn
+ man die \emph{automatische Nummerierung}, gesteuert durch den Wert des
+ |secnumdepth|-Zählers, betrachtet. Aber es ist \emph{falsch}, wenn man den
+ Effekt des |tocdepth|-Zählers sieht. Setzt man |tocdepth| in der |article|
+ -Klasse direkt vor |\tableofcontents| auf |-1|, verhindert das \emph{nicht},
+ dass Abschnitte in der Inhaltsangabe aufzutauchen. Man muss es dafür auf |-2|
+ stellen, ganz egal ob in der |article|- oder der |book|-Klasse.
+
+ Die kanonischen Level, grundsätzlich bekannt aus \etoc, sind
+ von Relevanz für den \textbf{|tocdepth|}-Zähler in den Standardklassen
+ und werden in der folgenden Tabelle rekapituliert:
+
+ \centeredline{
+ \fbox{\begin{tabular}{rc}
+ (|memoir| class) book&-2\\ part&-1\\ chapter&0 \\
+ section&1\\ subsection&2 \\
+ subsubsection&3 \\ paragraph&4 \\ subparagraph& 5
+ \end{tabular}}}
+
+\smallskip Mit \etoc kann der Nutzer innerhalb einem gegebenen Unterabschnitt
+einfach lokale Inhaltsangaben ausgeben. Darin werden, wenn gewollt,
+Unterabschnitte in dem Stil von Abschnitten, Paragraphen in dem Stil von
+Unterabschnitten und Unterparagraphen im Stil von Unter-Unterabschnitten
+gedruckt. Demnach kann man entscheiden alles auf das Level |6| zu setzen (wird
+von \etoc nie angezeigt), außer z.\,B. Paragraphen, die auf Level |1| befördert
+werden. So erstellt man eine schöne Inhaltsangabe aller Paragraphen eines
+Dokuments. (|tocdepth| mindestens |1|)\footnotemark
+\end{framed}
+
+\footnotetext{Normalerweise sollte man diese Inhaltsangabe der Paragraphen
+nicht im Kompabtibilitätsmodus ausgeben. Der würde darauf bestehen, einen
+gigantischen Abstand nach rechts einzufügen.}
+
+\section{Die \csbhyp{etoc\-set\-toc\-depth}- und
+ \csbhyp{etoc\-set\-next\-toc\-depth}-Befehle}
+\label{etocsettocdepth}
+\label{etocsetnexttocdepth}
+
+Der |tocdepth|-Zähler hat keinen Einfluss darauf, was in die |.toc|-Datei
+geschrieben wird; dessen Einfluss ist ausschließlich auf das Setzen der
+Inhaltsangabe gerichtet. In der Standardklasse ist nur ein |\tableofcontents|
+möglich, wobei mit \etoc beliebig viele erlaubt sind. Dadurch könnte man
+|tocdepth| immer und immer wieder auf einen passenden Wert ändern (der
+entscheidet, wie tief die Abschnitte angezeigt werden sollen) bis die
+Inhaltsangabe gesetzt werden muss.
+
+\etoc bietet \csb {etocsettocdepth}\marg{level} an, wessen verpflichtendes
+Argument entweder (von |-3| bis |5|) oder einen Unterteilungstyp wie
+|subsection| oder |subsubsection| oder alle anderen, die davor in \etoc mit
+\csb{etocsetlevel} (die Schlüsselworte |all| und |none| erkannt werden,
+allerdings nicht in Zusammenhang mit der Dokumentenunterteilung) deklariert
+wurden. Das tut das passende |\setcounter{tocdepth}{numeric_level}|.
+
+Wie in dem nächsten Unterabschnitt erklärt wird, wird |tocdepth| von |hyperref|
+benutzt. Man muss die folgenden Schritte befolgen, um den Einfluss von
+|hyperref|`s Änderungen auf die Lesezeichen zu verhindern. \etoc hat \csb
+{etocsetnexttocdepth}\marg{level}. Dessen Einfluss endet direkt nach der
+nächsten Inhaltsangabe. Daraus folgt, dass
+\texttt{\textbackslash\foreignlanguage{english}{invisibletableofcontents}}
+essenziell für |\etocsetnexttocdepth{none}\tableofcontents| ist.
+
+Der einfachste Weg ist also, eine einfache Instanz des
+\csb{etocsettocdepth}-Befehl nach |\begin{document}| und vor dem ersten
+ |\tableofcontents| mit dem tiefsten Level als Argument zu setzen. -- Dieses
+ dann lokal zu benutzen, wo es gebraucht wird, anhand von
+ \csb{etocsetnexttocdepth} vor |\tableofcontents| oder |\localtableofcontents|.
+
+\subsection{Die hyperref-Option \emph{bookmarksdepth}}
+\label{ssec:bookmarksdepth}
+
+Wenn man den Zähler |tocdepth| verändert, um \toc oder \localtoc
+mehrfach zu benutzen, sollte man gewahr sein, dass das Paket
+|hyperref| standardmäßig den Wert des \emph{aktuellen} Wertes
+der |tocdepth|-Zählers berücksichtigt, um zu entscheiden, ob die |pdf|-Datei
+Lesezeichen, korrespondierend mit den Unterteilungsbefehlen, die in der
+Quelldatei vorgefunden wurde, anzeigt. Dadurch muss man typischer Weise
+den |tocdepth|-Zähler auf seinen vorigen Wert zurücksetzen, nachdem man
+ihn temporär für eine gegebene Inhaltsangabe modifiziert hat.
+
+Alternativ gibt es die \emph{bookmarksdepth=n}-Option des |hyperref|-Pakets.
+Dabei ist \emph{n} die gewünschte maximale Lesezeichen-Tiefe. Diese kann
+numerisch sein oder der Name eines Levels, das |hyperref| bekannt ist.
+
+Wir sind in dieser Dokumentation schon an |bookmarksdepth=3| vorbeigekommen. Es
+war eine Option von |hyperref|. Auch wenn |tocdepth| nach dem Ausgeben einer
+Inhaltsangabe aus Nachlässigkeit auf |1| stehen gelassen wurde, so wurden der
+Lesezeichenbaum der |pdf|-Datei nicht verändert. Da \csb{etocsetnexttocdepth}
+jetzt zu dem Paket hinzugefügt wurde, ist keine Verwendung mehr für
+|bookmarksdepth=3|.
+
+\section{Der Befehl \csbhyp{etoc\-set\-toc\-dep\-th.toc}}
+\label{etocsettocdepth.toc}
+
+Dieser Befehl \csb{etocsettocdepth.toc} implementiert einige Funktionalitäten
+von Paket |tocvsec2|\footnote{\url{http://ctan.org/pkg/tocvsec2}. Ich danke D.B.
+ meine Aufmerksamkeit auf die Inkompatibilität dieses Pakets mit \etoc
+ gerichtet zu haben.}. Dieses Paket war inkompatibel mit \etoc. Es kann nun
+noch für seine mit |secnumdepth| in Verbindung stehenden Befehle genutzt werden,
+alle mit |toc| in Verbindung stehenden Aktivitäten werden jedoch durch \etoc
+abgebrochen.
+
+Das Handeln von \csb{etocsettocdepth.toc} ist grundlegend verschieden zu
+\csb{etocsettocdepth}. Anstatt den |tocdepth|-Zähler direkt zu verändern,
+fügt es der |.toc|-Datei eine Linie an, die, wenn ausgeführt, in einer
+Inhaltsangabe diese Veränderung ausführen wird.
+
+Der Befehl \csb{etocsettocdepth.toc} akzeptiert, wie
+\csb{etocsettocdepth}, Namen und numerische Argumente.
+In dem Fall eines Namen als Argument ist der tatsächliche numerische
+Wert noch nicht festgelegt, wenn |.toc|-Datei erstellt wird. Es wird
+der Wert sein, der aktuell für das benannte Level der Inhaltsangabe
+(ohne |\etocignoretoctocdepth| gemacht zu haben) bei
+jeder Erstellung einer Inhaltsangabe spezifiziert wird.
+
+Der |tocdepth|-Zähler wird niemals auf einen Wert gesetzt, der feiner
+als der ist, mit dem er zu Beginn der Inhaltsangabe initialisiert wurde.
+Also ist das Hinzufügen von \csb{etocsettocdepth.toc} im Dokument ein Weg
+die Tiefe einer lokalen Inhaltsangabe einzugrenzen. Zum Beispiel,
+um die Einfügung von Unter-unter-Abschnitten oder eines gegebenen
+Kapitels zu unterbinden.
+
+
+Dieses
+{\fbox{wird in allen Inhaltsangaben ausgeführt.}}
+
+\subsection{Die Befehle \csbhyp{etocobeytoctocdepth} und \csbhyp{etocignoretoctocdepth}}
+\label{etocobeytoctocdepth}
+\label{etocignoretoctocdepth}
+
+
+Also wird \csb{etocignoretoctocdepth} gesetzt, um den
+\csa{etocsettocdepth.toc}-Mecha\-nismus abzubrechen, wenn
+benötigt; und \csb{etocobeytoctocdepth} wird es
+reaktivieren. Das Paket führt \csb{etocobeytoctocdepth} zu Beginn aus.
+
+
+\section{Die Befehle \csbhyp{etoc\-depth\-tag.toc} und \csbhyp{etocsettagdepth}}
+\label{etocdepthtag.toc}
+\label{etocsettagdepth}
+
+Wie oben erwähnt, wenn das Argument für \csb{etocsettocdepth.toc} kein
+numerisches sondern ein Namen-Level ist, wird durch die tatsächliche Nummer bei
+der Erstellung der Inhaltsangabe entschieden. Dadurch und anhand der
+\emph{Schiebe-Mechanismen von \etoc} kann man einen sehr flexiblen Aufbau
+erreichen: Man erklärt mit \csb{etocsetlevel} zuerst ein paar Platzhaltelevel,
+z.\,B. |partIII|, und weist ihm das unsichtbare Level |6| zu. Dann, vor dem
+dritten |\part| Befehl, fügt man \csb{etocsettocdepth.toc}|{partIII}| ein. An
+dem Ort, an dem der Effekt enden soll, setzt man
+\csb{etocsettocdepth.toc}|{all}| ein. Es ist nun möglich, jedes Mal, wenn man
+eine Inhaltsangabe setzen will, das feinste Level der Einträge aus dem dritten
+Teil zu spezifizieren. Man muss z.\,B. nur \csa{etocsetlevel}|{partIII}{1}|
+schreiben. Es wird die Abschnitte limitieren (sofern |tocdepth| mindestens auf
+diesem Level war, wenn die Inhaltsangabe ausgegeben wurde).
+
+Die Methode hat ein paar Beschränkungen:
+\begin{enumerate*}[label={(\roman*)}]
+ \item Das zweite Argument von \csb{etocsetlevel} muss numerisch sein;
+ \item es kann nicht auf |-3| gesetzt werden (was nötig wäre, wenn man ganze
+ Bücher aus der Inhaltsangabe streichen wöllte in den Klasse |memoir|);
+ \item es ist ein bisschen getrickst, seit |partIII| kein richtiger unterteilender
+ Abschnitt ist sondern nur ein \emph{tag}.
+\end{enumerate*}
+
+Version |1.07h| enthält den Befehl \csb{etocdepthtag.toc}, der
+es einfacher macht, diese variable lokale Kontrolle des |tocdepth| zu erreichen,
+wenn die Inhaltsangabe erstellt wird.
+
+
+Es wird als \csb{etocdepthtag.toc}\marg{tag\_name} genutzt, wo der
+\meta{tag\_name} irgendetwas ist, das wird den Tag in die |.toc|-Datei setzen.
+Wenn die Inhaltsangabe erstellt wird, initiiert das eine Reihe von Befehlen
+\csb{etocsettagdepth}\marg{tag\_name}\marg{level}, wo das \meta{level} entweder
+numerisch (von |-3| bis |5|) oder ein Name einer unterteilenden Einheit, die
+\etoc bekannt ist, oder |none| oder |all|. Der Effekt von den Tags innerhalb der
+|.toc|-Datei ist es, den |tocdepth|-Zählers auf den gewünschten Wert zu setzen
+(das kann wie schon erwähnt, nicht feiner sein als der initiale Wert des
+|tocdepth|-Zählers).
+
+Die hinzugefügte Flexibilität wirkt sich insofern aus, dass \csb{etocsetlevel}
+nicht mehr mit dieser getricksten Methode, bei der man Level-Tiefen und |none|
+und |all| benutzt hat.
+
+Wie immer, wenn die Tag-Tiefen gesetzt wurden, bleiben sie wirkend, bis sie
+wieder definiert werden oder ihr Wirkungsgebiet beendet wird, indem die
+umschließende Gruppe geschlossen wird. Für ein Beispiel, siehe hier:
+\autoref{ssec:tocwithdepthtags}.
+
+
+\subsection{Die Befehle \csbhyp{etocobeydepthtags} und \csbhyp{etocignoredepthtags}}
+\label{etocobeydepthtags}
+\label{etocignoredepthtags}
+
+
+Nach \csb{etocignoredepthtags} werden die |.toc|-Tiefentags ignoriert
+(nach \csb{etocdepthtag.toc} funktionieren sie jedoch noch). Das Paket
+führt zu Beginn \csb{etocobeydepthtags} aus. Dieses befielt \etoc auf die
+gefundenen Tags in der |.toc|-Datei zu reagieren.
+
+\section{Befehle zur \texorpdfstring{\texttt{.toc}}{.toc}-Datei hinzufügen}
+\label{sec:addingtotoc}
+
+Wir beschrieben oben die Befehle \csb{etocsettocdepth.toc} und
+\csb{etocdepthtag.toc}, welche beide Befehle in die |.toc|-Datei einfügen. Ein
+noch allgemeinerer Weg, um "`action tags"' in die |.toc|-Datei einzufügen, wäre
+vorstellbar, allerdings würde auch nur indirekt
+|\addtocontents{toc}{\something}| benutzt werden.
+
+Man sollte vorsichtig sein, wenn man auf diesem Weg Dinge zur |.toc|-Datei
+hinzufügt. Zum Beispiel das Einfügen von
+\csa{addtocontents}|{toc}{\string\clearpage}| direkt vor einem \csa{part} behebt
+den Fehler, dass Teileinträge in Inhaltsangaben vom Rest getrennt am Ende der
+Seite auftauchen, kann aber auch Probleme mit mehreren Inhaltsangaben haben:
+\csa{clearpage} wird jedes Mal ausgeführt, wenn \etoc über ein \toc oder
+\localtoc stolpert. Die schlauere Methode wäre es:
+{\csa{addtocontents}|{toc}{\string\myclearpage}|,} den |\let\myclearpage\relax|,
+man hätte den Befehl |\let\myclearpage\relax| zu Beginn des Dokuments und wenn
+benötigt, benutzt man etwas wie:
+\begin{verbatim}
+\let\myclearpage\clearpage
+\tableofcontents
+\let\myclearpage\relax
+\end{verbatim}
+Die |memoir|-Klasse besitzt den Befehl \csa{settocdepth}, der einen
+\csa{changetoc\-depth}-Befehl in die |.toc|-Datei setzt. Dieses
+beeinflusst die Schriftsetzung von \etoc bei \emph{allen} Inhaltsangaben mit
+möglichen unvorhersehbaren Ergebnissen: Stellen Sie sich vor, irgendwo im Dokument
+stünde \csa{settocdepth}|{chapter}|, um die Abschnitte von Unterabschnitten
+nicht in der Hauptinhaltsangabe aufzulisten. In diesem Fall würde eine
+lokale Inhaltsangabe in einem dieser Kapitel einen Titel ohne jeden Eintrag ausgeben.
+
+Da die |memoir|-Klasse von Haus aus schon mehrfache \toc erlaubt, tritt dieser
+Fehler schon viel früher, und unabhängig von \etoc, auf. Siehe Seite 170 der
+|memoir|-Anleitung.
+
+Für diesen Spezialfall gibt es folgende Befehle: \csb{etocsettocdepth.toc},
+\csb{etocignoretoctocdepth}, \csb{etocobeytoctocdepth} oder deren
+Varianten \csb{etocdepthtag.toc} und \csb{etocsettagdepth}.
+
+Nebenbei, jeder |\setcounter{tocdepth}{n}|-Befehl fügt direkt in die
+|.toc|-Datei hinzu. Es scheint so, dass seine Wirkung ist (seit der Version
+|1.07g|), beendet den Abschluss jedes Inhaltsverzeichnis zu beenden, automatisch
+wird ein |\setcounter{tocdepth}{previous_value}| genommen, mit dem Wert, aktiv
+ein Inhaltsverzeichnis zu nehmen.
+
+\subsection{Die hyperref-Option \emph{hidelinks}}\label{ssec:hidelinks}
+
+Die farbigen Links (und auch die Kastenlinks) sind einwenig ärgerlich, wenn in
+Inhaltsverzeichnissen verwendet, insbesonders, wenn das Dokument \etoc verwendet
+und viele von ihnen beinhaltet! Man kann sich wünschen, farbige Links
+\emph{ausschließlich} für Inhaltsverzeichnisse! In der Tat, warum sollten in
+TOCs diese Dinge gerahmt oder farbig sein müssen, wenn der Benutzer
+\emph{bereits erwartet, dass dort Links sind}?
+
+Ich nehme den folgenden Trick: Entweder in der Präambel zu nehmen
+|\AtBeginDocument| oder danach |\begin{document}|, ich habe den Befehl \centeredline{|\addtocontents{toc}{\protect\hypersetup{hidelinks}}|}
+
+ \begin{framed}
+ Alle TOCs, die von \etoc gesetzt sind, haben ihre Inhalte in eine
+ Gruppierung getan, (wie in einer Umgebung eingeschlossen). So wird der
+ Befehl \csa{hypersetup}|{hidelinks}| ausgeführt von \emph{jedem} TOC, aber
+ sein Effekt wird limitiert zu dem TOC.
+ \end{framed}
+
+Experimentell habe ich herausgefunden, dass die Option |hidelinks| oftmals mit
+|\hypersetup| eingestellt werden kann (Dies ist nicht bei allen
+|hyperref|-Optionen der Fall).
+
+
+
+\section{Zwei Beispiele}
+
+\subsection{Eine wunderschöne Beispielthese}
+
+Hier ist noch ein relativ einfaches Beispiel für die Verwendung der
+Paket-Funktionsweisen. Lassen Sie uns einige Linienstile einrichten. Wir wählen
+einen Stil für Abschnitte und Unterabschnitte, welche für die Abschnitte und
+Unterabschnitte in einem durchschnittlichen Memoirenumfang geeignet wären. Die
+Linienstilspezifikationen haben eine gewisse Redundanz für die Klarheit, und sie
+interessieren sich nicht dafür, was bei möglichen Seitenumbrüchen zu tun ist.
+Auch sind sie nicht besorgt über die potentielle mehrspaltige Nutzung.
+
+\begin{verbatim}
+\begingroup % wir starten, um eine Gruppe zu behalten
+\newlength{\tocleftmargin} \setlength{\tocleftmargin}{5cm}
+\newlength{\tocrightmargin} \setlength{\tocrightmargin}{1cm}
+
+\etocsetstyle{section} % wird vorgegeben, ein Kapitel zu sein
+{\addvspace{1ex}\parfillskip0pt
+ \leftskip\tocleftmargin % (bereits im Titel getan)
+ \rightskip\the\tocrightmargin plus 1fil
+ \parindent0pt\color{cyan}} % (bereits getan)
+{\bfseries\LARGE\upshape\addvspace{1ex}\leavevmode}
+{\llap{Chapter\hspace{.5em}{\etocnumber}\hspace{.75cm}}\etocname
+ \hfill\makebox[-\tocrightmargin][l]{\makebox[0pt]{\etocpage}}\par}
+{}
+
+\etocsetstyle{subsection} % wird vorgegeben, ein Abschnitt zu sein
+{}
+{\mdseries\large\addvspace{.5ex}\leavevmode}
+{\llap{\etocnumber\hspace{.75cm}}\textit{\etocname}%
+ \hfill\makebox[-\tocrightmargin][l]{\makebox[0pt]{\etocpage}}\par}
+{}
+
+\def\tmptitle{My Beautiful Thesis}
+\etocsettocstyle{\color{cyan}\parindent0pt \leftskip\tocleftmargin
+ \leavevmode\leaders\hrule height 1pt\hfill\
+ \huge\textit{\tmptitle}\par}{\bigskip}
+
+\tableofcontents \ref{toc:overview}
+\endgroup
+\end{verbatim}
+
+\begingroup
+\newlength{\tocleftmargin}
+\setlength{\tocleftmargin}{5cm}
+\newlength{\tocrightmargin}
+\setlength{\tocrightmargin}{1cm}
+
+\etocsetstyle{section}
+{\addvspace{1ex}\parfillskip0pt
+ \leftskip\tocleftmargin
+ \rightskip\the\tocrightmargin plus 1fil
+ \parindent0pt\color{cyan}}
+{\bfseries\LARGE\upshape\addvspace{1ex}\leavevmode}
+{\llap{Kapitel\hspace{.5em}{\etocnumber}\hspace{.75cm}}\etocname
+ \hfill\makebox[-\tocrightmargin][l]{\makebox[0pt]{\etocpage}}\par}
+{}
+
+\etocsetstyle{subsection}
+{}
+{\mdseries\large\addvspace{.5ex}\leavevmode}
+{\llap{\etocnumber\hspace{.75cm}}\textit{\etocname}%
+ \hfill\makebox[-\tocrightmargin][l]{\makebox[0pt]{\etocpage}}\par}
+{}
+
+\def\tmptitle{Meine wunderschöne These}
+
+\etocsettocstyle{\color{cyan}\parindent0pt\leftskip\tocleftmargin
+ \leavevmode\leaders\hrule height 1pt\hfill\
+ \huge\textit{\tmptitle}\par}{\bigskip}
+
+\tableofcontents \ref{toc:overview}
+% And again, for the fun of it:
+% \def\tmptitle{My Very Beautiful Thesis}
+% \tableofcontents \ref{toc:c}
+\endgroup
+
+
+\subsection{Ein TOC mit einer Hintergrundfarbe}\label{ssec:again}
+
+Lassen Sie uns nun einige anspruchsvollere Linienstile versuchen. Das Display
+wird den Paket-Befehl \csa{etocframedstyle} verwenden, damit das erzeugte
+Inhaltsverzeichnis auf eine einzige Seite passt. Wir wickeln es in eine
+\hyperref[toc:floating]{Figur-Umgebung}, damit es auf der aktuellen Seite
+angezeigt wird. \vpageref{toc:floating}.
+
+
+\begin{figure}[htbp!]\centering
+\colorlet{subsecnum}{black}
+\colorlet{secbackground}{green!30}
+\colorlet{tocbackground}{red!20!green!20}
+
+\renewcommand{\etocbkgcolorcmd}{\color{tocbackground}}
+\renewcommand{\etocleftrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocrightrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocbottomrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etoctoprulecolorcmd}{\color{tocbackground}}
+
+\renewcommand{\etocleftrule}{\vrule width 3cm}
+\renewcommand{\etocrightrule}{\vrule width 1cm}
+\renewcommand{\etocbottomrule}{\hrule height 12pt}
+\renewcommand{\etoctoprule}{\hrule height 12pt}
+
+\renewcommand{\etocinnertopsep}{0pt}
+\renewcommand{\etocinnerbottomsep}{0pt}
+\renewcommand{\etocinnerleftsep}{0pt}
+\renewcommand{\etocinnerrightsep}{0pt}
+
+\newcommand\shiftedwhiterule[2]{%
+ \hbox to \linewidth{\color{white}%
+ \hskip#1\leaders\vrule height1pt\hfil}\nointerlineskip
+\vskip#2}
+
+\etocsetstyle{subsubsection}{\etocskipfirstprefix}
+{\shiftedwhiterule{\leftskip}{6pt}}
+{\sffamily\footnotesize
+\leftskip2.3cm\hangindent1cm\rightskip.5cm\noindent
+\hbox to 1cm{\color{subsecnum}\etocnumber\hss}%
+\color{black}\etocname\leaders\hbox to .2cm{\hss.}\hfill
+\rlap{\hbox to .5cm{\hss\etocpage\hskip.1cm}}\par
+\nointerlineskip\vskip3pt}
+{}
+
+\etocsetstyle{subsection}{\etocskipfirstprefix}
+{\shiftedwhiterule{1.5cm}{6pt}}
+{\sffamily\small
+\leftskip1.5cm\hangindent.8cm\rightskip.5cm\noindent
+\hbox to .75cm{\color{subsecnum}\etocnumber\hss}%
+\color{black}\etocname\leaders\hbox to .2cm{\hss.}\hfill
+\rlap{\hbox to .5cm{\hss\etocpage\hskip.1cm}}\par
+\nointerlineskip\vskip3pt}
+{}
+
+\newcommand{\coloredstuff}[2]{%
+ \leftskip0pt\rightskip0pt\parskip0pt
+ \fboxsep0pt % \colorbox uses \fboxsep also when no frame!
+ \noindent\colorbox{secbackground}
+ {\parbox{\linewidth}{%
+ \vskip5pt
+ {\noindent\color{#1}#2\par}\nointerlineskip
+ \vskip3pt}}%
+ \par\nointerlineskip}
+
+% v1.07l on the occasion of traduction into German documentation:
+ % APRIL 26, 2014 Improvement in the section style for better placement of
+ % page number when the section name is more than one line long. Use of
+ % \makebox rather than \hbox, to be more LaTeX like.
+\etocsetstyle{section}
+{\coloredstuff{blue}
+ {\hfil \bfseries\large Inhalt von Teil Eins\hfil}}
+{\vskip3pt\sffamily\small}
+{\coloredstuff{blue}
+ {\leftskip1.5cm\rightskip.5cm\parfillskip-\rightskip
+ \makebox[0pt][r]{\makebox[.5cm][l]{\etocnumber}}%
+ \etocname\hfill{\makebox[.5cm][r]{\etocpage\hspace{.1cm}}}}%
+ \vskip6pt }
+{}
+
+
+% attention car \ref{toc:floating} fera référence au compteur de
+% toutes les toc, pas visibletoc.
+
+\etocframedstyle[1]{}
+\tableofcontents \label{toc:floating} \ref{toc:overview}
+\vspace{-\baselineskip}
+\centeredline{|\tableofcontents \ref{toc:overview}|
+(\emph{cf.} \autoref{ssec:again} and \hyperref[toc:clone]{this other toc})}
+\end{figure}
+
+Das aktuelle Design ist nicht in \etoc vorgefertigt; sondern nutzt seine
+`eingerahmten' Stile mit einer Hintergrundfarbe. Die Rahmengrenzen wurden so
+gesetzt, dass die gleiche Farbe, wie die Hintergrundfarbe, für die gesamte Sache
+dienen soll. Dieses Design (mit anderen Farben) wird auch für
+\hyperref[toc:clone]{dieses andere Inhaltsverzeichnis} benutzt, und der Leser
+bezieht sich auf seine \hyperref[ssec:tocclone]{Unterabschnitte}, welche für die
+Kodierung vorgesehen sind.
+
+
+\etocdepthtag.toc {surprising}
+\part{Ãœberraschende Anwendungen von \etoc}
+\label{part:surprising}
+
+\thispartstats %% (pas de sous-section)
+
+% in dtx of release 1.07h there was here a \thisspecialstats, but it
+% originated from the period when this \part was only a \section. So its
+% effect was not the intended one, basically it had the same effect as this:
+\etocstandardlines
+\etocsettocstyle {}{}
+\localtableofcontents
+
+\section{Das TOC für TOCs}
+
+\begingroup % \endgroup just after the \tableofcontents command
+\etocinline
+\etocsetlevel{part}{1}
+\etocsetlevel{visibletoc}{0}
+\etocsetstyle{visibletoc}
+ {\etocskipfirstprefix}
+ {, }
+ {{\color{niceone}\etocname}}
+ {}
+\etocsettocstyle{}{}
+\etocsetnexttocdepth{visibletoc}
+
+Hier ist die nummerierte und verknüpfte Liste aller Tabellen von Inhalten, die
+in diesem Dokument dargestellt sind \footnote{Die Inhaltsverzeichnisse können
+ "`Schwimmer"' setzen, um die Reihenfolge zu ändern: die Zahlen werden in der
+ Reihenfolge der Inhaltsverzeichnisse in dem Dokument aufgeführt; aber die
+ Nummerierung selbst ist von der Reihenfolge der Inhaltsverzeichnisse in der
+ \emph{Quelle} dieses Dokumentes \ldots}
+\tableofcontents\endgroup. Und hier erhalten wir, was
+wir gerade geschrieben haben:\par\smallskip
+{\leftskip1cm\rightskip2cm
+ \ttfamily\small\baselineskip11pt \noindent Hier ist die
+ nummerierte und verknüpfte Liste aller Tabellen von Inhalten, die in
+ diesem Dokument dargestellt sind:~\string\tableofcontents.\par}
+
+Die vorausgehenden Arbeiten waren wie folgt. Zuerst definierten wir einen Zähler
+|visibletoc|, dessen Berufung es ist, bei jedem angezeigten Inhaltsverzeichnis
+erhöht zu werden. \etoc hat einen eigenen Zähler, aber es zählen alle
+Inhaltsverzeichnisse, auch wenn diese nicht angezeigt werden, da die |tocdepth|
+Werte |-2| oder |-3| waren.
+
+Wir könnten manuell |\refstepcounter{visibletoc}| und |\label| an allen
+geeigneten Stellen im Dokument hinzufügen, und wir würden dann |\ref|- Befehle
+verwenden, aber dies stellt eine hohe manuelle Bearbeitung der Quelle dar.
+
+Es gibt eine viel bessere Möglichkeit: Es gibt einen Aufhänger
+\csb{etocaftertitlehook} und wir sagten, es erhöht sich der |visibletoc|-Zähler
+und wir schreiben eine Anlage zu der |.toc|-Datei, in analoger Weise zu dem
+Gliederungsbefehl, zum Beispiel |Kapitel|, |Abschnitt| oder |Unterabschnitt|.
+Wie \etoc seinen eigenen Zähler erhöht, noch bevor der Titel des
+Inhaltsverzeichnisses gesetzt wird, bietet diese (die meiste Zeit) einen
+besseren Link-Zielpunkt als jeder Zähler von \csa{etocaftertitlehook} (der Link
+wird nach dem Titel platziert). Anstatt mit |\refstepcounter{visibletoc}|,
+innerhalb von \csa{etocaftertitlehook}, formulieren wir
+|\stepcounter{visibletoc}|, dann folgt der Befehl
+\csb{etoctoccontentsline}|{visibletoc}{\thevisibletoc}|. Dieser \etoc-Befehl
+\csb{etoctoccontentsline}\marg{level\_name}\marg{name} hat die gleiche Wirkung
+wie: \centeredline{| ||\addcontentsline{toc}|\marg{level\_name}\marg{name}} aber
+sein Nutzen ist es \footnote{Mit \csa{addtocontents} anstatt
+ \csa{addcontentsline}.}, die Reparatur der automatischen Erstellung von
+Lesezeichen zu verhindern mit \csa{addcontentsline} bei dem |hyperref|-Paket,
+wie die pdf-Lesezeichen machen sie nicht viel Sinn hier (und würde eine
+Beschwerde bezüglich von |hyperref| eruieren, denn das Lesezeichen-Niveau ist
+`unbekannt').\footnote{ Das Paket bietet eine Stern-Variante
+ \staritb{etoctoccontentsline}, die zulässt, dass die Erstellung von
+ Lesezeichen und das Haben eines dritten obligatorischen Arguments, welches das
+ Lesezeichen-Niveau darstellt, funktioniert; abhängig vom Kontext kann die
+ Hauptrolle und die Nicht-Stern-Variante profitabel durch \csa{phantomsection}
+ sein.}
+
+Schließlich war in der Präambel des Dokuments |\etocsetlevel{visibletoc}{6}|.
+Das Niveau |6| (oder etwas mit einer höheren Zahl) wird ignoriert, auch wenn
+|tocdepth| zum Beispiel den Wert |10| hat; das ist unabhängig davon, ob \etoc
+die Dokumentenklasse als Standardlinien oder als eigene Linienstile nutzt oder
+die, die vom Benutzer mit \csa{etocsetstyle} Befehl definiert wurden. Es gibt
+also keinen Grund zur Sorge, dass etwas schief gehen könnte.
+
+Dann haben wir hier nur |\etocsetlevel{visibletoc}{0}| gesetzt. Und nur diese
+Art von Einträgen weisen wir vorübergehend eine |Teil|- und |Kapitel|-Ebene |1|
+zu (oder etwas höher als null) und setzen |tocdepth| auf den Wert |0|. Wir haben
+auch \csa{etocsetstyle\{visibletoc\}\{\string\etocskipfirstprefix\}\{,
+ \}\{\string\etocname\}\{\}}, welche eine innere Anzeige mit dem Komma als
+Trennzeichen definiert. Wie \etoc Aspekte |\par| automatisch als Standard das
+Inhaltsverzeichnis setzt, verwendeten wir den Befehl \csb{etocinline} (auch als
+\cs{etocnopar} bekannt), welches die Reaktion ausmacht .
+
+Hier sind die Details der Implementierung:
+
+\begingroup
+\begin{verbatim}
+ < in der Prämbel >
+\newcounter{visibletoc}
+\renewcommand{\etocaftertitlehook}
+ {\stepcounter{visibletoc}\etoctoccontentsline{visibletoc}{\thevisibletoc}}
+\etocsetlevel{visibletoc}{6}
+\begin{document}
+ < document body >
+\subsection{Surprising uses of etoc}
+\begingroup
+ \etocinline
+ \etocsetlevel{part}{1}
+ % \etocsetlevel{chapter}{1} % (keine Kapitel in scrartcl Klasse)
+ \etocsetlevel{visibletoc}{0}
+ \etocsetstyle{visibletoc}
+ {\etocskipfirstprefix}{, }{{\color{niceone}\etocname}}{}
+ \etocsettocstyle{}{} % keine Titel, Regeln oder Rahmen festgelegt!
+ \etocsetnexttocdepth{visibletoc} % zeigt nur die `visibletoc' Einträge an aus .toc
+
+Hier ist die nummerierte und verknüpfte Liste aller Tabellen von Inhalten,
+die in diesem Dokument angezeigt werden: \tableofcontents.
+\endgroup
+\end{verbatim}
+
+\endgroup
+
+Nach |\etocsetstyle{visibletoc}{..}{..}{..}{..}|, wird für alle zukünftigen
+Inhaltsverzeichnisse (nicht im
+Kompatibilitätsmodus) der definierte Stil für das Niveau
+|0| verwendet (was normalerweise der Pegel für ein Kapitel
+ist). Um diese Änderung auf die einfachste Art und Weise zu halten, muss man
+alles in eine Gruppe setzen.
+
+Der \autoref{subsec:interverting} gibt eine andere Verwendung
+von Verschachtelungsstufen an.
+
+\section{Willkürliche "`Listen von \ldots "', \csbhyp{etoctoccontentsline}}
+\label{etoctoccontentsline}
+
+Die Idee der Internabwehr ist leistungsfähig und ermöglicht
+\etoc-Anzeigelisten, um beliebige Dinge in dem Dokument enthalten zu lassen.
+Und all das mit noch nichts anderem als der
+|.toc| Datei!
+Beispiel: Stellen Sie sich ein Dokument mit Dutzenden von Ãœbungen vor,
+vielleicht als |\newtheorem{exercise}{}[section]|.
+Lassen Sie uns erklären, wie man \etoc anweist, eine verlinkte Liste all dieser
+Übungen anzuzeigen. Dafür haben wir in der Präambel geschrieben:
+\begin{verbatim}
+ \newtheorem{exerci}{}[section]
+ % the exercice number will be recoverable via \etocname: v--here--v
+ \newcommand*{\exercisetotoc}{\etoctoccontentsline{exercise}{\theexerci}}
+ \newenvironment{exercise}{\begin{exerci}\exercisetotoc}{\end{exerci}}
+ \etocsetlevel{exercise}{6}
+\end{verbatim}
+Auf diese Weise wird \csa{etocname} die Ãœbungsnummer vergeben (aber
+\csa{etocnumber} wird leer sein). Hätten wir stattdessen
+\begin{verbatim}
+ \newcommand*{\exercisetotoc}
+ {\etoctoccontentsline{exercise}{\protect\numberline{\theexerci}}}
+\end{verbatim}
%
-% It is also possible to run latex/pdflatex directly on etoc.dtx
+verwendet, wäre die Übungsnummer via \csa{etocnumber} verfügbar und
+\csa{etocname} wäre leer gewesen. Es spielt keine Rolle, welches der beiden
+Verfahren verwendet wird. Der \etoc Befehl \csa{etoctoccontentsline}|{..}{..}|
+wird als Ersatz für \csa{addcon\-tentsline}|{toc}{..}{..}| verwendet: Das ist
+die, die durch das Reparieren von |hyperref| zu \csa{addcontentsline} verwendet
+wird, um in ihrem Prozess die Erstellung von Lesezeichen zu vermeiden. Wenn man
+|hyperref| ermächtigt, Lesezeichen auf einer bestimmten Ebene \meta{n} zu
+erschaffen, kann einer (hier mit \meta{n}$=$|2|) die Stern-Variante
+\starit{etoctoccontentsline} benutzen, welche ein zusätzliches Argument hat:
%
-% At least three ways to produce etoc.pdf:
-% (1) latex etoc.dtx (three times), then dvips, then ps2pdf
-% (2) pdflatex etoc.dtx (three times)
-% (3) latex etoc.tex (three times), then dvipdfmx
+\begin{verbatim}
+\newcommand{\exercisetotoc}{\etoctoccontentsline*{exercise}{\theexerci}{2}}
+\end{verbatim}
+
+Der Zähler |exerci| wird bereits durch das |exerci|-Theoremumfeld erhöht und
+sorgt für den richtigen Ort für den Link zusätzlich zum Paket
+|hyperref|. Der Befehl \csa{exercisetotoc} fügt für jede Übung eine Zeile in die
+|.toc|-Datei, entsprechend einer fiktiven Dokumenteinheit
+mit dem Namen `|Ãœbung|' ein. Eine
+Vier-Säulen-Liste, einschließlich der Abschnitte, kann dann erreichen mit
+\begin{verbatim}
+ \etocsetnexttocdepth{2} % Abschnitte sind auf Stufe 1 und werden anzeigen
+\begingroup
+ \etocsetlevel{exercise}{2} % aber:
+ \etocsetlevel{chapter}{3} % keine Kapitel
+ \etocsetlevel{subsection}{3} % keine Unterabschnitte
+ \etocsetlevel{part}{3} % keine Parts
+ \etocsetstyle{exercise}{}{} % \etocname = exercise number
+ {\noindent\etocname\strut\leaders\etoctoclineleaders\hfill\etocpage\par}
+ {\pagebreak[2]\vskip\baselineskip}
+ \etocsetstyle{section}{}{}
+ {\noindent\strut{\bfseries\large\etocnumber\hskip.5em\etocname}\par
+ \nopagebreak[3]}{}
+ \etocruledstyle[4]{\Large\bfseries List of the exercises}
+ \setlength{\columnseprule}{.4pt}
+ \tableofcontents
+\endgroup
+ \end{verbatim}
+
+
+\section{Ein TOC mit einem extravagantem Layout}
+
+Hier ist ein Inhaltsverzeichnis, wo die Abschnitte aus einem bestimmten Kapitel
+durch einen Zahlenbereich dargestellt werden sollen
+(wie 18--22 bei einem bestimmten Kapitel, 42--49 für ein anderes \ldots\
+natürlich in das Inhaltsverzeichnis automatisch eingefügt wurden).
+
+Dies ist kein Abbildungseinschluss, das Inhaltsverzeichnis wird von seiner
+ursprünglichen
+|tex|-Quelle in dieses Dokument nach dem Austausch des
+|Teils|, |Kapitels| oder |Abschnitts| mit |Dummy-Teil|, |Dummy-Kapitel| und
+|Dummy-Abschnitt| (und da ist auch eine Dummy-Seitenzahl) produziert. Wir
+kopierten die Linienstile, wie im Original verwendet, und
+das Inhaltsverzeichnis zeigt folgende Situation an:
+\begin{verbatim}
+ \etocsetlevel{dummypart} {-1} \etocsetlevel{part} {2}
+ \etocsetlevel{dummychapter}{0} \etocsetlevel{chapter}{2}
+ \etocsetlevel{dummysection}{1} \etocsetlevel{section}{2}
+ \etocsetnexttocdepth{dummysection}
+\end{verbatim}
+
+Jedes Kapitel zeigt die Zahl nur von dem ersten und dem letzten Abschnitt an.
+Siehe in der Quelldatei |etoc.dtx| für die Details nach, wie das gemacht wird.
+
+Eine andere Technik für diese Art der Dinge erläutert
+ \autoref{ssec:statistics}.
+
+\begingroup
+
+ \etocsetlevel{dummypart}{-1}
+ \etocsetlevel{dummychapter}{0}
+ \etocsetlevel{dummysection}{1}
+ \etocsetlevel{part}{2}
+ \etocsetlevel{chapter}{2}
+ \etocsetlevel{section}{2}
+
+ \newif\ifextraidone
+ \newif\ifextraiidone
+
+ \etocsetstyle{dummypart}
+ {}
+ {}
+ {\begin{center}\Large\bfseries TEIL \etocnumber
+ \ifextraiidone\\\etocname.\fi\end{center}
+ \ifextraidone\else
+ \noindent\hskip.7\linewidth
+ \hbox to .2\linewidth
+% février (ou janvier?) 2013
+% je modifie ici en ajoutant un \hss, pour compenser la plus petite
+% taille de txrm. Ok.
+ {\hss\small\textsc{\bfseries Kapitel.\hss Seite.}}\par\fi
+ \extraidonetrue
+ }
+ {}
+
+ \newcommand\mytocleaders{\hbox to .125\linewidth{...\hss}}
+ \etocsetstyle{dummychapter}
+ {}
+ {\par\noindent\etocifnumbered
+ {\makebox[.15\linewidth][r]{\bfseries\etocnumber.}}
+ {\hspace*{.15\linewidth}}}
+ {\hbox to .65\linewidth
+ {\hspace{1em}\etocname\leaders\mytocleaders\hss}%
+ \hskip-.1\linewidth
+ \hbox to .2\linewidth{\hspace{1.5em}...\hss
+ \etocifnumbered
+ {\etocpage}
+ {\ifextraiidone\else\etocpage\fi}}%
+ \hskip-.2\linewidth
+ }
+ {}
+
+ \newbox\forsectionnumbers
+ \makeatletter
+% 21 février 2013: je rajoute \color@begingroup et \color@endgroup
+ \etocsetstyle{dummysection}
+ {\setbox\forsectionnumbers=\hbox to .1\linewidth
+ \bgroup\color@begingroup\hss\etocskipfirstprefix}
+ {\@gobble}
+ {\etocnumber---}
+ {\etocnumber\color@endgroup\egroup
+ % for reasons I do not quite understand, in some pdf viewers the dots
+ % do not completely disappear if here \fboxsep0pt is used.
+ % (problèmes liés à l'anti-aliasing, sur Mac OS X, Skim, Preview...)
+ % (j'ai maintenu ici la méthode de mon post sur stackexchange, mais
+ % sans doute je pourrais réfléchir à une autre façon évitant d'avoir à
+ % « effacer »)
+ \fboxsep=.5pt\colorbox{white}{\box\forsectionnumbers}\par
+ \ifextraiidone\else
+ \begin{center}\bfseries Kongruenz.\end{center}
+ \noindent\makebox[.15\linewidth][r]{\textsc{\bfseries Ãœbung.}}\par
+ \fi\extraiidonetrue
+ }
+ \makeatother
+
+ \renewcommand{\etocinnertopsep}{0pt}
+
+ \etocruledstyle[1]{%
+ \parbox{\linewidth}{%
+ \centering
+ \textsc{\bfseries\LARGE\MakeUppercase{Inhaltsverzeichnis}}\\
+ \rule{.2\linewidth}{2pt}}%
+ }
+
+ \etocsetnexttocdepth{dummysection}
+
+ \tableofcontents
+
+\makeatletter
+ \def\adddummysection {\stepcounter{dummysection}%
+ \addtocontents {toc}{\protect\contentsline
+ {dummysection}{\protect\numberline{\thedummysection}}%
+ {\the\dummypage }%
+ %\ifEtoc@hyperref ou \ifdefined\hyperref si e-TeX
+ {\@currentHref }%
+ %\fi
+ }}
+
+ \def\adddummychapter #1{\stepcounter{dummychapter}%
+ \advance\dummypage2
+ \addtocontents {toc}{\protect\contentsline
+ {dummychapter}{\protect\numberline{\thedummychapter}#1}%
+ {\the\dummypage }%
+ %\ifEtoc@hyperref ou \ifdefined\hyperref si e-TeX
+ {\@currentHref }%
+ %\fi
+ }}
+
+ \def\adddummychapno #1{\advance\dummypage2
+ \addtocontents {toc}{\protect\contentsline
+ {dummychapter}{#1}{\the\dummypage }%
+ %\ifEtoc@hyperref ou \ifdefined\hyperref si e-TeX
+ {\@currentHref }%
+ %\fi
+ }}
+
+ \def\adddummypart #1{\stepcounter{dummypart}%
+ \advance\dummypage4
+ \addtocontents {toc}{\protect\contentsline
+ {dummypart}{\protect\numberline{\Roman{dummypart}}#1}%
+ {\the\dummypage }%
+ %\ifEtoc@hyperref ou \ifdefined\hyperref si e-TeX
+ {\@currentHref }%
+ %\fi
+ }}
+\makeatother
+
+ \newcount\dummypage \dummypage-1
+
+ \adddummypart {}
+
+ \adddummychapno {Einleitung}
+
+ \newcount\tempcount
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<8
+ \repeat
+
+ \adddummychapter {Kongruenz von Subjekt und Verb}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<17
+ \repeat
+
+ \adddummychapter {Kongruenz von Substantiven und Adjektiven}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<22
+ \repeat
+
+ \adddummychapno {Kongruenz von Relativen und Antezendenten}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<25
+ \repeat
+
+ \adddummypart {Government}
+
+ \adddummychapter {Der Akkusativ}
+
+ \adddummychapno {Allgemeine Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<30
+ \repeat
+
+ \adddummychapno {Besondere Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<37
+ \repeat
+
+ \adddummychapter {Verbrektion über zwei Akkusative}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<41
+ \repeat
+
+ \adddummychapter {Der Kausativ}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<49
+ \repeat
+
+ \adddummychapter {Der Instrumental}
+
+ \adddummychapno {Allgemeine Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<54
+ \repeat
+
+ \adddummychapno {Besondere Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<59
+ \repeat
+
+ \adddummychapter {Der Dativ}
+
+ \adddummychapno {Allgemeine Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<65
+ \repeat
+
+ \adddummychapno {Besondere Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<71
+ \repeat
+
+ \adddummychapter {Der Ablativ}
+
+ \adddummychapno {Allgemeine Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<75
+ \repeat
+
+ \adddummychapno {Besondere Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<86
+ \repeat
+
+ \adddummychapter {Der Lokativ}
+
+ \adddummychapno {Allgemeine Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<92
+ \repeat
+
+ \adddummychapno {Besondere Anwendungen}
+
+ \loop\advance\tempcount by 1
+ \adddummysection
+ \ifnum\tempcount<100
+ \repeat
+\endgroup
+
+\section{Ein weiterer Kompatibilitätsmodus}
+
+Wie in \autoref{ssub:compat} erläutert, sagen die Befehle
+\csa{etocstandardlines} und \csa{etocstandarddisplaystyle} \etoc im
+Wesentlichen, wie man als Beobachter fungiert. Das Dokumentenklasse-Layout für
+das Inhaltsverzeichnis wird dann gehorchen. Es gibt keine Möglichkeit, dieses
+Standard-Layout aus dem Paket anzupassen (ändern von Schriftarten, Rändern,
+vertikalen Abständen, etc.) . Definieren Sie dazu ein Paket von dieser Funktion;
+weil entweder \etoc (vorübergehend vielleicht) im Kompatibilitätsmodus ohne
+Anpassung auf seinen Teil möglich ist oder der Benutzer hat das Layout in
+\csa{etocsetstyle}-Befehlen angegeben (und \csa{etocsettocstyle}) ist (angeblich
+\ldots ) in der kompletten Steuerung.
+
+Nun, es ist eigentlich eine Alternative. Es ist möglich, die Verwendung der
+\csa{etocsetstyle}-Befehle zu nutzen, um einen künstlichen Kompatibilitätsmodus
+neu zu erstellen, um Effekte zu erreichen, wie die folgenden, alle Dinge
+gleichen andererseits dem Dokumentenklassen-Standard:
+\begin{enumerate}[noitemsep]
+\item Enthält der |hyperref|-Link nur die Namen, aber nicht die Anzahl der
+ jeweils zu kapselnden Einträge der Inhaltstabellen;
+\item verwenden Sie den Dokumentenklassen-Stil für Kapitel und Abschnitte, aber
+ ändern Sie es nur für Teilbereiche;
+\end{enumerate}
+
+Hier ist beschrieben, wie Sie vorgehen müssen. Man nimmt in die Präambel:
+\begin{verbatim}
+\makeatletter
+\newcommand{\MyStandardTOC}{%
+ \begingroup
+ \let\savedpartline\l@part
+ \let\savedchapterline\l@chapter %% remove if article/scrartcl class
+ \let\savedsectionline\l@section
+ \let\savedsubsectionline\l@subsection
+ % and so on if \subsubsection, etc... is used
+ %
+ % for the book or article classes:
+ \etocsetstyle{part}{}{}
+ {\savedpartline{\etocnumber\hspace{1em}\etocname}{\etocpage}}{}%
+ % for the scrbook or scrartcl classes:
+ \etocsetstyle{part}{}{}
+ {\savedpartline{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
+ % identical in book/article/scrbook/scrartcl classes:
+ \etocsetstyle{chapter}{}{} %%% only for book and scrbook
+ {\savedchapterline{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
+ \etocsetstyle{section}{}{}
+ {\savedsectionline{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
+ \etocsetstyle{subsection}{}{}
+ {\savedsubsectionline{\numberline{\etocnumber}\etocname}{\etocpage}}{}%
+ % etc... if further sectioning units are used
+ % (see the text for what to do with the memoir class)
+ \etocstandarddisplaystyle % this is for the title, page-marks, etc...
+ \tableofcontents
+ \endgroup}
+\makeatother
+\end{verbatim}
+Natürlich ist es so, wenn das Dokument nur ein Inhaltsverzeichnis hat, dann gibt
+es keine Notwendigkeit, die Befehle in ein Makro zu setzen oder sogar in eine
+Gruppe. \footnote{Und wenn darüber hinaus, um das gleiche Layout wie im Standard
+zu halten, kann man sich die Frage stellen, warum man \etoc benutzt \ldots\ Es
+gibt \emph{einen} guten Grund: Zahlen und Namen sind separate
+\texttt{hyperref}-Links, nach der Regel gibt es nur eine Verbindung, die sowohl
+die Nummer und den Namen auf einem toc-Eintrag entsprechen.} Mit dem Befehl
+\etoc ist ein Inhaltsverzeichnis völlig identisch zu einem von der
+Dokumentenklasse: |article|, |book|, |scrartcl|, |scrbook|. \footnote{Für die
+|memoir|-Klasse braucht man ein bisschen mehr: Jeder der Befehle
+\csa{booknumberline},
+\csa{partnumberline} und \csa{chapternumberline} müssen in ein
+\csa{let} gebettet werden und sie ergeben dann ein:
+\centeredline{%
+\csa{etocsetstyle\{chapter\}\{\}\{\}\{\string\savedchapterline\{%
+\string\savedchapternumberline}}
+\hbox to \linewidth{\hfil\hfil \ttfamily
+ \{\csa{etocnumber}\}\csa{etocname}\}\{\csa{etocpage}\}\}\{\}\hfil}
+(und analog für |part| und |book|).}
+Die Anzahl und die Namen der einzelnen Einträge sind jeweils separat in einem
+|hyperref|-Link, wie es immer der Fall bei \etoc ist, wenn man nicht im
+Kompatibilitätsmodus ist. Ersetzt man \csa{etocnumber} mit \csa{etocthenumber},
+dann ergibt es ein Inhaltsverzeichnis, wo die Zahlen nicht mehr verlinkt sind,
+aber die Namen noch. Oder man kann sich entscheiden, \csa{etocthename} zu
+verwenden und eine Hyperlink-Nummer mit \csa{etocnumber} zu erhalten.
+
+Hier ist ein subtiles Beispiel, wo nur geringfügig die "`sections"' modifiziert
+wurden (hinzufügen von Farbe für die Nummer und das Entfernen des
+|hyperref|-Links) und die Unterabschnitte, wie in der Standardeinstellung,
+\emph{mit Ausnahme} von einer bestimmte "`section"' im Layout komplett geändert
+wurde: \MyQuasiStandardTOC{\ref{toc:overview}} \bigskip Dieses Beispiel hat nur
+Abschnitte und Unterabschnitte und der in \csa{MyStandardTOC} verwendete Code
+war:
+\begin{verbatim}
+\etocsetstyle{section}{}
+ {\ifnum\etocthenumber=3
+ \etocsetstyle{subsection}
+ {\par\nopagebreak\begingroup
+ \leftskip1.5em \rightskip\@tocrmarg \parfillskip\@flushglue
+ \parindent 0pt \normalfont\normalsize\rmfamily\itshape
+ % \columnsep1em
+ % \begin{minipage}{\dimexpr\linewidth-\leftskip-\rightskip\relax}%
+ % \begin{multicols}{2}%
+ \etocskipfirstprefix}
+ {\allowbreak\,--\,}
+ {\etocname\ \textup{(\etocnumber)}}
+ {.\par\endgroup}%
+ % {.\par\end{multicols}\end{minipage}\par\endgroup}%
+ \else
+ \etocsetstyle{subsection}
+ {}{}
+ {\savedsubsectionline{\numberline{\etocnumber}\etocname}{\etocpage}}
+ {}%
+ \fi}
+ {\savedsectionline{\numberline{{\color{cyan}\etocthenumber}}\etocname}{\etocpage}}
+ {}%
+\end{verbatim}
+
+Beachten Sie die Seite mit den Kopf-Zeichen, welche man dem Inhaltsverzeichnis
+hinzufügen kann. Abschnitte und Unterabschnitte sind genauso wie im Standard
+(mit Ausnahme der Unterabschnitte, welche von einem bestimmten
+Benutzer-Abschnitt aus gewählt wird und bis auf die Farbe der
+Abschnittsnummern), ohne das explizit die Länge, die Schriftart oder andere
+Formatierungsanweisungen gegeben werden. Aber wir mussten die |scrartcl|-Quellen
+untersuchen, um festzustellen, was zu nehmen ist für \csa{leftskip} und
+\csa{rightskip} für unsere Nutzer-sections-Einträge.
+
+\section{Das TOC als ein Baum}\label{tocastree}
+
+Mit |tikz|\footnote{\url{http://ctan.org/pkg/pgf}} und dem Paket
+|forest|\footnote{\url{http://ctan.org/pkg/forest}} wird das Inhaltsverzeichnis
+als Baum angezeigt. Die Technik ist, den von \etoc geänderten Befehl
+\csa{tableofcontents} nicht für den Satz zu verwenden, sondern ein Makro, oder
+besser hier eine \emph{symbolische Liste}-Variable vorzubereiten, mit allen
+Anweisungen, die später ausgeführt werden. \textsc{Leslie Lamport}'s Buch
+erwähnt überhaupt nicht die symbolische Liste und \LaTeX{} vermittelt den
+Eindruck, nicht wirklich darauf zu warten, dass die Mehrheit der Nutzer immer
+über sie (oder begrenzte Makros) etwas hört; die ganze Sache und der folgende
+Abschnitt sind daher für fortgeschrittene Anwender.
+
+Setzt man die \csa{etocnumber}- und \csa{etocname}-Befehle in \csa{treetok},
+dann würde das nichts nützen: Auf welche Zahl oder Namen würde sich das dann
+beziehen, in einer verzögerten Ausführung?
+
+Wir brauchen die Speicherung der Makro-Namen, aber nicht die Makro-Inhalte. Und
+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.
+
+Aus diesem |forest|-Baum haben wir ganz besondere \etoc-Stile für Abschnitte und
+Unterabschnitte konzipiert. Sie verwenden ein symbolisches Listenregister mit
+dem Namen |\treetok| und ein Makro |\appendtotok|, deren Aufgabe es ist, zu
+einer bestimmten symbolischen Listenvariablen den Inhalt eines Makros als
+zweites Argument anzuhängen. All dies wird in Reaktion auf einen Befehl
+|\tableofcontents| passieren, aber noch ist \emph{nichts} in deren
+Prozess.\footnote{Es gibt immer ein \csa{par}, welches kein Problem ist, es kann
+aber unterdrückt werden, wenn der Bedarf über den Befehl \csb{etocinline} oder
+dessen Synonym \csb{etocnopar} besteht.} Das ist der spätere Job einer
+|forest|-Umgebung, die den Inhalt von |\treetok| wiedergeben soll.
+\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
+% la section du bas) dans un QTree. Mais ça marche parfaitement dans un arbre
+% TikZ natif.
+
+% 9 septembre 2013: je remplace QTree par Forest, et il n'y a pas de problème
+% avec les hyperliens, ça marche out of the box (une fois que j'ai appris un peu
+% de sa syntaxe et de celle de TikZ).
+
+\newcommand*\PrepareSectionNode{%
+ \tmptok {\centering\bfseries}%
+ \appendtotok\tmptok\etocthelinkedname
+ \edef\foresttreenode{ [{\noexpand\parbox{2cm}{\the\tmptok}}}%
+}
+
+% 7 mars: j'utilise maintenant \etocthelinkedname
+\newcommand*{\PrepareSubsectionNode}{%
+ \tmptok {\raggedright}% j'ai essayé aussi avec \sloppy
+ \appendtotok\tmptok\etocthelinkedname
+ \edef\foresttreenode{ [{\noexpand\parbox{6cm}{\the\tmptok}}}%
+}
+
+\etocsetstyle{section}
+ {\etocskipfirstprefix}
+ {\appendtotok\treetok{ ]}}
+ {\PrepareSectionNode \appendtotok\treetok\foresttreenode}
+ {\appendtotok\treetok{ ]}}
+
+\etocsetstyle{subsection}
+ {\etocskipfirstprefix}
+ {\appendtotok\treetok{ ]}}
+ {\PrepareSubsectionNode \appendtotok\treetok\foresttreenode}
+ {\appendtotok\treetok{ ]}}
+
+\etocsettocstyle
+ {\treetok{[{\hyperref[part:overview]{Ãœberblick}}}}
+ {\global\appendtotok\treetok{ ]}}
+
+
+% 11 octobre
+% forest ne veut pas @\the\treetok avec un \treetok vide, donc
+% il faut lui donner une valeur par défaut.
+\treetok{[{run latex again}]}
+
+% 12 octobre
+% pour que varioref fonctionne bien, je dois mettre la \tableofcontents
+% au plus près de l'environnement forest
+
+\begin{figure}[th!]\centering
+ \etocsetnexttocdepth{subsection}
+ \tableofcontents \label{toc:forest}\ref{toc:overview}
+ \hypersetup{hidelinks}%
+ \bracketset{action character=@}
+ \begin{forest}
+ for tree={anchor=center,child anchor=west,
+ grow'=east,draw,thick,
+ edge={draw,thick,dashed,color=teal}},
+ where={level()==1}{circle,thick,fill=blue!5,
+ before computing xy={l=3cm}}{},
+ where={level()==2}{fill=red!5,
+ before computing xy={l=6cm}}{},
+ % je trouve ce truc pour une position absolue. OK!
+ rectangle, thick, fill=cyan!5, inner sep=6pt,
+ @\the\treetok
+ \end{forest}
+ \centeredline{Ein Inhalsverzeichnis in Form eines |forest|-Baums.}
+\end{figure}
+
+Der resultierende Baum wird in einem \hyperref[toc:forest]{Puffer} angelegt, welcher
+\vpageref[oben]{toc:forest} erscheint. Hier ist der zur Herstellung notwendige Code:
+\begin{verbatim}
+\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*\PrepareSectionNode{%
+ \tmptok {\centering\bfseries}%
+ \appendtotok\tmptok\etocthelinkedname
+ \edef\foresttreenode{ [{\noexpand\parbox{2cm}{\the\tmptok}}}%
+}
+
+\newcommand*{\PrepareSubsectionNode}{%
+ \tmptok {\raggedright}%
+ \appendtotok\tmptok\etocthelinkedname
+ \edef\foresttreenode{ [{\noexpand\parbox{6cm}{\the\tmptok}}}%
+}
+
+\etocsetstyle{section}
+ {\etocskipfirstprefix}
+ {\appendtotok\treetok{ ]}}
+ {\PrepareSectionNode \appendtotok\treetok\foresttreenode}
+ {\appendtotok\treetok{ ]}}
+
+\etocsetstyle{subsection}
+ {\etocskipfirstprefix}
+ {\appendtotok\treetok{ ]}}
+ {\PrepareSubsectionNode \appendtotok\treetok\foresttreenode}
+ {\appendtotok\treetok{ ]}}
+
+\etocsettocstyle
+ {\treetok{[{\hyperref[part:overview]{Ãœberblick}}}}
+ {\global\appendtotok\treetok{ ]}}
+
+% forest does not like @\the\treetok if \treetok is empty. On first latex
+% run, this will be the case because the TOC style defined above will not
+% have been executed, as the label {toc:overview} does not refer to a valid
+% TOC yet. So we must give a safe default value to \treetok
+\treetok{[{run latex again}]}
+
+\begin{figure}[th!]\centering
+ \etocsetnexttocdepth{subsection}
+ \tableofcontents \label{toc:forest}\ref{toc:overview}
+ \hypersetup{hidelinks}%
+ \bracketset{action character=@}
+ \begin{forest}
+ for tree={anchor=center,child anchor=west,
+ grow'=east,draw,thick,
+ edge={draw,thick,dashed,color=teal}},
+ where={level()==1}{circle,thick,fill=blue!5,
+ before computing xy={l=3cm}}{},
+ where={level()==2}{fill=red!5,
+ before computing xy={l=6cm}}{},
+ rectangle, thick, fill=cyan!5, inner sep=6pt,
+ @\the\treetok
+ \end{forest}
+\end{figure}
+\end{verbatim}
+
+Warum |\hypersetup{hidelinks}|? Wie in \autoref{ssec:hidelinks} erläutert ist,
+werden die Links in Inhaltsverzeichnissen nicht eingefärbt, noch gerahmt, so
+dass dieses Dokument den Befehl
+|\hypersetup{hidelinks}|
+hinzufügt. Aber immer werden die |\treetok|-Inhalte in die
+|\hyperlink|-Ursprungsbefehle in |\etocthelinkedname| ausgepackt, etc. \ldots{}
+Sie werden in der normalen Umgebung für Links (die in diesem Dokument zu
+kolorieren sind) ausgeführt. Der \etoc -Code versucht zu erraten, was der
+aktuelle "`Stil"' für Links ist (ein Begriff, der nicht wirklich von |hyperref|
+vorausgesetzt zu sein scheint) und speichert es in |\etocthelinkedname|, etc.
+\ldots, Ich entschied mich für die einfachere Lösung, es dem Benutzer zu
+überlassen, ob er es neu erstellt, was auch immer für Bedingungen erwünscht
+sind. So, hier ist es notwendig, das |\hypersetup{hidelinks}| in dem
+|figure|-Umgebung neu zu erstellen.
+
+Es gibt einige andere Beispiele in dieser Dokumentation, wobei
+|\tableofcontents| verwendet wird, um Material zu haben für den späteren
+Schriftsatz:
+\begin{itemize}
+\item Für das Drucken der Statistiken zu Beginn der einzelnen Abschnitte (siehe
+ \autoref{ssec:statistics}) wurden unbeschädigte Boxen benutzt (das Problem der
+ Darstellung der Links funktioniert nicht).
+\item Zum Setzen des Inhaltsverzeichnisses als eine Tabelle (siehe \autoref{ssec:tocastable});
+ auch dort werden wir |\hypersetup{hidelinks}| setzen, nachdem wir die Namen,
+ Nummern und Seitennummern in einem symbolischen Listenregister gesetzt haben.
+\item Und zwei weitere Baum-Beispiele sind im nächsten Abschnitt.
+\end{itemize}
+
+
+\section{Das TOC als ein Molekül}\label{ssec: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
+Linienstile, welche die Klammern in einer Art und Weise von \TeX{} behandeln.
+(Sie brauchen für das Auffüllen der symbolischen Liste im Zusammenhang mit jedem
+Schritt immer eine Balance, sonst müssen immer kompliziertere Tricks angewandt
+werden.).
+
+Die einfachste Strategie ist es, eine symbolische Liste zuzuweisen (oder Sie
+verwenden ein Makro) für jede Ebene: Wir brauchen ein \csa{parttok}, ein
+\csa{chaptertok}, ein \csa{sectiontok} und ein \csa{subsectiontok}, um in der
+Aufgabe die \csa{treetok} zu befüllen. Wir interessieren uns hier für die
+Tabelle der Inhalte von diesem (oder einem anderen) Dokumententeil, nur ein
+\csa{sectiontok} und ein \csa{subsectiontok} wird dafür gebraucht.
+
+\begin{verbatim}
+% \newtoks\treetok % already done earlier
+\newtoks\sectiontok \newtoks\subsectiontok \newcommand*{\treenode}{}
+
+\newcommand*{\appendchildtree}[2]{% token list t1 becomes: t1 child {t2}
+ \edef\tmp{\the#1 child {\the#2}}%
+ #1\expandafter{\tmp}%
+}
+\newcommand*{\preparetreenode}{%
+ \tmptok\expandafter{\etocthelinkednumber}% expanded one time (mandatory)
+ \edef\treenode{node {\the\tmptok}}%
+}
+
+\etocsetstyle{section}
+ {\etocskipfirstprefix}
+ {\appendchildtree\treetok\sectiontok}
+ {\preparetreenode \sectiontok\expandafter{\treenode}}
+ {\appendchildtree\treetok\sectiontok}
+
+\etocsetstyle{subsection}
+ {\etocskipfirstprefix}
+ {\appendchildtree\sectiontok\subsectiontok}
+ {\preparetreenode \subsectiontok\expandafter{\treenode}}
+ {\appendchildtree\sectiontok\subsectiontok}
+
+\etocsettocstyle
+ {\treetok{\node {\hyperref[part:overview]{Overview}}}}
+ {\global\appendtotok\treetok{ ;}}
+
+% moved to the inside of the figure environment for correct \pageref{toc:molecule}
+% \etocsetnexttocdepth{subsection}
+% \tableofcontents \label{toc:molecule} \ref{toc:overview}
+\end{verbatim}
+
+\newtoks\sectiontok
+\newtoks\subsectiontok
+\newcommand*\treenode {}
+
+\newcommand*{\appendchildtree}[2]{% token list t1 becomes: t1 child {t2}
+ \edef\tmp{\the#1 child {\the#2}}%
+ #1\expandafter{\tmp}%
+}
+
+\newcommand*{\preparetreenode}{%
+ \tmptok\expandafter{\etocthelinkednumber}%
+ \edef\treenode{node {\the\tmptok}}%
+}
+
+\etocsetstyle{section}
+ {\etocskipfirstprefix}
+ {\appendchildtree\treetok\sectiontok}
+ {\preparetreenode
+ \sectiontok\expandafter{\treenode}}
+ {\appendchildtree\treetok\sectiontok}
+
+\etocsetstyle{subsection}
+ {\etocskipfirstprefix}
+ {\appendchildtree\sectiontok\subsectiontok}
+ {\preparetreenode
+ \subsectiontok\expandafter{\treenode}}
+ {\appendchildtree\sectiontok\subsectiontok}
+
+\etocsettocstyle
+ {\treetok{\node {\hyperref[part:overview]{Ãœberblick}}}}
+ {\global\appendtotok\treetok{ ;}}
+
+\begin{figure}[th!]\centering
+\etocsetnexttocdepth{subsection}
+ \tableofcontents \label{toc:molecule}\ref{toc:overview}
+ \hypersetup{hidelinks}%
+ \begin{tikzpicture}
+ [grow cyclic,
+ level 1/.style={level distance=4cm,sibling angle=72},
+ level 2/.style={level distance=2cm,sibling angle=60},
+ every node/.style={ball color=red,circle,text=SkyBlue},
+ edge from parent path={[dashed,very thick,color=cyan]
+ (\tikzparentnode) --(\tikzchildnode)}]
+ \the\treetok
+ \end{tikzpicture}
+ \centeredline{Ein Inhaltsverzeichnis als ein "`Molekül"'.}
+\end{figure}
+
+% Pour que \pageref fonctionne correctement, je dois mettre
+% le \tableofcontents dans la figure.
+
+Der |\tableofcontents|-Befehl erscheint direkt über der Umgebung in dem
+|tikzpicture|-Umfeld und ist eine Gleitfigur (über Inhaltslabel sicherlich auf
+die gleiche Seite zu beziehen, wie die in dem das Bild tatsächlich gedruckt
+werden soll). Wir erhalten somit das Inhaltsverzeichnis als
+"`\hyperref[toc:molecule]{Molekül}"', welches oben erscheint
+\vpageref[above]{toc:molecule}. Hier ist der aktuelle, tatsächlich produzierte
+Code:
+\begin{verbatim}
+\begin{figure}[th!]\centering
+ \etocsetnexttocdepth{subsection}
+ \tableofcontents \label{toc:molecule} \ref{toc:overview}
+ \hypersetup{hidelinks}%
+ \begin{tikzpicture}
+ [grow cyclic,
+ level 1/.style={level distance=4cm,sibling angle=72},
+ level 2/.style={level distance=2cm,sibling angle=60},
+ every node/.style={ball color=red,circle,text=SkyBlue},
+ edge from parent path={[dashed,very thick,color=cyan]
+ (\tikzparentnode) --(\tikzchildnode)}]
+ \the\treetok
+ \end{tikzpicture}
+\end{figure}
+\end{verbatim}
+
+Dieses \hyperref[toc:molecule]{TikZ-TOC} ist komplett verlinkt, wie das
+vorherige \hyperref[toc:forest]{Forest-TOC} auch.
+
+\etocsettocstyle
+ {\treetok{\node {\autoref{part:globalcmds}}}}
+ {\global\appendtotok\treetok{ ;}}
+
+\etocsetnexttocdepth {subsection}
+\tableofcontents \ref{toc:globalcmds}
+
+\noindent
+\parbox{4cm}{\hypersetup{hidelinks}%
+ \begin{tikzpicture}
+ [grow cyclic,
+ level 1/.style={level distance=2.5cm,sibling angle=60},
+ level 2/.style={level distance=1cm,sibling angle=45},
+ every node/.style={ball color=red!50,circle,text=black},
+ edge from parent path={[very thick,color=cyan]
+ (\tikzparentnode) --(\tikzchildnode)}]
+ \the\treetok
+ \end{tikzpicture}}%
+\begin{minipage}{\dimexpr\linewidth-4cm\relax}
+ Seitlich ist das (völlig mit Hyper-Links versehene) Inhaltsverzeichnis von
+ \autoref{part:globalcmds}.
+ \def\MacroFont{\ttfamily\small\hyphenchar\font-1 \baselineskip10pt\relax}%
+\begin{verbatim}
+\etocsettocstyle
+ {\treetok{\node {\autoref{part:globalcmds}}}}
+ {\global\appendtotok\treetok{ ;}}
+\etocsetnexttocdepth {subsection}
+\tableofcontents \ref{toc:globalcmds}
+\noindent
+\parbox{4cm}{\hypersetup{hidelinks}%
+ \begin{tikzpicture}
+ [grow cyclic,
+ level 1/.style={level distance=2.5cm,sibling angle=60},
+ level 2/.style={level distance=1cm,sibling angle=45},
+ every node/.style={ball color=red!50,circle,text=black},
+ edge from parent path={[very thick,color=cyan]
+ (\tikzparentnode) --(\tikzchildnode)}]
+ \the\treetok
+ \end{tikzpicture}}%
+...
+\end{verbatim}
+\end{minipage}
+
+% \vfill\eject
+
+\etocdepthtag.toc {linestyles}
+
+\part{Befehle für die TOC-Linienstile}
+\label{part:linestyles}
+
+\thispartstats
+
+\etocsetstyle{section}
+{\begin{enumerate}[leftmargin=.75cm, label=\etocifnumbered
+ {{\fboxrule1pt\fcolorbox{green}{white}{\etocnumber}}}{}]}
+% Dec 7, 2012. I hit upon a problem whose origin I found was
+% with xcolor, as xcolor modifies \fbox
+% (try \section{\fbox{A}} with and without xcolor). The fix
+% was to \protect the \fbox used in the |enumitem| label.
+% Strangely enough, with |hyperref| active, the problem did
+% not show up. Anyhow I now use \fcolorbox rather than \fbox
+% and there is no problem anymore. Also I don't have now to
+% use \normalcolor which already needed protection.
+{\normalsize\bfseries\rmfamily\item}
+{\etocname{} (Seite \etocpage)}
+{\end{enumerate}}
+
+\etocsetstyle{subsection}
+{\begin{enumerate}[leftmargin=0cm, label=\etocnumber]}
+{\normalfont \item}
+{\etocname{} (S.~\etocpage)}
+{\end{enumerate}}
+
+\etocsetstyle{subsubsection}
+{\par\nobreak\begingroup\normalfont\footnotesize\itshape\etocskipfirstprefix}
+{\allowbreak\,--\,}
+{\etocname}
+{.\hfil\par\endgroup\pagebreak[3]}
+
+% 27 janvier 22:30
+% je définis les macros (non protégées)
+% \etocthename, \etocthenumber, \etocthepage
+
+\etocruledstyle[1]{\etocfontminusone\color{green}%
+ \fboxrule1pt\fboxsep1ex
+ \framebox[\linewidth]
+ {\normalcolor\hss Inhalt von \autoref{part:linestyles}\hss}}
+
+\localtableofcontents \label{toc:a}
+
+\section{Der \csbhyp{etocsetstyle}-Befehl}
+\label{etocsetstyle}
+
+\subsection{Die \csbhyp{etocname}- und \csbhyp{etocpage}-Befehle}
+\label{etocname}
+\label{etocpage}
+
+Hier soll erläutert werden, wie \etoc\ dazu verwendet wurde, das
+Inhaltsverzeichnis am Beginn des zweiten Teils zu erstellen. Es handelt sich
+dabei um ein lokales Inhaltsverzeichnis, weshalb der Befehl \localtoc\ verwendet
+wurde.
+
+Wir müssen hierbei unterscheiden zwischen den Linienstilen (\emph{line styles})
+und dem Ausgabestil (\emph{toc display style}). Die \emph{line styles} erhält
+man grundsätzlich auf die folgende Art und Weise:
+
+
+\footnote{Das vorliegende Dokument hat
+ {\ttfamily\string\renewcommand\string{%
+ \string\familydefault\string}\string{\string\sfdefault\string}}
+ in seiner Präambel, deshalb schaltet der Befehl \csa{normalfont} zur
+ |sans| Schriftart; aus diesem Grund habe ich im Abschnitt line-style
+ \csa{rmfamily} geschrieben.}
+
+\begingroup\small
+\begin{verbatim}
+\etocsetstyle{section}
+{\begin{enumerate}}
+{\normalsize\bfseries\rmfamily\item}
+{\etocname{} (page \etocpage)}
+{\end{enumerate}}
+
+\etocsetstyle{subsection}
+{\begin{enumerate}}
+{\normalfont\item}
+{\etocname{} (p.~\etocpage)}
+{\end{enumerate}}
+
+\etocsetstyle{subsubsection}
+{\par\nobreak\begingroup\normalfont
+ \footnotesize\itshape\etocskipfirstprefix}
+{\allowbreak\,--\,}
+{\etocname}
+{.\hfil\par\endgroup\pagebreak[3]}
+\end{verbatim}
+\endgroup
+
+Diese provisorischen Stil-Definitionen beruhen auf der automatischen
+Nummerierung, die von der |enumerate|-Umgebung generiert wird, es ist aber
+wesentlich besser den Befehl \csb{etocnumber} innerhalb des Item-labels zu
+verwenden, denn das gibt das richtige Ergebnis. Die verbesserten Definitionen
+werden dahingehend später erklärt.
+
+Jeder \csb{etocsetstyle}-Befehl hat fünf notwendige Argumente:\\ \hbox to
+\linewidth {\hfil\csb{etocsetstyle}\color{blue}\marg{levelname}%
+\marg{start}\marg{prefix}\marg{contents}\marg{finish}\hfil} Die
+\meta{levelname}'s sind die Abschnittseinteilungen der
+Standard-Dokument-Klassen: Von \emph{part} (oder \emph{book}, welches von der
+|memoir|-Klasse benutzt wird) herunter bis zu \emph{subparagraph}.
+
+Der \meta{start}-Code wird ausgeführt, wenn ein toc-Eintrag dieses Levels
+gefunden wurde und der vorherige ein höheres Level hatte. Der \meta{finish}-Code
+wird ausgeführt, sobald man wieder einen Eintrag mit einem höheren toc-Level
+findet. In der Zwischenzeit werden alle Einträge für dieses Level gesetzt, indem
+zuerst der \meta{prefix}-Code und dann der \meta{contents}-Code ausgeführt wird.
+
+Die (robusten) Befehle \csb{etocname}, \csb{etocnumber} und \csb{etocpage} sind
+für die Benutzung innerhalb der \marg{prefix} und \marg{contents}-Teile aus der
+\csa{etocsetstyle}-Spezifikation. Diese enthalten den Namen, die Nummerierung
+und die Seitennummer des entsprechenden toc-Eintrags. Ist das Paket |hyperref|
+im Dokument eingebunden, und es existieren Verlinkungen zu den TOC-Daten, dann
+werden diese Links in den Befehlen \csa{etocname}, \csa{etocnumber} und
+\csa{etocpage} gehalten (Der letzte hat nur einen Link, wenn |hyperref| die
+Option \emph{linktoc=all} übergeben wurde).
+
+\subsection{Der \csbhyp{etoc\-skip\-first\-pre\-fix}-Befehl}
+\label{etocskipfirstprefix}
+
+Der gewählte |subsubsection|-Stil benutzt außerdem den Befehl
+\csb{etocskipfirstprefix}, welcher -- falls verwendet -- der letzte im
+\emph{start}-Code sein \emph{muss}. Er sorgt dafür, dass der "`prefix"'-Code
+nicht für das erste Objekt ausgeführt wird. Mit diesem Stil müsste man so
+einfallsreich sein, etwas zu designen, was nicht mit Abschnitten oder
+Unterabschnitten zu tun hat, vielleicht so etwas wie Superscripte. Nun,
+normalerweise braucht man Abschnitte und Unterabschnitte nicht nummeriert und
+aufgelistet in der TOC, also hat unser vermeintlicher Benutzer ein Design
+gewählt, welches dafür nichts bereitstellt und fügte noch hinzu:
+\begin{verbatim}
+\etocsetstyle{paragraph}{}{}{}{}
+\etocsetstyle{subparagraph}{}{}{}{}
+\end{verbatim}
+Das ist der gleiche Sachverhalt wie mit den Standardlinienstilen!
+
+\subsection{Der \csbhyp{etocnumber}-Befehl}
+\label{etocnumber}
+
+Bis hierhin würde unsere Spezifikation die Nummerierung verwenden, die von der
+|enumerate|-Umgebung generiert wird, jedoch möchten wir natürlich die in
+der |.toc|-Datei deklarierten Nummern benutzen. Das kann man mit Hilfe des
+\csb{etocnumber}-Befehls erreichen. Um die Bezeichnungen in die
+|enumerate|-Auflistung zu bekommen, fährt man mit der Syntax
+{\ttfamily label=\char32} des |enumitem|-Pakets fort:
+\begin{verbatim}
+\etocsetstyle{section}
+{\begin{enumerate}[label=\etocnumber]}
+{\normalsize\bfseries\rmfamily\item}
+{\etocname{} (page \etocpage)}
+{\end{enumerate}}
+\end{verbatim}
+Lieber als nur \csa{etocnumber} haben wir dann so etwas wie |\fbox{\etocnumber}|
+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}
+\label{etocifnumbered}
+
+Die \csa{fbox} würde ein unästhetisches Ergebnis bringen im Fall eines nicht
+nummerierten Abschnitts (welches beispielsweise im Inhaltsverzeichnis gelandet
+ist mittels eines \csa{addcontentsline} Befehls).\footnote{Wie man sieht, wird
+\csa{fcolorbox} verwendet wird statt \csa{fbox}. Aufgrund einer Neudefinition --
+durchgeführt vom |xcolor|-Paket-- haben wir \csa{fbox} verwendet (und nicht
+|hyperref|), sonst hätten wir \csa{protect}\csa{fbox} benötigt.}
+
+Der \csb{etocifnumbered}\marg{A}\marg{B}-Befehl führt \meta{A} aus, wenn die
+Nummer existiert, und \meta{B} falls nicht. Also benutzen wir es in dem Code,
+welcher letztendlich für das |section|-Level gewählt wurde:
+\begin{verbatim}
+\etocsetstyle{section}
+{\begin{enumerate}[leftmargin=.75cm, label=\etocifnumbered
+ {{\fboxrule1pt\fcolorbox{green}{white}{\etocnumber}}}{}]}
+{\normalsize\bfseries\rmfamily\item}
+{\etocname{} (page \etocpage)}
+{\end{enumerate}}
+
+\etocsetstyle{subsection}
+{\begin{enumerate}[leftmargin=0cm, label=\etocnumber]}
+{\normalfont \item}
+{\etocname{} (p.~\etocpage)}
+{\end{enumerate}}
+\end{verbatim}
+
+Wenn wir nur das |section|-Level geändert hätten und nicht das
+|subsection|-Level, dann wäre ein Kompilierfehler aufgetreten, denn der
+Paket-Stil für die "`subsections"' erwartet dann `im Vertikal-Modus' zu starten.
+Ein zusätzliches \csa{par}-Token im \meta{contents}-Teil des |section|-Levels
+hätte das behoben: |{...(page \etocpage)\par}|.
+
+\subsection{Die Befehle \csbhyp{etocthename}, \csbhyp{etocthenumber} sowie
+\csbhyp{etocthepage}}
+\label{etocthename}
+\label{etocthenumber}
+\label{etocthepage}
+
+Es ist manchmal wünschenswert, Zugriff auf Name, Nummer und Seitenzahl zu haben,
+ohne die hyperref-Daten: Ähnlich wie die *-Variante des \csa{ref}-Befehls, wenn
+das |hyperref|-Paket verwendet wird. Beispielsweise könnte man den Wunsch haben,
+eine Einheit oder Seitenzahl in einer Art numerischem Kontext verwenden zu
+wollen oder seine Formatierung zu ändern. Diese Funktionalität wird von
+\csb{etocthename}, \csb{etocthenumber} und \csb{etocthepage} bereitgestellt.
+
+Diese Befehle sind aber nicht geschützt, also sollten sie in veränderlichen
+Kontexten (zum Beispiel Label-Beschreibungen mit vorangestelltem |\protect|)
+verwendet werden.
+
+\subsection{Der \csbhyp{etoclink}-Befehl}
+\label{etoclink}
+
+Der Befehl \csb{etoclink}\marg{linkname} kann in Linienstil-Beschreibungen
+benutzt werden, in ähnlicher Art und Weise wie die argumentlosen Befehle
+\csa{etocname}, \csa{etocnumber} und \csa{etocpage}. Er erzeugt einen Link
+(falls solch ein von |hyperref| zur |.toc|-Datei hinzugefügt wurde), dessen Ziel
+der entsprechende Dokumentteil ist und dessen Name das angegebene Argument ist.
+Daher ist |\etoclink{\eotcthename}| das ursprüngliche |\etocname|. Es ist darauf
+zu achten, dass wenn |hyperref| nicht damit beauftragt wurde, die Seitenzahl mit
+einem Link zu versehen (mittels seiner Option \emph{linktoc=all}), dann hat
+\etoc's \csa{etocpage} auch keinen Link, |\etoclink{\etocthepage}| allerdings
+schon.
+
+Der Befehl \csa{etoclink} ist robust.
+
+\subsection{Die Befehle \csbhyp{etocthelinkedname}, \csbhyp{etocthelinkednumber},
+\csbhyp{etocthelinkedpage} und \csbhyp{etocthelink}}
+\label{etocthelinkedname}
+\label{etocthelinkednumber}
+\label{etocthelinkedpage}
+\label{etocthelink}
+
+Das Folgende ist für fortgeschrittene Anwendungen von fortgeschrittenen
+Benutzern. Das \csa{etocthename}-Makro wurde bereits schon einmal erwähnt;
+verwendet man es in Anweisungen wie |\global\let\lastone\etocthename| in einem
+\etoc line-Stil, definiert das Macro |\lastone| so, dass es sich ausbreitet bis
+zum letzten Namen auf dem korrespondieren Level. Jedoch bestand bisher keine
+Möglichkeit, dass Gleiche auch für die Link-Daten zu tun.
+
+Das in diesem Paket enthaltene \csa{etocthelinkedname} stellt dies nun zur
+Verfügung, inklusive der Link-Daten. Es wurde in dieser Dokumentation benutzt
+bei Erstellung der \hyperref[tocastree]{Beispiele mit Bäumen}.
+
+Ebenfalls bereit gestellt mit ähnlichen Funktionen: \csa{etocthelinkednumber},
+\csa{etocthelinkedpage} (welches nur einen Link enthält, wenn |hyperref| einen
+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.
+
+Beispiel\begingroup
+ \etocsetstyle {section}
+ {\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, und }}]}
+ {\global\let\TmpEtocNumber\etocthelinkednumber
+ \global\let\TmpEtocName\etocthelinkedname
+ \global\let\TmpEtocPage\etocthelinkedpage }
+ {\item [{\bfseries\TmpEtocNumber.}]\TmpEtocName\
+ (\emph{S. \TmpEtocPage})}
+ {\end{itemize*}.}%
+ \etocsetnexttocdepth {section}%
+ \etocsettocstyle {(ein Inhaltsverzeichnis als eine Inline-%
+ \texttt{enumitem}-Umgebung): }{}%
+ \etocinline\tableofcontents \ref{toc:globalcmds}
+\endgroup
+
+\begin{verbatim}
+Beispiel\begingroup
+ \etocsetstyle {section}
+ {\begin{itemize*}[itemjoin={{; }}, itemjoin*={{, und }}]}
+ {\global\let\TmpEtocNumber\etocthelinkednumber
+ \global\let\TmpEtocName\etocthelinkedname
+ \global\let\TmpEtocPage\etocthelinkedpage }
+% Obiges ist erforderlich, da \item, hier in itemize*, eine Gruppe schließt.
+ {\item [{\bfseries\TmpEtocNumber.}]\TmpEtocName\
+ (\emph{S. \TmpEtocPage})}
+ {\end{itemize*}.}%
+ \etocsetnexttocdepth {section}%
+ \etocsettocstyle {(ein Inhaltsverzeichnis als eine Inline-%
+ \texttt{enumitem}-Umgebung): }{}%
+ \etocinline\tableofcontents \ref{toc:globalcmds}
+\endgroup
+\end{verbatim}
+
+\section{Der \csbhyp{etocsetlevel}-Befehl}
+\label{etocsetlevel}
+
+Wie bereits in \autoref{part:surprising} erklärt, kann man \etoc mitteilen,
+welches Level er mit einem bestimmten Abschnitts-Befehl assoziieren soll,
+nämlich mit \csa{etocsetlevel}. Zum Beispiel:
+
+\begin{verbatim}
+\etocsetlevel{cell}{0}
+\etocsetlevel{molecule}{1}
+\etocsetlevel{atom}{2}
+\etocsetlevel{nucleus}{3}
+\end{verbatim}
+Im Kompatibilitäts-Modus wird davon ausgegangen, dass die Makros |\l@cell|,
+\texttt{\textbackslash l@mo\-le\-cule}, \ldots\ entweder durch
+den Benutzer oder von einer anderen Klasse definiert wurden: Nur |\etocsetlevel|
+ist nicht genug, um auf dem korrespondierenden Pegel "`out-of-the-box"' zu
+arbeiten.
+
+Jedoch, ist im Kompatibilitätsmodus kein Inhaltsverzeichnis gesetzt, dann ist
+nur wichtig, dass die verschiedenen Linienstile gesetzt sind.
+Wenn beispielsweise |section| auf Level |1| ist, dann muss man nicht mehr
+\csa{etocsetstyle}|{molecule}{..}{..}{..}{..}| nach
+\csa{etocsetstyle}|{molecule}{1}| aufrufen, da
+\csa{etocsetstyle}|{section}{..}{..}{..}{..}| bereits
+wirksam ist (und es wurde im Paket selbst in der Definition seines
+Linienstils gesetzt).
+
+Die akzeptierten Level laufen von |-2| bis einschließlich |6|. Alles andere wird
+auf |6| abgebildet, welches ein Dummy-Level ist und nie dargestellt wird. Das
+Paket tut Folgendes:
+\begin{verbatim}
+\etocsetlevel{book}{-2}
+\etocsetlevel{part}{-1}
+\etocsetlevel{chapter}{0}
+\etocsetlevel{section}{1}
+\etocsetlevel{subsection}{2}
+\etocsetlevel{subsubsection}{3}
+\etocsetlevel{paragraph}{4}
+\etocsetlevel{subparagraph}{5}
+\end{verbatim}
+Die benutzerdefinierten Stile von \etoc werden von \csa{etocdefaultlines}
+aktiviert. Sie werden vom Haupt-Inhaltsverzeichnis dieses Dokuments dargestellt.
+Die Level-Zuweisungen können jederzeit modifiziert werden: In
+\autoref{part:surprising} sieht man verschiedene Anwendungen dieser Technik.
+
+Als ein weiteres Beispiel soll hier angeführt werden, wie das
+\hyperref[toc:main]{Haupt-Inhaltsverzeichnis} dieses Dokuments gesetzt
+wurde, nämlich mit den folgenden Instruktionen:
+\begin{verbatim}
+\etocsettocdepth {subsubsection} % set the initial tocdepth
+\etocdefaultlines % use the package default line styles. At this early stage in
+ % the document they had not yet been modified by \etocsetstyle
+ % commands, so \etoctoclines could have been used, too.
+\etocmarkboth\contentsname
+\etocmulticolstyle[1] % one-column display
+ {\pdfbookmark[1]{Table of contents}{MAINTOC}% create a bookmark in the pdf
+ \noindent\bfseries\Large
+ \leaders\hrule height1pt\hfill
+ \MakeUppercase{Table of Contents}}
+\begingroup % use a group to limit the scope of the
+ \etocsetlevel{subsection}{3} % subsection level change.
+ \etocsetlevel{subsubsection}{4} % anything > tocdepth=3.
+ \tableofcontents \label{toc:main}
+\endgroup
+\end{verbatim}
+Auf diese Art und Weise benutzen die "`subsections"' die Stile, die ursprünglich
+für "`subsubsections"' vorgesehen waren, während diese gar nicht gedruckt
+werden. Ohne diese Modifikation wäre das Erscheinungsbild ein anderes gewesen:
+die Paketlinienstile sind dafür gedacht gewesen, in Dokumenten mit vielen vielen
+"`subsubsections"' verarbeitet zu werden, in einem Zwei-Spalten-Layout, um
+diesen ein kompakteres Ergebnis zu liefern als die
+Standard-\LaTeX-Inhaltsverzeichnisse. Hier haben wir jedoch noch ein paar
+"`subsubsections"', daher ist es interessanter, diese zu ignorieren und dafür
+"`sections"` und "`subsections"' visuell unterschiedlich zu drucken.
+
+\section{Umfang der zur \texorpdfstring{\texttt{.toc}}{.toc}-Datei gehörigen Befehle}
+
+\begingroup % pour \small et \MacroFont en particulier.
+\small
+
+\subsection{Testen des Bereichs}
+
+Lasst uns zur Farbe Rot wechseln und außerdem diesen Befehl zur
+|.toc|-Datei hinzufügen:
+
+\color{red!50}
+\addtocontents{toc}{\string\color{red!50}}
+
+\def\MacroFont{\ttfamily \footnotesize\hyphenchar\font45 }
+\begin{verbatim}
+ \color{red!50} % Ändern der Textfarbe
+ \addtocontents{toc}{\string\color{red!50}} % das Gleiche in der .toc-Datei
+\end{verbatim}
+
+
+\subsection{Dies ist eine (blass)rote Subsection zu Demonstrationszwecken}
+
+Gut, der Titel hier wurde schwarz dargestellt, was daran liegt, wie die
+|scrartcl|-Klasse funktioniert (in der |article|-Klasse wäre er rot gewesen),
+aber wir sind ohnehin mehr daran interessiert, wie er im Inhaltsverzeichnis
+aussieht: Und tatsächlich ist er rot im
+\hyperref[toc:main]{Haupt-Inhaltsverzeichnis} dieses Dokuments, genau so wie im
+\hyperref[toc:a]{Inhaltsverzeichnis für diesen Abschnitt}. Beide Befehle
+gehorchen wie erwartet dem |\color{red!50}|-Befehl, der in die |.toc|-Datei
+geschrieben wurde.
+
+Aber lasst uns jetzt diese "`subsection"' beenden und eine "`section"' starten.
+
+\section{Bin ich auch rot?}
+
+Die Frage ist, ob es im Inhaltsverzeichnis erscheint: Die Antwort ist ja, es ist
+rot im \hyperref[toc:main]{Haupt-Inhaltsverzeichnis} und nein es ist nicht rot
+im \hyperref[toc:a]{Inhaltsverzeichnis für diesen Abschnitt}. Grund dafür ist,
+dass der \meta{finish}-Code für dieses "`subsection"'-Level eine Gruppe
+geschlossen hat, da es |\end{enumerate}| verwendet hat.
+
+Das zeigt noch einmal die Diskussion aus \autoref{ssec:limitations}.
+
+Die standardmäßigen Paket-line-Stile beinhalten keine Gruppen-Öffnung- und
+Schliess-Befehle: Die Gültigkeit eines Befehls in der |.toc|-Datei wird also
+solange bestehen, bis er explizit durch einen weiteren Befehl wieder rückgängig
+gemacht wird.
+
+\begin{verbatim}
+ \normalcolor
+ \addtocontents{toc}{\string\normalcolor}
+\end{verbatim}
+\endgroup
+
+\normalcolor
+\addtocontents{toc}{\string\normalcolor}
+
+Zurück zu Schwarz. Man beachte das diese Bereichsprobleme auch in mehrsprachigen
+Dokumenten auftauchen, da das |babel|-Paket auftretende Sprachänderungen
+ebenfalls in die |.toc|-Datei schreibt.
+
+\etocdepthtag.toc {globalcmds}
+
+\part{Befehle für den toc-Display-Stil}
+\label{part:globalcmds}
+
+\thispartstats
+
+\etocsettocstyle{}{}
+\etocstandardlines
+\localtableofcontents \label{toc:globalcmds}
+
+
+\section{Festlegung des toc-Display-Stils}
+
+
+Der \emph{toc display}-Stil gibt an, ob das Inhaltsverzeichnis mit mehreren
+Spalten erscheint oder nur mit einer, ob der Titel gesetzt ist wie in der
+|article|- oder |book|-Klasse, oder ob er über den Einträgen zentriert sein
+soll, mit Regeln an der Seite, oder ob das gesamte Inhaltsverzeichnis in einen
+Rahmen gepackt werden soll. Entscheidet man sich bspw. für eine einheitliche
+Überschrift und ein Ein-Spalten-Layout, so verwendet man dafür folgende Befehle:
+\begin{verbatim}
+\etocruledstyle[1]{Title} \tableofcontents (or \localtableofcontents)
+shortcuts: \etocruled[1]{Title} (or \etoclocalruled[1]{Title})
+\end{verbatim}
+
+\subsection{Der Befehl \csbhyp{etocsettocstyle}}
+\label{etocsettocstyle}
+
+Dies ist ein Befehl mit zwei notwendigen Argumenten:
%
-% 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/pdflatex.
+\centeredline{\csb{etocsettocstyle}\marg{before\_toc}\marg{after\_toc}}
%
-% Installation:
+Der \marg{before\_toc}-Teil ist verantwortlich für den Schriftsatz der
+Ãœberschriften, so kann er beispielsweise etwas sein wie
+\starit{section}|{\contentsname}|.
+
+Generell gesprochen, sollte diese Ãœberschrift \TeX{} im "`Vertikal-Modus"'
+lassen, wenn der eigentliche Schriftsatz des Inhalts beginnt: die Linienstile
+(entweder von den Standardklassen oder den Paketlinenstilen) erwarten alle im
+`Vertikal-Modus' zu starten.
+
+Das erste Argument von \csb{etocsettocstyle} kann auch Instruktionen beinhalten,
+um die Seitenüberschriften zu markieren. Oder es kann prüfen (|book|-Klasse), ob
+der Zwei-Spalten-Modus eingeschaltet ist, um dann zum Ein-Spalten-Modus zu
+wechseln. Der \meta{after\_toc}-Teil würde dann wieder den Ein-Spalten-Modus
+aktivieren.
+
+Die im Folgenden beschriebenen Befehle \csb{etocmulticolstyle},
+\csb{etocruledstyle} und \csb{etocframedstyle} rufen alle \csa{etocsettocstyle}
+als Subroutine auf, um eine \texttt{Mehr\-spalten}-Umgebung mit Hilfe von
+\marg{before\_toc} zu starten, welche mit \marg{after\_toc} wieder geschlossen
+wird.
+
+\subsection{Die Befehle \csbhyp{etocmulticolstyle}, \csbhyp{etocmulticol} und
+\csbhyp{etoclocalmulticol}}
+\label{etocmulticolstyle}
+\label{etocmulticol}
+\label{etoclocalmulticol}
+
+Dies ist ein Befehl mit einem optionalen und einem notwendigen Argument:
%
-% etoc.sty->TDS:tex/latex/etoc/etoc.sty
-% etoc.dtx->TDS:source/latex/etoc/etoc.dtx
-% etoc.pdf->TDS:doc/latex/etoc/etoc.pdf
+\centeredline{\csb{etocmulticolstyle}\oarg{number\_of\_columns}\marg{heading}}
+%
+Die
+\oarg{number\_of\_coloumns} können von 1 bis 10 gehen (default: 2; ist der Wert
+1, so wird natürlich keine |multicols|-Umgebung angelegt). Das \meta{heading}
+wird typischerweise `vertikaler' Art sein, also wie: \meta{heading} =
+|\section*|\marg{title}, aber man kann auch horizontale Dinge realisieren wie
+|\fbox{Hallo Welt}| (\etoc fügt automatisch ein |\par| ans Ende des
+"`heading"'-Arguments von \csb{etocmulticolstyle}). Hier ist einmal exemplarisch
+dargestellt, wie das Haupt-Inhaltsverzeichnis dieses Dokuments konfiguriert
+wurde:
+\begin{verbatim}
+\etocmulticolstyle{\noindent\bfseries\Large
+ \leaders\hrule height1pt\hfill
+ \MakeUppercase{Table of Contents}}
+\end{verbatim}
+Nach \csa{etocmulticolstyle} haben alle zukünftigen \csa{tableofcontents} den
+spezifizierten Stil, falls es zwischendurch nicht mehr geändert wird. Eine
+kürzere Variante für nur ein Inhaltsverzeichnis ohne Einfluss auf spätere ist:
+\centeredline{\csa{etocmulticol}\oarg{number\_of\_columns}\marg{heading}} oder
+\centeredline{\csa{etoclocalmulticol}\oarg{number\_of\_columns}\marg{heading}.}
+
+\subsubsection{Der Befehl \csbhyp{etoctocstyle}}
+\label{etoctocstyle}
+
+\centeredline{\csb{etoctocstyle}\oarg{kind}%
+\marg{number\_of\_columns}\marg{title}}
+\centeredline{=\csb{etocmulticolstyle}|[|{\itshape number\_of\_columns}|]|%
+|{\kind*{|\itshape title\upshape|}}|}
+Wobei |Typ| gewählt wird aus |chapter|, |section| usw. Standardwert ist
+|chapter| oder |section|, abhängig von der Dokumentklasse.
+
+\paragraph{\texorpdfstring{\csbhyp{etoc\-toc\-style\-with\-marks}}{etoctocstylewithmarks}}%
+\leavevmode\unskip{\color{blue}\oarg{kind}\marg{number\_of\_columns}\marg{title}\marg{mark}}
+\label{etoctocstylewithmarks}
+\label{etoctocstylewithmarksnouc}
+
+\centeredline
+{=\csb{etocmulticolstyle}|[|{\itshape number\_of\_columns}|]|%
+|{\kind*{|\itshape title \ttfamily\upshape\string\markboth%
+|{\MakeUppercase{|{\rmfamily\itshape mark}|}}}}|}
+Wobei |Typ| gewählt wird aus |chapter|, |section| usw. Die wirkliche Anzeige der
+Markierungen ("`marks"') hängt vom Seitenstil ab. Es gibt die Variante
+\csb{etoctocstylewithmarksnouc}, welche Großschreibung unterdrückt.
+
+\paragraph{Möchten wir wirklich pargraph-Einträge im Inhaltsverzeichnis?}
+
+\paragraph{Wirklich?}
+
+\subsection{Die Befehle \csbhyp{etocruledstyle}, \csbhyp{etocruled} und
+ \csbhyp{etoclocal\-ruled}}
+\label{etocruledstyle}
+\label{etocruled}
+\label{etoclocalruled}
+
+Das generelle Format von \csa{etocruledstyle} ist:
+\centeredline{\csb{etocruledstyle}%
+ \oarg{number of columns}\marg{title of the toc}}
+\noindent
+Der Titel ist horizontales Material (der |LR|-Modus von \emph{\LaTeX{}, ein
+Dokument-Vorbereitung-System,}): wenn es nicht in eine Zeile passt, dann sollte
+es in eine \csa{parbox} mit einer gegebenen Weite geschrieben werden. Der grüne
+Rahmen für die Überschrift des Inhaltsverzeichnisses zu \hyperref[toc:a]{Beginn
+des zweiten Teils dieses Dokuments} wurde erzeugt durch:
+\begin{verbatim}
+\etocruledstyle[1]{\etocfontminusone\color{green}%
+ \fboxrule1pt\fboxsep1ex
+ \framebox[\linewidth]
+ {\normalcolor\hss Contents of this part\hss}}
+\end{verbatim}
+
+Eine kürzerer Weg den Stil zu setzen mit \csb{etocruledstyle} und dann einen
+\csa{tableofcontents} zu erstellen, alles zusammen in einer Gruppe damit
+zukünftige Inhaltsverzeichnisse nicht betroffen sind, ist:
+\centeredline{\csb{etocruled}\oarg{number\_of\_columns}\marg{title}}
+
+\subsection{Die Befehle \csbhyp{etocframedstyle}, \csbhyp{etocframed}
+und \csbhyp{etoclocal\-framed}}
+\label{etocframedstyle}
+\label{etocframed}
+\label{etoclocalframed}
+
+Die gleiche Arbeitsweise:
%
-% etoc.tex, etoc.ins, etoc.aux, etoc.toc, etc... may be discarded
+\centeredline{\csb{etocframedstyle}\oarg{number\_of\_columns}\marg{title}}
+und die passende Abkürzung:
%
+\centeredline{\csb{etocframed}\oarg{number\_of\_columns}\marg{title}}
+Diese wird
+verwendet, wenn man nicht den Stil zukünftiger Inhaltsverzeichnisse modifizieren
+will (eine ändere Möglichkeit wäre es, das Ganze in Klammern zu packen oder
+innerhalb eines |\begingroup...\endgroup|; es gibt auch noch einen
+\csa{etoclocalframed} für ein lokales Inhaltsverzeichnis).
+
+Das gesamte Inhaltsverzeichnis ist eingerahmt. Der Titel selbst aber nicht:
+Möchte man das erreichen, dann muss man das im \meta{title}-Argument mit
+\csa{etocframedstyle} oder \csa{etocframed} festhalten. Die Farben für den
+Hintergrund und der anderen Komponenten (oben, links, rechts, unten) des Rahmens
+sind festgelegt mittels geeigneter |\renewcommand|'s (siehe
+\autoref{ssec:customdisplay}).
+
+Eine |minipage| wird benutzt, von daher ist das produzierte Inhalsverzeichnis
+nicht kompatibel mit Seitenumbrüchen. Um diese zu erlauben, wird empfohlen, die
+Befehle
+\href{http://ctan.org/pkg/mdframed}{mdframed}\footnote{\url{http://ctan.org/pkg/mdframed}}
+oder
+\href{http://ctan.org/pkg/tcolorbox}{tcolorbox}\footnote{\url{http://ctan.org/pkg/tcolorbox}}
+in den Argumenten von \csb{etocsettocstyle} zu verwenden.
+
+Beispiele in diesem Dokument findet man auf den Seiten \pageref{toc:d},
+\pageref{toc:floating}, \pageref{toc:b} und \pageref{toc:clone}.
+
+\subsection{Ãœberschriften, Titel, \csbhyp{etocoldpar}, \csbhyp{etocinnertopsep}}
+\label{etocinnertopsep}
+\label{etocoldpar}
+
+Das für \csb{etocmulticolstyle} notwendige \meta{heading}-Argument kann entweder
+Vertikal-Modus-Material sein wie |\section*{\emph{Inhaltsverzeichnis}}| oder die
+horizontale Variante wie das einfache |\etocmulticolstyle{Hallo Welt}|.
+
+Es kann kein explizites |\par| oder eine Leerzeile in das notwendige Argument
+von \csb{etocmulticolstyle} eingefügt werden, aber \etoc stellt \csb{etocoldpar}
+als Ersatz bereit: Es fügt |\let\etocoldpar\par| vor der |multicols|-Umgebung
+ein und eben dieses |\etocoldpar|\footnote{Dieser Befehl \csa{etocoldpar} (=
+funktionierendes \csa{par} im Argument von \csa{etocmulticolstyle}) ist nicht
+verwandt mit dem Schalter \csb{etocinline}, dessen Zweck es ist \etoc
+mitzuteilen, kein \csa{par} vor dem Inhaltsverzeichnis auszuführen.} am Ende der
+Überschrift ein, und macht dann noch einen vertikalen Sprung der Größe
+\csa{etocinnertopsep}.
+
+Auf der anderen Seite erwarten die Befehle \csb{etocruledstyle} und
+\csb{etocframedstyle} ein Argument im "`LR-Modus"' (um die Terminologie von
+\emph{\LaTeX, a document preparation system} zu nutzen). Das bedeutet, dass
+mehrzeilige Titel nur möglich sind, wenn man sie in etwas wie eine \csa{parbox}
+einschließt.
+
+Eine wichtige Größe verwendet von sowohl \csb{etocmulticolstyle},
+\csb{etocruledstyle} als auch \csb{etocframedstyle} ist \csb{etocinnertopsep}.
+Es gibt an, wieviel Platz zwischen den Ãœberschriften und dem Start des Inhalts
+liegen soll. Der Default-Wert ist |2ex| und man kann es mittels
+|\renewcommand*{\etocinnertopsep}|\marg{neuer\_Wert} ändern, nicht mit
+|\setlength|.
+
+\subsection{Der Kompatibilitätsmodus \csbhyp{etocstandarddisplaystyle}}
+\label{etocstandarddisplaystyle}
+
+\etoc wird dann das emulieren, für was eigentlich die Dokument-Klasse
+verantwortlich ist, in Bezug auf den globalen Display-Stil des
+Inhaltsverzeichnisses. Allen Änderung von innerhalb der Klasse sollten
+berücksichtigt werden.
+
+\subsection{Der Befehl \csbhyp{etoc\-inline}}
+\label{etocinline}
+\label{etocnopar}
+
+Mit \csb{etocinline} oder seinem Synonym |\etocnopar|, dem
+|\tableofcontents|-Befehl und seinen Varianten wird \emph{nicht} zuerst ein
+|\par| erstellt, um den vorherigen |paragraph| zu schließen. Von daher kann man
+das Inhaltsverzeichnis in einem Inline-Stil darstellen; oder, wenn nur gebraucht
+um eine Token-Liste bzw. ein Makro vorzubereiten, wird es bei der Ausführung
+nichts im Token-Stream hinterlassen.
+
+\section{Gesternde Varianten des \csbhyp{tableofcontents} etc. Befehls}
+\label{tableofcontents*}
+\label{localtableofcontents*}
+\label{etocaftertitlehook}
+\label{etocaftercontentshook}
+\label{etocmemoirtoctotocfmt}
+
+Die Befehle \toc, \localtoc, \csa{etocmulticol} und all ihre Cousins und
+Varianten haben Stern-Varianten (der Stern muss vor den anderen Argumenten
+kommen). Für alle Klassen außer |memoir| verhalten diese sich wie die Originale.
+Für |memoir| jedoch, schreibt das Original einen Eintrag in die |.toc|-Datei,
+genau so wie die Verwendung des echten \toc Befehls in dieser Klasse, während
+aber die Stern-Variante genau das nicht tut, wie es in |memoir| die Regel ist.
+
+Sobald man damit beginnt, lokale Inhaltsverzeichnisse zu benutzen merkt man,
+dass der |memoir|-Standard, welcher dazu gedacht ist, einen |chapter|-Eintrag
+für jedes Inhaltsverzeichnis zu erzeugen, nicht praktisch ist. Der Befehl
+\csb{etocmemoirtoctotocfmt}\marg{Typ}\allowbreak\marg{name} ändert das Format
+(\meta{Typ} ist wieder |chapter|, |section|, |subsection| etc. und \meta{name}
+kann bspw. \csa{contentsname} sein.) Die Standardwerte für diese Größen sind
+|chapter| und |\contentsname|.
+
+Das Format der tatsächlichen Überschrift des Inhaltsverzeichnisses sollte
+ebenfalls ordnungsgemäß gesetzt werden (z.\,B. mit \csa{etoctocstyle}), um
+einfach die selbe Einheitsgröße zu nutzen wie im ersten Argument von
+\csa{etocmemoirtoctotocfmt}.
+
+Eine ungewöhnliche Situation tritt auf, wenn man zwei aufeinanderfolgende
+\csa{localtableofcontents} hat (offensichtlich ist das eine nicht sehr
+wahrscheinliche Situation), direkt nach einem \csa{part} zum Beispiel. Der erste
+würde dann eine Kapitelüberschrift erzeugen (wenn der Standard nicht geändert
+wurde, wie oben angedeutet), welche in die |.toc|-Datei geschrieben werden
+würde. Das zweite Inhaltsverzeichnis denkt dann, es ist ein lokales zu diesem
+Kapitel gehörig und würde aus diesem Grund nichts darstellen. Die Lösung für
+dieses Problem ist es, das zweite als Klon des ersten zu definieren.
+
+Unabhängig von der Situation hat man bei der |memoir|-Klasse immer ein
+Hook-Makro namens \csb{etocaftertitlehook}, welches man unterdrückt, indem man
+die Stern-Varianten der Darstellungsbefehle nutzt. Außer für die |memoir|-Klasse
+ist dieser Hook dazu gedacht, überhaupt nichts zu tun. Außerdem gibt es noch
+\csb{etocaftercontentshook}, ähnlich definiert, um nichts zu tun. Sie können für
+einige spezielle Effekte genutzt werden.
+
+\section{Das In\-halts\-ver\-zeic\-hnis von die\-sem Teil}
+
+\subsection{Über\-prü\-fen des Kom\-pa\-tibilitäts\-modus}
+
+Als drittes Beispiel wollen wir nun das Inhaltsverzeichnis dieses Teils setzen.
+Dazu wollen wir zuerst den Kompatibilitätsmodus testen.\footnote{Dieses
+Dokument wurde als |scrartcl| gesetzt. Wir wollen nun testen, ob
+der Kompatibilitätsmodus des \etoc-Pakets die Anpassungen innerhalb der
+Klassenbefehle umsetzt.} Das ursprüngliche Inhaltsverzeichnis ist
+unsichtbar und wurde am Anfang von \autoref{part:globalcmds} definiert,
+wobei es mit einem Label versehen wurde.
+\begin{verbatim}
+\KOMAoptions{toc=left}
+\etocstandarddisplaystyle % wird benötigt, damit toc=left gilt
+\etocstandardlines
+\tableofcontents \ref{toc:globalcmds}
+\end{verbatim}
+\KOMAoptions{toc=left}
+\etocstandarddisplaystyle
+\etocstandardlines
+\tableofcontents \ref{toc:globalcmds}
+
+\subsection{Ein In\-halts\-ver\-zeich\-nis mit Rahmen}
+
+Als nächstes wollen wir ein gerahmtes Inhaltsverzeichnis erzeugen, wobei wir den
+vom Paket vorgegebenen Linienstil nutzen und ein paar Farben hinzufügen wollen.
+(Es wurde in eine Float-Umgebung eingefügt, die man \vpageref{toc:b}
+findet.)\footnote{Innerhalb der |figure|-Umgebung und vor dem gerahmten
+Inhaltsverzeichnis, welches die Option |multicols| nutzt, haben wir den Befehl
+\csa{normalcolor} eingefügt, um einen Bug zu umgehen, der durch die Interaktion
+zwischen |multicols|, |color| und der |figure|-Umgebung entsteht. (Wir brauchen
+den Befehl \csa{color\{red\}} in der |.toc|-Datei.) Der Fehler wird nicht durch
+das \etoc-Paket verursacht.}
+
+\begin{verbatim}
+\etocdefaultlines
+\begingroup
+\renewcommand{\etoccolumnsep}{2em}
+\renewcommand{\etocinnerleftsep}{1.5em}
+\renewcommand{\etocinnerrightsep}{1.5em}
+% Befehle für die Hintergrundfarbe des Inhaltsverzeichnisses
+\renewcommand{\etocbkgcolorcmd}{\color{yellow!10}}
+% Befehle für die Rechtecke vor und nach dem Inhalt des Verzeichnisses
+\renewcommand{\etoctoprule}{\hrule height 1pt}
+\renewcommand{\etoctoprulecolorcmd}{\color{red!25}}
+\renewcommand{\etocbottomrule}{\hrule height 1pt}
+\renewcommand{\etocbottomrulecolorcmd}{\color{red!25}}
+% Befehle für die Rechtecke links und rechts des Inhaltsverzeichnisses
+\renewcommand{\etocleftrule}{\vrule width 5pt}
+\renewcommand{\etocrightrule}{\vrule width 5pt}
+\renewcommand{\etocleftrulecolorcmd}{\color{red!25}}
+\renewcommand{\etocrightrulecolorcmd}{\color{red!25}}
+% mit \fcolorbox legen wir einen farbigen Rahmen für den Titel an
+\fboxrule1pt
+\renewcommand{\etocbelowtocskip}{0pt\relax}
+\etocframedstyle {\normalsize\rmfamily\itshape
+ \fcolorbox{red}{white}{\parbox{.8\linewidth}{\centering
+ Dies ist das nach \etoc gestaltete Inhaltsverzeichnis, welches
+ jedoch nur die Abschnitte und Unterabschnitte dieses Teils
+ enthält. Da es gerahmt ist, darf es nicht größer sein als eine Seite.
+ Es hat das Label |toc:b|.}}}
+\begin{figure}[ht!]
+ \centering
+\normalcolor % Workaround für einen Bug von color und multicols (und figure)
+\tableofcontents \label{toc:b} \ref{toc:globalcmds}
+\end{figure}
+\endgroup
+\end{verbatim}
+
+
+\etocdefaultlines
+\begingroup
+\renewcommand{\etoccolumnsep}{2em}
+\renewcommand{\etocinnerleftsep}{1.5em}
+\renewcommand{\etocinnerrightsep}{1.5em}
+% specify a background color for the toc contents
+\renewcommand{\etocbkgcolorcmd}{\color{yellow!10}}
+% set up the top and bottom rules
+\renewcommand{\etoctoprule}{\hrule height 1pt}
+\renewcommand{\etoctoprulecolorcmd}{\color{red!25}}
+\renewcommand{\etocbottomrule}{\hrule height 1pt}
+\renewcommand{\etocbottomrulecolorcmd}{\color{red!25}}
+% set up the left and right rules
+\renewcommand{\etocleftrule}{\vrule width 5pt}
+\renewcommand{\etocrightrule}{\vrule width 5pt}
+\renewcommand{\etocleftrulecolorcmd}{\color{red!25}}
+\renewcommand{\etocrightrulecolorcmd}{\color{red!25}}
+% use \fcolorbox to set up a colored frame for the title
+\fboxrule1pt
+\renewcommand{\etocbelowtocskip}{-.5\baselineskip\relax}
+\etocframedstyle {\normalsize\rmfamily\itshape
+ \fcolorbox{red}{white}{\parbox{.8\linewidth}{\centering
+ Dies ist das nach \etoc gestaltete Inhaltsverzeichnis, welches
+ jedoch nur die Abschnitte und Unterabschnitte dieses Teils
+ enthält. Da es gerahmt ist, darf es nicht größer sein als eine Seite.
+ Es hat das Label |toc:b|.}}}
+\begin{figure}[ht!]
+ \centering
+\normalcolor % work-around to a bug involving color and multicols (and figure)
+\tableofcontents \label{toc:b} \ref{toc:globalcmds}
+\end{figure}
+\endgroup
+
+% Il y a un color leak du framed mais uniquement lorsqu'il est mis dans le
+% float. 2013/10/13, qui révèle un bug (?? NON) du style framed je vais regarder
+% mais bon. Le leak apparaît avec ruled aussi, et même avec juste multicolstyle
+% MAIS PAS EN UNE SEULE COLONNE (même framed ou ruled). il semble qu'il y aie
+% donc un problème d'interaction avec multicol là. à voir. Pas le temps
+% maintenant.
+
+% 2013/10/14
+% il s'agit en fait d'un bug de color+multicols+figure qui n'a rien à voir avec
+% etoc:
+% http://tex.stackexchange.com/questions/138783/color-leak-from-multicols-within-a-figure
+% J'ai trouvé le work-around qui consiste simplement à ajouter un \normalcolor
+% _avant_ le multicols à l'intérieur de figure
+
+\subsection{Eine (verrückte) In\-line-Dar\-stellung}
+
+Nun wollen wir eine etwas verrückte Inline-Darstellung erzeugen, womit das
+Inhaltsverzeichnis des gesamten Dokuments gesetzt werden soll. Hier werden die
+Unterabschnitte als Fußnoten dargestellt. Diese Art der Darstellung bietet sich
+eher für verlinkte Dokumente an, weniger für gedruckte! (Mir hingegen gefällt
+diese Art der Darstellung, obwohl mein Geschmack scheinbar oft nicht geteilt
+wird.)
+
+%%%% Note: 27 april 2014
+
+%%%% except for a miraculous situation depending from the quantity of previous
+%%%% material this TOC will have links extending accross pagebreaks, which
+%%%% dvipdfmx does not know how to handle completely. Apart from that the output
+%%%% is ok, thus no need to try seriously to avoid them.
+
+\begingroup
+\newsavebox{\forsubsections}
+\etocsetstyle{part}{\upshape. \etocskipfirstprefix}{. \upshape}{\bfseries\etocname:~~}{}
+\etocsetstyle{section}{\itshape\etocskipfirstprefix}{, }{\mdseries\etocname}{}
+\etocsetstyle{subsection}
+ {\begin{lrbox}{\forsubsections}\upshape\etocskipfirstprefix}
+ {; }
+ {\etocname}
+ {\end{lrbox}\footnote{\unhbox\forsubsections.}}
+\etocsetstyle{subsubsection}{ (\itshape\etocskipfirstprefix}
+ {, }{\etocname}{\/\upshape)}
+\etocsettocstyle{Hier ist das inline dargestellte Inhaltsverzeichnis. }{.\par}
+\tableofcontents \label{toc:crazyinline}
+\endgroup
+
+Zur Erzeugung dieses Inhaltsverzeichnisses wurde folgender Code genutzt:
+\begin{verbatim}
+\begingroup
+\newsavebox{\forsubsections}
+\etocsetstyle{part}{\upshape. \etocskipfirstprefix}{. \upshape}
+ {\bfseries\etocname:~~}{}
+\etocsetstyle{section}{\itshape\etocskipfirstprefix}{, }
+ {\mdseries\etocname}{}
+\etocsetstyle{subsection}
+ {\begin{lrbox}{\forsubsections}\upshape\etocskipfirstprefix}
+ {; }{\etocname}{\end{lrbox}\footnote{\unhbox\forsubsections.}}
+\etocsetstyle{subsubsection}
+ { (\itshape\etocskipfirstprefix}{, }{\etocname}{\/\upshape)}
+\etocsettocstyle{Hier ist das inline dargestellte Inhaltsverzeichnis. }{.\par}
+\tableofcontents
+\endgroup
+\end{verbatim}
+
+\etocdepthtag.toc {custom}
+
+\part{\etoc nutzen und an\-passen}
+\label{part:custom}
+\thispartstats
+
+\etocdefaultlines
+\renewcommand{\etoctoprule}{\hrule height2pt depth0pt}
+\renewcommand{\etoctoprulecolorcmd}{\color{red}}
+
+\etocruledstyle{\normalfont\normalsize\rmfamily\fboxrule1pt\color{red}%
+ \fbox{\parbox{.8\linewidth}{\centering\normalcolor Dies ist das
+ Inhaltsverzeichnis mit den Abschnitten und Unterabschnitten von
+ diesem Teil. Es hat das Label |toc:c|.}}}
+
+\localtableofcontents \label{toc:c}
+
+\section{Über\-blick über die Grund\-befehle zur Stil\-bearbeitung}
+
+\subsection{Ein lokales Inhalts\-ver\-zeich\-nis an\-passen}
+\hbox{\color{green}\fboxrule1pt\fboxsep1em
+\setbox0\hbox{\csa{etocthename}, \csa{etocthenumber}, \csa{etocthepage}, \csa{etoclink}\marg{Name des Links}}%
+\framebox[\linewidth][c]
+{\vbox{\hsize\wd0\normalcolor\noindent
+\csa{etocsetstyle}\marg{Name der Ebene}%
+ \marg{Start}\marg{Präfix}\marg{Inhalt}\marg{Abschluss}\\
+\csa{etocname}, \csa{etocnumber}, \csa{etocpage},
+\csa{etocifnumbered}\marg{A}\marg{B}\\
+\csa{etocthename}, \csa{etocthenumber}, \csa{etocthepage}, \csa{etoclink}\marg{Name des Links}
+}}}
+
+\subsection{Das Aus\-sehen eines Inhalts\-ver\-zeichnisses an\-passen}
+\medskip
+\hbox{\color{green}\fboxrule1pt\fboxsep 1em
+\setbox0\hbox{\csa{etoctocstylewithmarksnouc}\oarg{Ebene}%
+\marg{Anzahl der Spalten}\marg{Titel}\marg{Symbol}}%
+\framebox[\linewidth][c]
+{\vbox{\hsize\wd0
+\normalcolor\noindent
+\csa{etocmulticolstyle}\oarg{Anzahl der Spalten}\marg{Ãœberschrift}\\
+\csa{etoctocstyle}\oarg{Ebene}\marg{Anzahl der Spalten}\marg{Titel}\\
+\csa{etoctocstylewithmarks}\oarg{Ebene}\marg{Anzahl der Spalten}%
+\marg{Titel}\marg{Symbol}\\
+\csa{etoctocstylewithmarksnouc}\oarg{Ebene}\marg{Anzahl der Spalten}%
+\marg{Titel}\marg{Symbol}\\
+\csa{etocruledstyle}\oarg{Anzahl der Spalten}\marg{Titel}\\
+\csa{etocframedstyle}\oarg{Anzahl der Spalten}\marg{Titel}\\
+\csa{etocsettocstyle}\marg{vor dem Inhaltsverzeichnis}\marg{nach dem Inhaltsverzeichnis}}}}
+
+\subsection{In\-halts\-ver\-zeich\-nisse dar\-stellen}
+\medskip \hbox{\color{green}\fboxrule1pt\fboxsep1em
+ \setbox0\hbox{\csa{etocname}, \csa{etocnumber},
+ \csa{etocpage}, \csa{etocifnumbered}\marg{A}\marg{B}}%
+ \framebox[\linewidth][c]
+ {\vbox{\hsize\wd0\normalcolor\noindent
+ \toc\\
+ \localtoc\\
+ \csa{etocmulticol}\oarg{Anzahl der Spalten}\marg{Ãœberschrift}\\
+ \csa{etoclocalmulticol}\oarg{Anzahl der Spalten}\marg{Ãœberschrift}\\
+ \csa{etocruled}\oarg{Anzahl der Spalten}\marg{Titel}\\
+ \csa{etoclocalruled}\oarg{Anzahl der Spalten}\marg{Titel}\\
+ \csa{etocframed}\oarg{Anzahl der Spalten}\marg{Titel}\\
+ \csa{etoclocalframed}\oarg{Anzahl der Spalten}\marg{Titel}\\
+ \hbox{}{\itshape\ttfamily\ \ \ \ und die mit Sternchen versehenen Varianten}
+ }}}
+
+\subsection{Label und Referenzen}
+
+Optional dürfen die Befehle für Label oder Referenzen auf die Befehle, die die
+Darstellung des Inhaltsverzeichnisses realisieren, folgen. Hierbei ist
+unwichtig, ob letztere mit Sternchen versehen sind oder nicht.\par
+
+\medskip \hbox{\color{green}\fboxrule1pt\fboxsep1em
+ \setbox0\hbox{\csa{etocname}, \csa{etocnumber},
+ \csa{etocpage}, \csa{etocifnumbered}\marg{A}\marg{B}}%
+ \framebox[\linewidth][c]
+ {\vbox{\hsize\wd0\normalcolor\noindent
+ \toc \csa{label}|\{toc:here\}|\\
+ \toc \csa{ref}|\{toc:far\}| \\
+ \toc \csa{label}|\{toc:here\}| \csa{ref}|\{toc:far\}| \\
+ \localtoc \csa{label}|\{toc:here\}|\\
+ \hbox{}{\itshape\ttfamily\ \ \ \ \ }%
+ \csa{etocmulticol}{\itshape\ttfamily, etc. funktionieren ähnlich}
+ }}}
+
+
+\medskip Ein \csa{ref}-Befehl, der auf einen Befehl zur Erzeugung eines lokalen
+Inhaltsverzeichnisses folgt, hat \emph{keinen} Einfluss auf diesen. Wird ein
+anderes Inhaltsverzeichnis erneut dargestellt, so wird nur dessen Inhalt
+angepasst. Sowohl das Aussehen des Inhaltsverzeichnisses als auch die
+Darstellung seiner Linien orientieren sich an dem, das gerade definiert wurde
+und nicht an dem, von dem der Inhalt übernommen wurde.
+
+\section{Der Linien\-standard des Pakets: \csbhyp{etoc\-defaultlines}}
+\label{etocdefaultlines}
+
+Die Linienstile stammen bereits aus einer frühen Entwicklungsphase des Pakets,
+weswegen sie sich noch sehr an \TeX{} orientieren und dadurch gruselig aussehen.
+Daher bieten sie keinen guten Einstiegspunkt. Oft muss man, will man an dem Stil
+etwas ändern, diesen aus dem Quellcode kopieren und direkt bearbeiten. Trotzdem
+soll in diesem Abschnitt erläutert werden, wie die Schriftarten, die vertikalen
+Abstände, etc. des gewählten Linienstils verändert werden können.
+
+Wurden die vorgegebenen Linienstile nicht durch \csa{etocsetstyle} verändert, so
+kann man sie mit den Befehlen \csa{etocdefaultlines} bzw. \csa{etoctoclines}
+einschalten. Außer, dass der Einzug eines Unterabschnitts etwas kleiner ist als
+der eines Abschnitts, gleichen sich beide Gliederungsebenen. (Wie dieses
+Dokument zeigt, werden Abschnitte in Dokumentklassen, denen der Befehl
+\csa{chapter} fehlt, stets mit einer fettgedruckten Type gesetzt.)
+Unter-Unterabschnitte werden inline, im selben Paragraphen und ohne Nummer oder
+Seitenzahl dargestellt. Dieser Stil wurde für Dokumente, die viele
+Unter-Unterabschnitte enthalten, entwickelt und anschließend mit solchen
+getestet. Für derartige Dokumente sollte ein zweispaltiges Layout verwendet
+werden, da diese Darstellung kompakter ist als jene, die standardmäßig durch
+\LaTeX{} erzeugt wird.\footnote{Außerdem werden dadurch einzelne Teil- bzw.
+ Kapiteleinträge am Ende einer Seite oder einer Spalte vermieden, solange diese
+ weiter untergliedert sind.} Verwendet man hingegen ein einspaltiges Layout und
+enthält der Teil nur wenige Unter-Unterabschnitte, so wird das
+Inhaltsverzeichnis im Vergleich zur mit \LaTeX{} gesetzten Variante etwas in die
+Breite gezogen. Weiterhin wirkt diese Darstellung weniger hierarisch als der
+\LaTeX{}-Standard, da sich die Darstellung von Abschnitten und Unterabschnitten
+kaum unterscheidet. (Dies gilt besonders, wenn die Dokumentklasse den Befehl
+\csa{chapter} erlaubt.)
+
+Da wir für das \hyperref[toc:main]{zentrale Inhaltsverzeichnis}
+|\etocsetlevel{subsection}{3}| gesetzt haben, werden die Unterabschnitte und die
+Unter-Unterabschnitte inline dargestellt.
+
+Im Gegensatz dazu wollen wir nun das zentrale Inhaltsverzeichnis so darstellen,
+als ob wir eine Dokumentklasse genutzt hätten, die den Befehl \csa{chapter}
+erlaubt. Daher werden die Abschnitte im Folgenden als Kapitel und die
+Unterabschnitte als Abschnitte gedruckt, was wir u. a. mit Hilfe des Befehls
+\csa{etocsetlevel} erreichen. Zusätzlich nutzen wir für Abschnitte, welche in
+Wirklichkeit unsere Unterabschnitte sind, statt der fetten Serie einer
+Schriftart die halbfette Variante. Hierfür modifizieren wir den Befehl
+\csa{etocfontone}. Weiterhin nutzen wir einen gepunkteten Einzug, da dieser
+weniger Platz einnimmt als der Paketstandard.
+
+\begin{verbatim}
+\etocruledstyle[2]{\normalfont\normalsize\rmfamily\itshape
+ \fbox{\parbox{.6\linewidth}{
+ \leftskip 0pt plus .5fil
+ \rightskip 0pt plus -.5fil
+ \parfillskip 0pt plus 1fil
+ Dies ist das zentrale zweispaltige Inhaltsverzeichnis, das den
+ Standardlinienstil von \etoc nutzt, wobei die Abschnitte wie Kapitel und die
+ Unterabschnitte wie Abschnitte gesetzt wurden. }}}
+\etocdefaultlines
+\etocsetnexttocdepth{1}
+\begingroup
+\etocsetlevel{section}{0}
+\etocsetlevel{subsection}{1}
+\renewcommand*{\etocfontone}{\normalfont \normalsize}
+\renewcommand*{\etoctoclineleaders}
+ {\hbox{\normalfont\normalsize\hbox to 1ex {\hss.\hss}}}
+\sloppy
+\tableofcontents
+\endgroup
+\end{verbatim}
+
+\etocruledstyle[2]{\normalfont\normalsize\rmfamily\itshape
+ \fbox{\parbox{.6\linewidth}{
+ \leftskip 0pt plus .5fil
+ \rightskip 0pt plus -.5fil
+ \parfillskip 0pt plus 1fil Dies ist das zentrale zweispaltige
+ Inhaltsverzeichnis, das den Standardlinienstil von \etoc nutzt, wobei die
+ Abschnitte wie Kapitel und die Unterabschnitte wie Abschnitte gesetzt
+ wurden. }}}
+
+\etocdefaultlines
+\etocsetnexttocdepth{1}
+
+\begingroup
+\etocsetlevel{section}{0}
+\etocsetlevel{subsection}{1}
+\renewcommand*{\etocfontone}{\normalfont \normalsize}
+\renewcommand*{\etoctoclineleaders}
+ {\hbox{\normalfont\normalsize\hbox to 1ex {\hss.\hss}}}
+\sloppy
+\tableofcontents
+\endgroup
+
+\section{\etoc individuell an\-passen}
+
+\subsection{Den durch \etoc vor\-de\-finierten Linien\-stil individualisieren}
+
+Im Folgenden sollen einfach die wichtigsten Befehle des Pakets aufgelistet werden. Man kann diese
+bequem mittels \csa{renewcommand} anpassen:
+\begin{verbatim}
+\newcommand*\etocfontminustwo{\normalfont \LARGE \bfseries}
+\newcommand*\etocfontminusone{\normalfont \large \bfseries}
+\newcommand*\etocfontzero{\normalfont \large \bfseries}
+\newcommand*\etocfontone{\normalfont \normalsize \bfseries}
+\newcommand*\etocfonttwo{\normalfont \normalsize}
+\newcommand*\etocfontthree{\normalfont \footnotesize}
+
+\newcommand*\etocsepminustwo{4ex plus .5ex minus .5ex}
+\newcommand*\etocsepminusone{4ex plus .5ex minus .5ex}
+\newcommand*\etocsepzero{2.5ex plus .4ex minus .4ex}
+\newcommand*\etocsepone{1.5ex plus .3ex minus .3ex}
+\newcommand*\etocseptwo{.5ex plus .1ex minus .1ex}
+\newcommand*\etocsepthree{.25ex plus .05ex minus .05ex}
+
+\newcommand*\etocminustwoleftmargin{1.5em plus 0.5fil}
+\newcommand*\etocminustworightmargin{1.5em plus -0.5fil}
+\newcommand*\etocminusoneleftmargin{1em}
+\newcommand*\etocminusonerightmargin{1em}
+
+\newcommand*\etocbaselinespreadminustwo{1}
+\newcommand*\etocbaselinespreadminusone{1}
+\newcommand*\etocbaselinespreadzero{1}
+\newcommand*\etocbaselinespreadone{1}
+\newcommand*\etocbaselinespreadtwo{1}
+\newcommand*\etocbaselinespreadthree{.9}
+\newcommand*\etoctoclineleaders
+ {\hbox{\normalfont\normalsize\hbox to 2ex {\hss.\hss}}}
+\newcommand*\etocabbrevpagename{p.~} % muss der Sprache angepasst werden
+ % deutsche Nutzer: \renewcommand*\etocabbrevpagename{S.~}
+\newcommand*\etocpartname{\partname}
+\newcommand*\etocbookname{Book} % muss der Sprache angepasst werden
+\end{verbatim}
+
+Der Standardlinienstil kann innerhalb der \etoc-Umgebung nicht individualisiert
+werden. Wie bereits erwähnt, wird das Paket nach Aufruf des Befehls
+\etocstandardlines kaum verwendet und agiert lediglich auf globaler Ebene,
+sodass die Einträge des Inhaltsverzeichnisses (hoffentlich) so dargestellt
+werden, als ob das Paket \etoc fehlen würde.\footnote{Innerhalb der
+ KOMA-script-Klassen muss der Befehl \csa{etocstandarddisplaystyle} genutzt
+ werden, damit die Option |toc=left| auch für die Linieneinträge gilt.}
+
+Wurde mittels \csa{etocsetlevel} die Tiefe der Gliederung soweit herabgesetzt,
+dass \etoc die Befehle für bestimmte Gliederungsebenen kennt, so wirkt der
+Kompatibilitätsmodus, also \csa{etocstandardlines}, auch auf diese. Dies gilt
+natürlich nur für Gliederungsbefehle, die dem Standard von \LaTeX{} entsprechen
+und die alle Definitionen liefern, welche zum Darstellen von Einträgen im
+Inhaltsverzeichnis benötigt werden. (Es muss ein Makro der Art \csa{l@irgendwas}
+existieren.)
+
+Sobald der Befehl \csa{etocsetstyle} aufgerufen wird, wird zusätzlich der
+Kompatibilitätsmodus ausgeschaltet. Es spielt hierbei keine Rolle, ob der Befehl
+in der Präambel oder im Hauptteil des Dokuments steht.
+
+\subsection{Die Dar\-stellung eines Inhalts\-ver\-zeich\-nisses an\-spassen}
+\label{ssec:customdisplay}
+
+Erneut wollen wir uns darauf beschränken die relevanten Makros aufzulisten, da
+deren Funktion aus ihrem Namen ableitbar ist. Soll die Länge eines Befehls
+verändert werden, so muss der entsprechende Befehl mittels \csa{renewcommand}
+und nicht durch \csa{setlength} verändert werden. Weiterhin erlauben Befehle,
+welche die Farbe verändern, nicht nur die Standardfarben. Will man ihr Verhalten
+ändern, so muss man in der neuen Definition den Befehl \csa{color} aufrufen. Um
+ihre Wirkung zu beenden, muss man sie so neu definieren, dass sie danach nur den
+Befehl \csa{relax} enthalten.
+\begin{verbatim}
+\newcommand*\etocabovetocskip{3.5ex plus 1ex minus .2ex}
+\newcommand*\etocbelowtocskip{3.5ex plus 1ex minus .2ex}
+
+\newcommand*\etoccolumnsep{2em}
+\newcommand*\etocmulticolsep{0ex}
+\newcommand*\etocmulticolpretolerance{-1}
+\newcommand*\etocmulticoltolerance{200}
+\newcommand*\etocdefaultnbcol{2}
+\newcommand*\etocinnertopsep{2ex}
+\newcommand*\etoctoprule{\hrule}
+\newcommand*\etoctoprulecolorcmd{\relax}
+
+% nur für gerahmte Inhaltsverzeichnisse:
+\newcommand*\etocinnerleftsep{2em}
+\newcommand*\etocinnerrightsep{2em}
+\newcommand*\etocinnerbottomsep{3.5ex}
+
+\newcommand*\etocleftrule{\vrule}
+\newcommand*\etocrightrule{\vrule}
+\newcommand*\etocbottomrule{\hrule}
+\newcommand*\etocleftrulecolorcmd{\relax}
+\newcommand*\etocrightrulecolorcmd{\relax}
+\newcommand*\etocbottomrulecolorcmd{\relax}
+
+\newcommand*\etocbkgcolorcmd{\relax}
+
+% Haken
+\newcommand\etocframedmphook{\relax}
+\end{verbatim}
+
+Der Befehl \csa{etocframedmphook} ist direkt hinter dem Anfang einer Minipage,
+innerhalb der der Inhalt eines gerahmten Verzeichnisses gesetzt wird, verankert.
+
+Wurden die Farbbefehle, also \csa{...colorcmd}, nicht verändert, so expandieren
+sie lediglich zu \csa{relax}. (Daher muss man für ihre Verwendung nicht die
+Pakete |color| oder |xcolor| einbinden.) Hat man jedoch einen solchen Befehl -
+wie zum Beispiel \csa{etocbkgcolorcmd} - so verändert, dass er nun tatsächlich
+eine Farbe anzeigt, so kann dies nur mittels
+|\renewcommand{\etocbkgcolorcmd}{\relax}| aufgehoben werden und nicht durch
+\csa{let}\csa{etocbkgcolorcmd}\csa{relax}.
+
+Wie man an dem Beispiel \centeredline{|\renewcommand{\etoctoprule}{\hrule height
+ 1ex}|} erkennen kann, werden die Größen des oberen Rechtecks in den Maßen
+|ex| und |em| angegeben.
+
+Sobald der Titel während der Befehlsausführung von \csa{etocruledtoc} oder
+\csa{etocframedtoc} gesetzt wurde, nutzt der Paketcode dessen Schriftgröße, um
+die Bedeutung von \glq1ex\grq~zu ermitteln. Natürlich dürfen auch die anderen
+Befehle zur Erzeugung eines Rechtecks Maße annehmen, deren Wert sich nur durch
+eine zugehörige Schriftgröße ergibt. Hierbei dient jedoch die Schrift vor dem
+Inhaltsverzeichnis als Referenz.
+
+Wie in \TeX{} üblich, werden sowohl das Rechteck vor als auch das nach dem
+Inhalt des Verzeichnisses durch einfache Einzüge (einer festgelegten Höhe)
+realisiert. Es muss sich hierbei also nicht um echte Rechtecke handeln. Die
+Rechtecke links und rechts vom Inhalt werden hingegen nicht durch (horizontale)
+Einzüge verwirklicht. Sie stellen vielmehr Objekte einer bestimmten Weite dar.
+Daher darf hier \emph{nur} die Syntax von \TeX{}-Befehlen, mit deren Hilfe man
+Rechtecke erzeugt, genutzt werden.
+
+\section{Ein weiteres Bei\-spiel für ein farbiges Inhalts\-verzeichnis}
+\label{ssec:tocclone}
+
+Beim Befehl \csa{etocframedstyle} wird der Titel in der Mitte des oberen Rechtecks positioniert. Dies würde im folgenden Beispiel
+jedoch sehr unschön aussehen, weswegen wir den Titel innerhalb der \meta{start}-Umgebung eines Abschnittbefehls
+platzieren. Hierdurch wird er innerhalb des Rahmens gesetzt.
+
+\begin{verbatim}
+\begingroup
+\definecolor{subsecnum}{RGB}{13,151,225}
+\definecolor{secbackground}{RGB}{0,177,235}
+\definecolor{tocbackground}{RGB}{212,237,252}
+
+\renewcommand{\etocbkgcolorcmd}{\color{tocbackground}}
+\renewcommand{\etocleftrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocrightrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocbottomrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etoctoprulecolorcmd}{\color{tocbackground}}
+
+\renewcommand{\etocleftrule}{\vrule width 1cm}
+\renewcommand{\etocrightrule}{\vrule width .5cm}
+\renewcommand{\etocbottomrule}{\hrule height 12pt}
+\renewcommand{\etoctoprule}{\hrule height 12pt}
+
+\renewcommand{\etocinnertopsep}{0pt}
+\renewcommand{\etocinnerbottomsep}{0pt}
+\renewcommand{\etocinnerleftsep}{0pt}
+\renewcommand{\etocinnerrightsep}{0pt}
+
+\newcommand\shiftedwhiterule[2]{%
+ \hbox to \linewidth{\color{white}%
+ \hskip#1\leaders\vrule height1pt\hfil}\nointerlineskip\vskip#2}
+
+\etocsetstyle{subsubsection}{\etocskipfirstprefix}
+ {\shiftedwhiterule{\leftskip}{6pt}}
+ {\sffamily\footnotesize
+ \leftskip2.5cm\hangindent1cm\rightskip1cm\noindent
+ \hbox to 1cm{\color{subsecnum}\etocnumber\hss}%
+ \color{black}\etocname\leaders\hbox to .2cm{\hss.}\hfill
+ \rlap{\hbox to 1cm{\hss\etocpage\hskip.2cm}}\par
+ \nointerlineskip\vskip3pt}
+ {}
+
+\etocsetstyle{subsection}{\etocskipfirstprefix}
+ {\shiftedwhiterule{1.5cm}{6pt}}
+ {\sffamily\small
+ \leftskip1.5cm\hangindent1cm\rightskip1cm\noindent
+ \hbox to 1cm{\color{subsecnum}\etocnumber\hss}%
+ \color{black}\etocname\leaders\hbox to .2cm{\hss.}\hfill
+ \rlap{\hbox to 1cm{\hss\etocpage\hskip.2cm}}\par
+ \nointerlineskip\vskip6pt}
+ {}
+
+\newcommand{\coloredstuff}[2]{%
+ \leftskip0pt\rightskip0pt\parskip0pt
+ \fboxsep0pt % Auch ohne Rahmen nutzt \colorbox den Befehl \fboxsep!
+ \noindent\colorbox{secbackground}
+ {\parbox{\linewidth}{%
+ \vskip5pt
+ {\noindent\color{#1}#2\par}\nointerlineskip
+ \vskip3pt}}%
+ \par\nointerlineskip}
+
+\etocsetstyle{section}
+{\coloredstuff{white}
+ {\hfil \hyperref[toc:b]{\bfseries\large Ich bin der Zwilling von
+ diesem Verzeichnis (Klick mich an!)}\hfil}}
+{\vskip3pt\sffamily\small}
+{\coloredstuff{white}
+ {\leftskip1.5cm\rightskip.5cm\parfillskip-\rightskip
+ \makebox[0pt][r]{\makebox[.5cm][r]{\etocnumber\hspace{.2cm}}}%
+ \etocname\hfill\makebox[.5cm][r]{\etocpage\hspace{.2cm}}}%
+ \vskip6pt }
+{}
+
+\etocframedstyle[1]{}
+\tableofcontents \label{toc:clone} \ref{toc:globalcmds}
+\endgroup
+\end{verbatim}
+
+\begingroup
+\definecolor{subsecnum}{RGB}{13,151,225}
+\definecolor{secbackground}{RGB}{0,177,235}
+\definecolor{tocbackground}{RGB}{212,237,252}
+
+\renewcommand{\etocbkgcolorcmd}{\color{tocbackground}}
+\renewcommand{\etocleftrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocrightrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etocbottomrulecolorcmd}{\color{tocbackground}}
+\renewcommand{\etoctoprulecolorcmd}{\color{tocbackground}}
+
+\renewcommand{\etocleftrule}{\vrule width 1cm}
+\renewcommand{\etocrightrule}{\vrule width .5cm}
+\renewcommand{\etocbottomrule}{\hrule height 12pt}
+\renewcommand{\etoctoprule}{\hrule height 12pt}
+
+\renewcommand{\etocinnertopsep}{0pt}
+\renewcommand{\etocinnerbottomsep}{0pt}
+\renewcommand{\etocinnerleftsep}{0pt}
+\renewcommand{\etocinnerrightsep}{0pt}
+
+\newcommand\shiftedwhiterule[2]{%
+ \hbox to \linewidth{\color{white}%
+ \hskip#1\leaders\vrule height1pt\hfil}\nointerlineskip
+\vskip#2}
+
+\etocsetstyle{subsubsection}{\etocskipfirstprefix}
+{\shiftedwhiterule{\leftskip}{6pt}}
+{\sffamily\footnotesize
+\leftskip2.5cm\hangindent1cm\rightskip1cm\noindent
+\hbox to 1cm{\color{subsecnum}\etocnumber\hss}%
+\color{black}\etocname\leaders\hbox to .2cm{\hss.}\hfill
+\rlap{\hbox to 1cm{\hss\etocpage\hskip.2cm}}\par
+\nointerlineskip\vskip3pt}
+{}
+
+\etocsetstyle{subsection}{\etocskipfirstprefix}
+{\shiftedwhiterule{1.5cm}{6pt}}
+{\sffamily\small
+\leftskip1.5cm\hangindent1cm\rightskip1cm\noindent
+\hbox to 1cm{\color{subsecnum}\etocnumber\hss}%
+\color{black}\etocname\leaders\hbox to .2cm{\hss.}\hfill
+\rlap{\hbox to 1cm{\hss\etocpage\hskip.2cm}}\par
+\nointerlineskip\vskip6pt}
+{}
+
+\newcommand{\coloredstuff}[2]{%
+ \leftskip0pt\rightskip0pt\parskip0pt
+ \fboxsep0pt % \colorbox uses \fboxsep also when no frame!
+ \noindent\colorbox{secbackground}
+ {\parbox{\linewidth}{%
+ \vskip5pt
+ {\noindent\color{#1}#2\par}\nointerlineskip
+ \vskip3pt}}%
+ \par\nointerlineskip}
+
+% v1.07l on the occasion of traduction into German documentation
+ % APRIL 26, 2014 Improvement in the section style for better placement of
+ % page number when the section name is more than one line long. Use of
+ % \makebox rather than \hbox, to be more LaTeX like.
+\etocsetstyle{section}
+{\coloredstuff{white}
+ {\hfil \hyperref[toc:b]
+ {\bfseries\large Ich bin der Zwilling von diesem
+ Verzeichnis (Klick mich an!)}%
+ \hfil}}
+{\vskip3pt\sffamily\small}
+{\coloredstuff{white}
+ {\leftskip1.5cm\rightskip.5cm\parfillskip-\rightskip
+ \makebox[0pt][r]{\makebox[.5cm][r]{\etocnumber\hspace{.2cm}}}%
+ \etocname\hfill\makebox[.5cm][r]{\etocpage\hspace{.2cm}}}%
+ \vskip6pt }
+{}
+
+\etocframedstyle[1]{}
+
+\begin{figure}[ht!]\centering
+ \tableofcontents \label{toc:clone} \ref{toc:globalcmds}
+\end{figure}
+\endgroup
+
+Das Inhaltsverzeichnis befindet sich in einer
+\hyperref[toc:clone]{float}-Umgebung, die man \vpageref{toc:clone} findet. Da
+diese Art von Code keine zusätzlichen Pakete verlangt, ist er etwas
+komplexer.\footnote{Zudem zeigt er die Vorliebe des Autors für die
+\TeX{}-Syntax.} Außerdem wurde er in einem früheren Stadium entwickelt und
+seither nicht überarbeitet.
+
+Da Rahmen (welche hier genutzt wurden, um die Hintergrundfarbe zu setzen) nur
+die Hintergrundfarbe innerhalb einer Seite verändern, würde es sich anbieten,
+weitere Pakete einzubinden, mit deren Hilfe man die Hintergrundfarbe über
+mehrere Seiten hinweg verändern kann.
+
+Alle Befehle, welche die Farbe verändern, sind in \etoc zu Beginn so definiert,
+dass sie nichts verändern. Daher kann der Nutzer selbst entscheiden, ob er
+Farben nutzen will oder nicht.
+
+
+\etocdepthtag.toc {tips}
+
+\part{Tipps}
+\label{part:tipsandtricks}
+
+\thispartstats
+
+\etocsettocstyle{}{}
+\etocstandardlines
+\localtableofcontents
+
+\section{\ldots\ und Tricks}
+
+\subsection{Hacken "`framed parboxes"'}
+
+
+\begin{verbatim}
+\etocdefaultlines
+\renewcommand\etoctoprule{\hrule height 2pt depth 2pt}
+\etocruled{\color{green}\fboxrule2pt\fboxsep1ex
+ \fbox{\raisebox{-\fontdimen22\textfont2}
+ {\color{blue}\parbox{.5\linewidth}
+ {\normalfont Dieser Text ist vertikal perfekt zentriert
+ unter Berücksichtigung der \emph{surrounding horizontal rules.}}}}
+\ref{toc:globalcmds}
+\end{verbatim}
+
+\etocdefaultlines
+
+\renewcommand\etoctoprule{\hrule height 2pt depth 2pt}
+
+\etocruled{\color{green}\fboxrule2pt\fboxsep1ex
+ \fbox{\raisebox{-\fontdimen22\textfont2}
+ {\color{blue}\parbox{.5\linewidth}
+ {\normalfont Dieser Text ist vertikal perfekt zentriert
+ unter Berücksichtigung der \emph{surrounding horizontal rules.}}}}}
+ \ref{toc:globalcmds}
+
+
+\subsection{Umstellen der Ebenen}
+\label{subsec:interverting}
+
+Lasst uns alle Unterabschnitte zeigen und aufzählen, die in diesem Dokument
+vorkommen (Siehe \autoref{part:surprising} für andere Verwendungen dieser Technik.):
+\begin{verbatim}
+\etocsetnexttocdepth{2}
+\begingroup
+\etocsetlevel{part}{3}
+\etocsetlevel{section}{3}
+\etocsetstyle{subsection}
+ {\small\begin{enumerate}[itemsep=0pt,label=,leftmargin=0pt]}
+ {\normalfont\bfseries\item}
+ {\roman{enumi}. \mdseries\etocname{} (\etocnumber, p.~\etocpage)}
+ {\end{enumerate}}
+\renewcommand{\etoccolumnsep}{2.75em}
+\renewcommand{\columnseprule}{1pt}
+\etocmulticol[3]{\subsection{Alle Unterabschnitte in diesem Dokument}}
+\endgroup
+\end{verbatim}
+
+\etocsetnexttocdepth{2}
+
+\begingroup
+\etocdefaultlines
+\etocstandarddisplaystyle
+\etocsetlevel{book}{3}
+\etocsetlevel{part}{3}
+\etocsetlevel{chapter}{3}
+\etocsetlevel{section}{3}
+\etocsetstyle{subsection}{\small
+\begin{enumerate}[itemsep=0pt,label=,leftmargin=0pt]}
+{\normalfont\bfseries\item}
+{\roman{enumi}. \mdseries\etocname{} (\etocnumber, S.~\etocpage)}
+{\end{enumerate}}
+
+\renewcommand{\etoccolumnsep}{2.75em}
+\renewcommand{\columnseprule}{1pt}
+
+%%\etocmarkbothnouc{List of all subsections}
+%% le mark (\markright) est fait par \subsection
+
+\etocmulticol[3]{\subsection{{Alle Unterabschnitte in diesem Dokument}}\label{toc:allsubsections}}
+
+
+\endgroup
+
+\subsection{Sta\-ti\-sti\-ken anzeigen}\label{ssec:statistics}
+
+Jeder Teil dieses Dokuments beginnt mit einem Paragraphen, der sagt, wieviele
+Kapitel und Unterkapitel er hat. Nun, jeder von diesen Paragraphen ist ein
+Inhaltsverzeichnis! Wir haben ein Makro \csa{thispartstats} geschaffen, um dies
+zu tun. Es nutzt "`Speicher"'-Boxen, um die Informationen über die ersten und
+späteren Kapitel und Unterkapitel zu halten. Boxen zu nehmen, ist die einfachste
+Art und Weise |hyperref|-Links für spätere Verwendungen zu kapseln (ob es einer
+ist oder keiner). Allerdings kann man dann nichts an der Schriftart oder Farbe
+ändern (die \TeX -Primitive \csa{setbox} eher nehmend als von \LaTeX{}
+\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
+zweite Methode.
+
+Aber als Erstes der Code von \csa{thispartstats}:\par
+\begin{verbatim}
+\newsavebox\firstnamei \newsavebox\firstnumberi
+\newsavebox\lastnamei \newsavebox\lastnumberi
+\newsavebox\firstnameii \newsavebox\firstnumberii
+\newsavebox\lastnameii \newsavebox\lastnumberii
+\newcounter{mycounti} \newcounter{mycountii}
+\newcommand*{\thispartstatsauxi}{} \newcommand*{\thispartstatsauxii}{}
+\newcommand*{\oldtocdepth}{}
+\newcommand*{\thispartstats}{%
+ \setcounter{mycounti}{0}%
+ \setcounter{mycountii}{0}%
+ \def\thispartstatsauxi{%
+ \sbox{\firstnamei}{\etocname}%
+ \sbox{\firstnumberi}{\etocnumber}%
+ \def\thispartstatsauxi{}}%
+ \def\thispartstatsauxii{%
+ \sbox{\firstnameii}{\etocname}%
+ \sbox{\firstnumberii}{\etocnumber}%
+ \def\thispartstatsauxii{}}%
+ \begingroup
+ \etocsetstyle{subsection} {} {}
+ {\thispartstatsauxii
+ \stepcounter{mycountii}%
+ \sbox{\lastnameii}{\etocname}%
+ \sbox{\lastnumberii}{\etocnumber}} {}%
+ \etocsetstyle{section} {} {}
+ {\thispartstatsauxi
+ \stepcounter{mycounti}%
+ \sbox{\lastnamei}{\etocname}%
+ \sbox{\lastnumberi}{\etocnumber}}
+ {Here are some statistics for this part: it contains \arabic{mycounti}
+ section\ifnum\value{mycounti}>1 s\fi{} and \arabic{mycountii}
+ subsection\ifnum\value{mycountii}>1 s\fi. The name of the first section is
+ \unhbox\firstnamei{} and the corresponding number is \unhbox\firstnumberi.
+ The name of the last section is \unhbox\lastnamei{} and its number is
+ \unhbox\lastnumberi. The name of the first subsection is \unhbox\firstnameii{}
+ and the corresponding number is \unhbox\firstnumberii. The name of the last
+ subsection is \unhbox\lastnameii{} and its number is \unhbox\lastnumberii.}%
+ \etocinline % cancels the automatic \par automatically before the TOC
+ \etocsettocstyle {}{}
+ \etocsetnexttocdepth{2}%
+ \localtableofcontents % to be used at the top level of a Part.
+ \endgroup
+}
+\end{verbatim}
+
+Und nun, die Variante mit Makros anstelle von der mit Boxen (diese Variante
+steht hier für die Verwendung in einem Kapitel).
+\begin{verbatim}
+\makeatletter
+\newcommand*\firstsubname {} \newcommand*\lastsubname {}
+\newcommand*\firstsubnumber {} \newcommand*\lastsubnumber {}
+\newcommand*\thisspecialstatsaux{}
+\newcommand*{\thisspecialstats}{%
+ \setcounter{mycounti}{0}%
+ \def\thisspecialstatsaux{%
+ \let\firstsubname\etocthelinkedname
+ \let\firstsubnumber\etocthelinkednumber
+ \def\thisspecialstatsaux{}}
+ \begingroup
+ \etocsetstyle{subsection} {} {}
+ {\thisspecialstatsaux
+ \stepcounter{mycounti}%
+ \let\lastsubname\etocthelinkedname
+ \let\lastsubnumber\etocthelinkednumber }
+ {Here are some statistics for this section. It contains \arabic{mycounti}
+ subsections. The name of its first is \emph{\firstsubname{}} and the
+ corresponding number is {\firstsubnumber}. The name of the last
+ subsection is \emph{\lastsubname{}} and its number is {\lastsubnumber}.}%
+ \etocsettocstyle {}{}
+ \etocinline
+ \etocsetnexttocdepth {1}%
+ \localtableofcontents % to be used within a section
+ \endgroup
+}
+\makeatother
+\end{verbatim}
+
+\subsection{Tiefe Tags nehmen}
+\label{ssec:tocwithdepthtags}
+
+Wir wollen ein TOC, das für jeden |\part| eine Überschrift hat (außer der letzte
+Teil mit dem Quellcode, wofür beschließen, ihn nicht einzubeziehen), und wir
+wollen \autoref{part:globalcmds} öffnen für die Paragraphen. Um dies zu
+erreichen, fügen wir zu dieser Quelle verschiedene
+\csb{etocdepthtag.toc}-Befehle und es bleibt jetzt, zu setzen die Levels für
+jeden Tag mit \csb{etocsettagdepth} (dies wurde oben in diesem Dokument
+verwendet in \autoref{sec:secondexample}, in einer Gruppe, damit es keine
+Auswirkungen auf andere Inhaltsverzeichnisse hat).
+
+Allerdings sind die Linienstile des Pakets nicht in der Lage Paragraphen
+anzuzeigen und die Standardlinienstile der Dokumentklasse geben zu viel
+vertikalen Abstand (in diesem Zusammenhang) bei der Anzeige einer
+Teilüberschrift im TOC aus.Deshalb kochen wir unseren eigenen, schnell
+entwickelten Linienstil, in der Art von \autoref{sec:firstexample} (aber auf dem
+Weg Seitenzahlen von rechts, was mehr wie eine Methode von \LaTeX2e's
+|\@dottedtocline| ist; und mehrzeilige Ãœberschriften lassen nun den Bereich
+unter den Zahlen leer, im Gegensatz zu dem Code von \autoref{sec:firstexample}).
+Und nach ein paar Minuten für die Wahl der Längen (jetzt ist das erstmal getan,
+es kann leicht recycelt) erhalten wir:
+
+\etocsetnexttocdepth {all}
+\begingroup
+\parindent 0pt
+\leftskip 0cm
+\rightskip 0.75cm
+\parfillskip -\rightskip
+\newcommand*{\EndParWithPagenoInMargin}
+ {\nobreak\hfill
+ \nobreak\makebox[0.75cm][r]{\mdseries\normalsize\etocpage}%
+ \par}
+\renewcommand*\etoctoclineleaders
+ {\hbox{\normalfont\normalsize\hbox to .75ex {\hss.\hss}}}
+\newcommand*{\EndParWithPagenoInMarginAndLeaders}
+ {\nobreak\leaders\etoctoclineleaders\hfill
+ \nobreak\makebox[0.75cm][r]{\mdseries\normalsize\etocpage}%
+ \par }
+\etocsetstyle {part}
+ {}
+ {\leavevmode\leftskip 1cm\relax}
+ {\bfseries\large\llap{\makebox[1cm][r]{\etocnumber\ \ }}%
+ \etocname\EndParWithPagenoInMargin\smallskip}
+ {}
+\etocsetstyle {section}
+ {}
+ {\leavevmode\leftskip 1.75cm\relax}
+ {\bfseries\normalsize\llap{\makebox[.75cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsetstyle {subsection}
+ {}
+ {\leavevmode\leftskip 2.75cm\relax }
+ {\mdseries\normalsize\llap{\makebox[1cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsetstyle {subsubsection}
+ {}
+ {\leavevmode\leftskip 4cm\relax }
+ {\mdseries\normalsize\llap{\makebox[1.25cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsetstyle {paragraph}
+ {}
+ {\leavevmode\leftskip 5.5cm\relax }
+ {\mdseries\normalsize\llap{\makebox[1.5cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsettagdepth {preamble} {none}
+\etocsettagdepth {overview} {part}
+\etocsettagdepth {arbitrarily}{part}
+\etocsettagdepth {surprising} {part}
+\etocsettagdepth {linestyles} {part}
+\etocsettagdepth {globalcmds} {paragraph}
+\etocsettagdepth {custom} {part}
+\etocsettagdepth {tips} {part}
+\etocsettagdepth {code} {none}
+\renewcommand\etoctoprule {\hrule height 3pt\relax }
+\renewcommand\etoctoprulecolorcmd {\color{blue}}
+\renewcommand\etocaftercontentshook
+ {\medskip\begingroup \color{blue}\hrule height 3pt \endgroup }
+\etocruledstyle [1]{\Large\bfseries
+ \fbox{\makebox[8cm]{Ein TOC -- nehmend tiefe Tags}}}
+\sloppy
+\tableofcontents
+
+\begin{verbatim}
+\etocsetnexttocdepth {all}
+\begingroup
+\parindent 0pt \leftskip 0cm \rightskip .75cm \parfillskip -\rightskip
+\newcommand*{\EndParWithPagenoInMargin}
+ {\nobreak\hfill
+ \nobreak\makebox[0.75cm][r]{\mdseries\normalsize\etocpage}%
+ \par}
+\renewcommand*\etoctoclineleaders
+ {\hbox{\normalfont\normalsize\hbox to .75ex {\hss.\hss}}}
+\newcommand*{\EndParWithPagenoInMarginAndLeaders}
+ {\nobreak\leaders\etoctoclineleaders\hfill
+ \nobreak\makebox[0.75cm][r]{\mdseries\normalsize\etocpage}%
+ \par }
+\etocsetstyle {part}
+ {}
+ {\leavevmode\leftskip 1cm\relax}
+ {\bfseries\large\llap{\makebox[1cm][r]{\etocnumber\ \ }}%
+ \etocname\EndParWithPagenoInMargin\smallskip}
+ {}
+\etocsetstyle {section}
+ {}
+ {\leavevmode\leftskip 1.75cm\relax}
+ {\bfseries\normalsize\llap{\makebox[.75cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsetstyle {subsection}
+ {}
+ {\leavevmode\leftskip 2.75cm\relax }
+ {\mdseries\normalsize\llap{\makebox[1cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsetstyle {subsubsection}
+ {}
+ {\leavevmode\leftskip 4cm\relax }
+ {\mdseries\normalsize\llap{\makebox[1.25cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsetstyle {paragraph}
+ {}
+ {\leavevmode\leftskip 5.5cm\relax }
+ {\mdseries\normalsize\llap{\makebox[1.5cm][l]{\etocnumber}}%
+ \etocname\EndParWithPagenoInMarginAndLeaders}
+ {}
+\etocsettagdepth {preamble} {none}
+\etocsettagdepth {overview} {part}
+\etocsettagdepth {arbitrarily}{part}
+\etocsettagdepth {surprising} {part}
+\etocsettagdepth {linestyles} {part}
+\etocsettagdepth {globalcmds} {paragraph}
+\etocsettagdepth {custom} {part}
+\etocsettagdepth {tips} {part}
+\etocsettagdepth {code} {none}
+\renewcommand\etoctoprule {\hrule height 3pt\relax }
+\renewcommand\etoctoprulecolorcmd {\color{blue}}
+\renewcommand\etocaftercontentshook
+ {\medskip\begingroup \color{blue}\hrule height 3pt \endgroup }
+\etocruledstyle [1]{\Large\bfseries
+ \fbox{\makebox[8cm]{A TOC using depth tags}}}
+\sloppy
+\tableofcontents
+\endgroup
+\end{verbatim}
+\endgroup
+
+\subsection{Das TOC als eine Tabelle setzend}\label{ssec:tocastable}
+
+Tabellenzellen erstellen Gruppen; Definitionen von |\etocname|, |\etocnumber|,
+|\etocpage| sind lokal gemacht, also wenn die erste Zelle einer Zeile ist, wo
+die |.toc|-Dateizeile gelesen wird und|\etocname| und |\etocnumber| definiert
+wird, werden diese Definitionen nach dem Tabularzeichen |&| verloren gehen. Der
+Quellcode von \etoc beginnt, die "`Anfangs"'- und "`End"'teile der Linienstile
+zu öffnen oder Gruppen zu schließen, durch ein |&| beispielsweise im
+"`Präfix"'-Teil des Linienstils ist nicht zu erwarten.
+
+Weiterhin, ähnlich sieht die Sache der Neudefinition von |\contentsline|, made
+by \etoc , aus, jedesmal wird ein TOC gesetzt. Es wird nach dem ersten Argument
+getan, wenn \csb{etocsettocstyle} ausgeführt wurde, weil, wenn dieses Argument
+eine Tabelle öffnet, die |etoc|-Neudefintion der |\contentsline| in die erste
+Zelle der ersten Zeile getan werden will und danach verloren geht.
+
+So, mit dem Öffnen und Schließen mit |\etocsettocstyle| und dem Nehmen von |&| |
+und | innerhalb eines Level-Stils, kann man nicht direkt ein TOC in eine Tabelle
+setzen.
+
+Der \etoc -Quellcode könnte geändert werden, zu machen Modifizierungen von
+einigen relevanten globalen Definitionen, aber ich habe mich dagegen
+entschieden. Setzen als eine |tabular| (oder später als |longtable|) wird nur
+fortgeschrittene Anwendern gesucht und fortgeschrittene Anwender können die
+Technik einsetzen, die in \autoref{tocastree} erklärt wurden. Hier ist ein
+Beispiel mit einem vollverlinkten Inhaltsverzeichnis. Der Code kommt nach der
+Tabelle.
+
+
+\newtoks\toctabletok
+% \newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
+% #1\expandafter\expandafter\expandafter
+% {\expandafter\the\expandafter #1#2}}
+
+\newcommand*\PreparePart{%
+ \toks0 \expandafter{\etocthelinkednumber}%
+ \toks2 \expandafter{\etocthelinkedname}%
+ \toks4 \expandafter{\etocthelinkedpage}%
+ \edef\toctablepiece {\noexpand\hline
+ \noexpand\strut\the\toks0 &\noexpand\bfseries\the\toks2
+ &\the\toks4 \noexpand\\
+ \noexpand\hline}%
+}
+
+\newcommand*\PrepareSection{%
+ \toks0 \expandafter{\etocthelinkednumber}%
+ \toks2 \expandafter{\etocthelinkedname}%
+ \toks4 \expandafter{\etocthelinkedpage}%
+ \edef\toctablepiece {\the\toks0 &\the\toks2 &\the\toks4 \noexpand\\}%
+}
+
+% new version for 1.07k, 2014/03/06
+\newcommand*{\PrepareSubsection}{%
+ \toks0 \expandafter{\etocthelinkednumber}%
+ \toks2 \expandafter{\expandafter\itshape\etocthelinkedname\strut}%
+ \toks4 \expandafter{\expandafter\itshape\etocthelinkedpage}%
+ \edef\toctablepiece{&\noexpand\makebox[1cm][c]{\the\toks0}%
+ \noexpand\parbox[t]{\dimexpr6cm-\tabcolsep\relax}
+ {\noexpand\sloppy\the\toks2}%
+ &\the\toks4 \noexpand\\}%
+}
+
+\etocsetstyle{part}{}{}
+ {\PreparePart \appendtotok\toctabletok\toctablepiece}
+ {}
+
+\etocsetstyle{section}{}{}
+ {\PrepareSection \appendtotok\toctabletok\toctablepiece}
+ {}
+
+\etocsetstyle{subsection}{}{}
+ {\PrepareSubsection\appendtotok\toctabletok\toctablepiece}
+ {}
+
+\etocsettocstyle
+ {\toctabletok{\hypersetup{hidelinks}%
+ \begin{longtable}{|>{\bfseries}c|p{7cm}|r|}\hline
+ \multicolumn{3}{|c|}{\Large\bfseries\strut TABLE OF CONTENTS}%
+ \\\hline\hline}}
+ {\global\toctabletok\expandafter{\the\toctabletok\hline\end{longtable}}}
+
+\etocsettocdepth {subsection}
+\tableofcontents
+\the\toctabletok
+
+\begin{verbatim}
+\newtoks\toctabletok
+\newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
+ #1\expandafter\expandafter\expandafter {\expandafter\the\expandafter #1#2}}
+
+\newcommand*\PreparePart{%
+ \toks0 \expandafter{\etocthelinkednumber}%
+ \toks2 \expandafter{\etocthelinkedname}%
+ \toks4 \expandafter{\etocthelinkedpage}%
+ \edef\toctablepiece {\noexpand\hline
+ \strut\the\toks0 &\noexpand\bfseries\the\toks2
+ &\the\toks4 \noexpand\\
+ \noexpand\hline}%
+}
+\newcommand*\PrepareSection{%
+ \toks0 \expandafter{\etocthelinkednumber}%
+ \toks2 \expandafter{\etocthelinkedname}%
+ \toks4 \expandafter{\etocthelinkedpage}%
+ \edef\toctablepiece {\the\toks0 &\the\toks2 &\the\toks4 \noexpand\\}%
+}
+% new version for 1.07k, 2014/03/06
+\newcommand*{\PrepareSubsection}{%
+ \toks0 \expandafter{\etocthelinkednumber}%
+ \toks2 \expandafter{\expandafter\itshape\etocthelinkedname\strut}%
+ \toks4 \expandafter{\expandafter\itshape\etocthelinkedpage}%
+ \edef\toctablepiece{&\noexpand\makebox[1cm][c]{\the\toks0}%
+ \noexpand\parbox[t]{\dimexpr6cm-\tabcolsep\relax}
+ {\noexpand\sloppy\the\toks2}%
+ &\the\toks4 \noexpand\\}%
+}
+
+\etocsetstyle{part}{}{}{\PreparePart \appendtotok\toctabletok\toctablepiece}{}
+
+\etocsetstyle{section}{}{}{\PrepareSection \appendtotok\toctabletok\toctablepiece}{}
+
+\etocsetstyle{subsection}{}{}{\PrepareSubsection\appendtotok\toctabletok\toctablepiece}{}
+
+\etocsettocstyle
+ {\toctabletok{\hypersetup{hidelinks}%
+ \begin{longtable}{|>{\bfseries}c|p{7cm}|r|}\hline
+ \multicolumn{3}{|c|}{\Large\bfseries\strut TABLE OF CONTENTS}%
+ \\\hline\hline}}
+ {\global\toctabletok\expandafter{\the\toctabletok\hline\end{longtable}}}
+\etocsettocdepth {subsection}
+\tableofcontents
+\the\toctabletok
\end{verbatim}
+\subsection{Kompatibilität mit anderen Paketen}
+\label{etocaftertochook}
+
+
+\etoc lädt das Paket |multicol|. Es ist
+|hyperref| bekannt und hoffentlich kompatibel mit ihm! Es ist kein Thema, ob
+\etoc vor oder nach |hyperref| geladen wird.
+
+Die Release |1.07k| fügt Kompatibilität mit dem Paket |tocloft| hinzu:
+\footnote{\url{http://ctan.org/pkg/tocloft}} Schritte wurden getan, um eine Neudefinition
+von |\tableofcontents| zu vermeiden, getan von |tocloft| an |\begin{document}|.
+%
+
+Solange \etoc ungeschickt ist im Kompatibilitätsmodus, wird von |tocloft| die
+Anpassung sowohl für den Lin ienstil als auch den TOC-Titel getan. Man kann
+immer noch von den \emph{tiefen Tags}-Management mit \etoc profitieren, von
+seinem |\localtableofcontents|, von seinem |\label+\ref|-Mechanismus. Man kann
+|\etocsetstyle| nehmen, um mit \etoc das Layout des TOC zu definieren und dann
+eher |tocloft| für etwas anderes, wenn auf |\tableofcontents| folgen
+\csb{etocstandardlines} und \csb{etocstandarddisplaystyle}. In diesem
+Kompatibiltätsmodus |\etocsetlevel{division unit}{6}| wird die gewählte
+Bereichsebene gerendert, aber der Austausch von Ebenen ist andererseits nicht
+möglich.
+\begin{framed}
+ Man sollte \etoc \emph{nach} \texttt{tocloft laden}. Sonst wird eine Warnung
+ ausgegeben.
+\end{framed}
+
+Die Release |1.07l| hat ebenfalls die Kompatibilität mit der |memoir|-Klasse
+verbessert: Seine |appendix|-Ebene kann mit \etoc gemacht werden. Es ist die
+gleiche Ebene wie wie bei |chapter|, also der Kapitelebenstil kann eventuell ein
+Test für einige boolesche-Ausdrücke sein, die aktiviert sein können via einer
+Instruktion an die |.toc|-Datei aufgenommen werden, wenn man zwei Arten von
+Unterteilungen unterscheidet.
+
+Die Inhalte der |.toc|-Datei (falls bereits vorhanden) werden einmal in den
+Speicher von \etoc getan, bei \csa{usepackage\{etoc\}}. Die |.toc|-Datei bleibt
+für andere Pakete nutzbar für Lesevorgänge bis zum Ort des ersten
+Inhaltsverzeichnisses, zu diesem Zeitpunkt wird ein Schreib-stream durch \etoc
+geöffnet und von diesem Punkt aus wird die Datei gelöscht bis ihr Inhalt wieder
+auf die Platte von \LaTeX{} am Ende der Kompilierung geschrieben wurde.
+
+\etoc kann nicht wirklich mit Paketen zusammensein, die
+\csa{tableofcontents}-Befehle ändern: Eine Art Waffenstilstand kann erreicht
+werden, wenn \etoc zuletzt geladen wird, daher ist es der Gewinner.
+ \begin{framed}
+ Ändern Sie nicht den |\tableofcontents|-Befehl, wie diesen folgenden:
+ \centeredline{|\let\oldtableofcontents\tableofcontents|,}
+ \centeredline{|\renewcommand\tableofcontents{\oldtableofcontents\mystuff}|,}
+ da dies den |\label/\ref|-Mechanismus unmöglich macht. Sie können vielmehr
+ \centeredline{|\renewcommand\etocaftertochook{\mystuff}|} ausführen und es
+ ergibt auch \csb{etocaftercontentshook}, das führt ein bisschen eher
+ \footnotemark{} aus, gerade vor dem Schließen des Teils vom toc-Anzeigestil
+ (und damit innerhalb einer Gruppe).
+ \end{framed}
+\footnotetext{Im Gegensatz zu \csa{etocaftertochook},
+ \csa{etocaftercontentshook} wird nicht ausgeführt, wenn |tocdepth| das
+ Drucken des TOC nicht ermöglicht.}
+
+\etoc zu verwenden, kann unvereinbar sein mit dem Paket
+|tocvsec2|\footnote{\url{http://ctan.org/pkg/tocvsec2}}; jetzt lebt es ,
+sortierend, wie es deaktiviert die Modifikationen des |\tableofcontents| durch
+|tocvsec2| (getan im Stile von oben) und es kanzelt auch andere |toc|-bezogene
+Macros, aber es reimplantiert partiell ihre Funktionalität mit
+\csb{etocsettocdepth.toc}. In der Art und Weise, die letzten beiden \LaTeX-Läufe
+sind für das erneute Nehmen des Befehls in einem Dokument notwendig, um einen
+Effekt im Inhaltsverzeichnis zu haben.
+
+Wenn ein \localtoc durch den Nutzer in das Dokument aufgenommen wird, eine
+Zeile, in einen inneren \etoc-Befehl und eine Identifikationszahl in die
+|.toc|-Datei aufgenommen wird. Das korrekte Inhaltsverzeichnis wird nur nach dem
+nächsten \LaTeX -Lauf angezeigt werden.
+
+\etoc erwartet die Sektionierungseinheiten des Dokuments, um ihre Daten in eine
+Datei mit der Endung |.toc| zu schreiben, in Form von Linien, die enthalten den
+\csa{contentsline}-Befehl und dessen Argumente. Die Macros \csa{etocname},
+\csa{etocnumber} und \csa{etocpage} enthalten die |hyperref|-Links, wenn
+vorhanden (Beachten Sie, dass die \emph{linktoc=all}-Option von |hyperref|
+mitteilt, dass ein Link zur Seitenzahl zu setzen ist, für ein einen
+toc-Eintrag.). Beispielsweise sind die Inhaltsverzeichnisse des vorliegenden
+Dokuments komplett verlinkt.
+
+Es ist möglich (unter Verwendung des Pakets|tocloft| beispielsweise), im
+gesamten Dokument die Makros \csa{l@section}, \csa{l@subsection} \ldots{} zu
+benutzen und der Effekt wird im nächsten Inhaltsverzeichnis durch den
+Kompatibilitätsmodus von \etoc sichtbar werden.
+
+Es ist möglich, simultan \etoc und
+{\color{niceone}|tableof|}\footnote{\url{http://ctan.org/pkg/tableof}} zu
+nehmen. Für die erweiterte Nutzung, sowas wie das Nehmen von in
+\autoref{ssec:molecule}, ist es wichtig, zu wissen dass |tableof| eine Ebene der
+Gruppierung selbst in die |.toc|-Datei einfügt. Also, wenn man einige
+Information \csa{global} machen möchte, kann man nicht warten, um auf der Ebene
+des zweiten Arguments von \csa{etocsettocstyle} zu sein, |tableof| wird die
+Gruppe dann schon geschlossen haben. Die \csa{global}-Dinge (auf flüchtigen
+Daten) müssen spätestens im letzten Teil der oberen (oder letzten)
+Untergliederungsebene eingeführt sein. Dies gilt natürlich nur für
+\csa{tableofcontents} oder \csa{localtableofcontents} und die folgenden
+\csa{nexttocwithtags}|{erforderlichen}||{verbotenen}| Befehle von |tableof|.
+
+Und wenn die Befehle \csa{tableof} oder \csa{tablenotof} vom Paket |tableof|
+genutzt werden, setzen sie das Inhaltsverzeichnis nach den Standards der
+Dokumentklasse: Um von den \etoc-Stilen zu profitieren, ist es zwingend
+erforderlich, entweder \csa{tableofcontents} oder \csa{localtableofcontents}
+oder einen anderen \etoc-Befehl zu nehmen, und |tableof (v1.1)| wird das
+Ergebnis nur beeinflussen, wenn \csa{nexttocwithtags}|{required}||{forbidden}|
+hinzugefügt wurde, bevor dar Inhaltsverzeichnis-typesetting-Befehl kommt.
+
+\subsection{\TeX -nische Sachen}
+
+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.
+
+Andererseits \csa{etocthename}, \csa{etocthenumber}, \csa{etocthepage}, haben
+keine Anbindung an |hyperref|-Links und sind nicht gegen Expansionen geschützt.
+
+Befehle wie \csa{etocsetstyle}, \csa{etocsetlevel}, \csa{etocsettocstyle},
+\csa{etocmulticolstyle}, \csa{etocruledstyle}, \csa{etocframedstyle} folgen
+Gruppierungen von \LaTeX. Alle TOCs werden in Gruppierungen gesetzt.
+
+\subsection{Fehler und Katastrophen}
+
+Nach der Verwendung von \csa{etocsetstyle}für eine Ebene nehmen die restlichen,
+nicht angepassten Ebenen die Standardstile von \etoc (diejenigen, die aktiviert
+werden von \csa{etocdefaultlines}). Man muss sicherstellen, dass alle Ebenen,
+die für das nächste Inhaltsverzeichnis gebraucht werden, miteinander kompatibel
+sind: Insbesonders, dass die Standardlinienstile jeweils im "`vertikalen Modus"'
+gestartet werden.
+
+Wenn man mehrere \toc-Befehle in einem Dokument verwendet, sollte man sich
+hüten, mehrere Satzanweisungen in der |.toc|-Datei zu addieren, so sie mit \toc
+ausgeführt für alle TOCs ausgeführt werden: Auch für \localtoc spielt es keine
+Rolle, ob die Anweisungen Material außerhalb des Anwendungbereichs betreffen,
+sie werden sie trotzdem erhalten. Falls unbedingt erforderlich (aber es das
+sollte es nie) müssen dies Instruktionen so sein, dass einfach aktiviert oder
+deaktiviert werden von der Dokumentquelle, wie es sein muss.
+
+So wie es üblich ist bei TOCs und Labels, muss nach jeder Änderung \LaTeX{} eine
+bestimmte Anzahl von Durchführungen haben, um für das Dokument das endgültige
+Aussehen zu erhalten (mindestens zweimal durchlaufen).
+
+
+%%\clearpage %% not useful for current (2014/04/28) German version
+
+\etocdepthtag.toc {code}
+
+\part{Der Code}
+
+\section{Zeitstempel}
+
+Dies ist die deutsche Dokumentation von \texttt{\etocDEdocdate}, erzeugt von der
+Quelldatei mit dem Stempel \texttt{\etocdtxtimestamp}. Die dokumentierte
+Paketversion ist \texttt{\etocDEpkgversion} von \texttt{\etocDEpkgdate}.
+
+% STOP GERMAN (DEUTSCH) VERSION
+^^Afi
+
+^^Acatcode92 0
+
+\catcode1 13
\begingroup
\renewcommand\lowast{{\normalsize\raisebox{-.4\height}{*}}}
\small
-\section{Change history}
+\ifnum\ForEnglish=1
+ \section{Change history}
+\fi
+
+\ifnum\ForDeutsch=1
+ \section{Änderungen}
+\fi
+
+\selectlanguage{english}
\setlength{\columnsep}{\etoccolumnsep}
\makeatletter
+% 27 avril 2014 un petit hack pour hyphénation (éventuelle) en allemand
+% j'ai déjà ~ qui sera de catcode 0, cependant il faudrait aussi les accolades,
+% donc finalement pour aller vite, je rends le + actif. Je modifie aussi le test
+% fait par \jfverbaspace (n'ayant pas commenté mon code, j'ai dû réfléchir pour
+% me rappeler à peu près ce que c'était censé faire).
+
\def\jfverbatim{\@beginparpenalty \predisplaypenalty
\parindent \z@
\parfillskip \@flushglue
\parskip \tw@\p@ plus 1fil\relax
- \let \do \@makeother \dospecials
+ \let \do \@makeother \dospecials \makestarlowast \catcode`+ \active
+ \begingroup\lccode`~`+
+ \lowercase{\endgroup\def~[##1]{\foreignlanguage{german}{##1}}}%
+ \catcode`> \active
+ \begingroup\lccode`~`>
+ \lowercase{\endgroup\def~{\nopagebreak}}% ajouté 2014/04/28, oblige à un peu
+ % plus de mark-up cependant
\catcode`\~\z@
\footnotesize\normalfont\baselineskip10pt\relax
\frenchspacing \obeyspaces \jf@xverbatim }
@@ -4864,7 +9072,7 @@ with the time stamp \texttt{\dtxtimestamp}. The package version is
\everypar{\leftskip\jfverbadim\bgroup
\def\par{\egroup\jfverbadim\z@\@@par}%
- \def\jfverbaspace#1{\ifcat\noexpand#1\noexpand~\unskip\else\ \fi#1}}
+ \def\jfverbaspace#1{\if\@sptoken\string#1\unskip\else\ \fi#1}}
\begingroup\obeyspaces\def\x{\endgroup%
\def {\ifvmode\advance\jfverbadim.5em\relax\else\expandafter\jfverbaspace\fi}}\x
@@ -4873,7 +9081,18 @@ with the time stamp \texttt{\dtxtimestamp}. The package version is
\begin{multicols}{2}
\begin{jfverbatim}
-v1.07l [2014/04/22]
+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!
+
+v1.07l [2014/04/22]>
fixes a bug with the 1.07k compatibility layer with tocloft which had broken
the 1.07k (sic) compatibility with memoir (yes, memoir class 1.07k testing
@@ -4882,28 +9101,28 @@ v1.07l [2014/04/22]
class, as then nothing special needs to be done to rescue \tableofcontents,
contrarily to the situation with the native tocvsec2.
-v1.07k [2014/03/06]
+v1.07k [2014/03/06]>
compatibility with package tocloft; and improved compatibility with
class memoir. Novel TOC example in Overview.
-v1.07j [2013/12/03]
+v1.07j [2013/12/03]>
some issues with the documentation formatting (now two-sided) have been
addressed, and a novel documentation section ``Typesetting the TOC as a
table'' has been added. Very minor code change (\Etoc@readtoc).
-v1.07i [2013/10/21]
+v1.07i [2013/10/21]>
changes to the \etocmulticolstyle and \etocruledstyle codes
to lessen the risk of a page break after the title (in the one-column case).
-v1.07h [2013/10/16]
+v1.07h [2013/10/16]>
new commands \etocdepthtag.toc, \etocsettagdepth, \etocobeydepthtags,
\etocignoredepthtags.
-v1.07g [2013/10/13]
+v1.07g [2013/10/13]>
new commands \etocsettocdepth, \etocsettocdepth.toc,
\etocobeytoctocdepth, \etoc~-ignoretoctocdepth which
@@ -4932,13 +9151,13 @@ v1.07g [2013/10/13]
dvipdfmx which produces the smallest file).
-v1.07f [2013/03/07]
+v1.07f [2013/03/07]>
new macros \etocthelinkedname, \etocthelinkednumber,
\etocthelinkedpage, and \etocthelink.
-v1.07e [2013/03/01]
+v1.07e [2013/03/01]>
improvements in the package own line styles with
regards to penalties and vertical spaces.
@@ -4948,25 +9167,25 @@ v1.07e [2013/03/01]
more such examples added 2013/03/03.
-v1.07d [2013/02/24]
+v1.07d [2013/02/24]>
minor code improvements and new documentation
section ``Another compatibility mode''.
-v1.07b [2013/02/02]
+v1.07b [2013/02/02]>
removal of the \xspace from the macros \etocname,
\etocnumber, \etocpage.
additional examples in the documentation.
-
-v1.07 [2013/01/29]
+
+v1.07 [2013/01/29]>
new commands:
- \etocthename, \etocthenumber, \etocthepage, \etoclink,
+ \etocthename, \etocthenumber, \etocthe~-page, \etoclink,
\etoctoccontentsline, \etoctoccontentsline~lowast
@@ -4979,7 +9198,7 @@ v1.07 [2013/01/29]
addition to the tables of contents.
-v1.06 [2012/12/07]
+v1.06 [2012/12/07]>
the standard macros \l@section etc... are modified only
during the calls to \tableofcontents; they can thus be
@@ -4988,7 +9207,7 @@ v1.06 [2012/12/07]
by etoc for the TOCs typeset in compatibility mode.
-v1.05 [2012/12/01]
+v1.05 [2012/12/01]>
\localtableofcontents replaces \tableofcontents~lowast (for
compatibility with the memoir class).
@@ -4997,19 +9216,19 @@ v1.05 [2012/12/01]
classes.
-v1.04 [2012/11/24]
+v1.04 [2012/11/24]>
a (possibly local) table of contents can be labeled:
-
+
\tableofcontents \label{toc:1}
and reproduced elsewhere in the document (with a possibly
completely different layout):
-
+
\tableofcontents \ref{toc:1}
-
-v1.02 [2012/11/18]
+
+v1.02 [2012/11/18]>
initial version.
@@ -5018,26 +9237,58 @@ v1.02 [2012/11/18]
\endgroup % group for modified verbatim printing of the changes log
\makeatletter
-
-\let\check@percent\original@check@percent
+ \let\check@percent\original@check@percent
\makeatother
\small
-% \def\MacroFont{\ttfamily\hyphenchar\font45 \baselineskip11pt\relax }
-
+\ifnum\ForEnglish=1
\section{Implementation}
+\fi
-\StopEventually{\normalsize\ifnum\NoSourceCode=1
- \texttt{%
- This documentation has been compiled without inclusion of the source
- code. To produce the documentation with source code included:\endgraf
- \ \ \ \ run latex on etoc.dtx (or on etoc.tex if available), \endgraf
- \ \ \ \ (or first run tex on etoc.ins if available to produce
- etoc.tex)\endgraf
- \ \ \ \ then twice latex on etoc.tex,\endgraf
- \ \ \ \ then dvipdfmx on etoc.dvi\endgraf}
+\ifnum\ForDeutsch=1
+\section{Ausführung}
\fi
+
+\StopEventually{\normalsize
+ \ifnum\NoSourceCode=1
+ \ifnum\ForEnglish=1
+ \texttt{\parindent 0pt\rightskip 1cm minus 1cm
+ This documentation has been compiled without inclusion of the source
+ code. To produce the English documentation with source code included:\endgraf
+ \ \ \ \ run tex on etoc.dtx or etoc.ins to produce etoc.tex,\endgraf
+ \ \ \ \ then thrice latex on etoc.tex, then dvipdfmx on etoc.dvi.\endgraf
+ \medskip
+ To produce the German documentation with source code included, run tex on
+ etoc.dtx or etoc.ins to produce etoc-DE.tex, then edit etoc-DE.tex
+ to set \string\NoSourceCode\space to 0, and run latex thrice on etoc-DE.tex
+ then dvipdfmx on etoc-DE.dvi\endgraf
+ \medskip
+ (ignore dvipdfmx warnings, or, in case of problems caused by an old version
+ of dvipdfmx, set \string\Withdvipdfmx\space to 0 in etoc.tex or
+ etoc-DE.tex, to compile with pdflatex)\endgraf }%
+ \fi
+ \ifnum\ForDeutsch=1
+ \texttt{\hyphenchar\font-1
+ \parindent 0pt\rightskip 0.5cm minus 0.5cm \selectlanguage{german}%
+ Diese Dokumentation wurde ohne Einbeziehung des Quellcodes erstellt. Um
+ die englische Dokumentation mit dem Quellcode zu produzieren, ist
+ einzubeziehen: \endgraf
+ \ \ \ \ kompilieren tex mit etoc.dtx oder etoc.ins, um etoc.tex zu
+ produzieren, \endgraf
+ \ \ \ \ dann dreimal latex mit etoc.tex, dann dvipdfmx mit etoc.dvi.\endgraf
+ \medskip
+ Um die deutsche Dokumentation mit Einbeziehung des Quellcodes zu erstellen,
+ ist zu kompilieren tex mit etoc.dtx oder etoc.ins, um etoc-DE.tex zu
+ erzeugen, dann ist \string\NoSourceCode\space in etoc-DE.tex auf 0 zu
+ setzen, dann ist latex dreimal mit etoc-DE.tex laufen zu lassen, dann
+ dvipdfmx mit etoc-DE.dvi.\endgraf
+ \medskip
+ (Ignorieren Sie dvipdfmx-Warnungen oder, im Falle von Problemen mit einer
+ alten Version von dvipdfmx, setzen Sie \string\Withdvipdfmx\space auf 0 in
+ etoc.tex oder etoc-DE.tex um dann pdflatex laufen zu lassen.)\endgraf }%
+ \fi
+ \fi
\end{document}}
% Writing-up source code comments is hopefully for a future
@@ -5061,8 +9312,8 @@ v1.02 [2012/11/18]
\everypar{\global\advance\c@CodelineNo\@ne
\llap{\theCodelineNo\ \hskip\@totalleftmargin}}%
\fi
-\string\ProvidesPackage\string{\jfbpkgname\string}\par
-\noindent\space [\jfbpkgdate\space\jfbpkgversion\space\jfbpkgdescription]\par
+\string\ProvidesPackage\string{etoc\string}\par
+\noindent\space [\etocpkgdate\space\etocpkgversion\space\etocpkgdescription]\par
\nointerlineskip
\global\@inlabelfalse
\endtrivlist
@@ -5073,7 +9324,6 @@ v1.02 [2012/11/18]
% in the commented source code...
% (c) 2012/11/19 jf burnol ;-)
-
\MakePercentIgnore
%
diff --git a/Master/texmf-dist/source/latex/etoc/etoc.ins b/Master/texmf-dist/source/latex/etoc/etoc.ins
index 2bb03fbf323..ffd370fd96c 100644
--- a/Master/texmf-dist/source/latex/etoc/etoc.ins
+++ b/Master/texmf-dist/source/latex/etoc/etoc.ins
@@ -1,37 +1,55 @@
-\def\jfbpkgname {etoc} \def\jfbpkgdate {2014/04/22} \def\jfbpkgversion {v1.07l}
-\def\jfbpkgdescription {Completely customisable TOCs (jfB)}
%%
%% Package: etoc
-%% Version: 2014/04/22 v1.07l
-%% Copyright (C) 2012-2013-2014 by Jean-Francois Burnol <jfbu at free dot fr>
+%% Version: 1.07l (2014/04/22)
+%% License: LPPL 1.3c or later (see etoc.dtx for more information)
+%% Copyright (C) 2012-2013-2014 Jean-Francois Burnol <jfbu at free dot fr>
+%% Copyright (C) 2014 Christine Roemer <Christine_Roemer at t-online dot de>
+%% and collaborators for the translation into German of the documentation
%%
-%% Run tex on this file to extract etoc.sty and etoc.tex from etoc.dtx
+\def\etocpkgdate {2014/04/22}
+\def\etocpkgversion {v1.07l}
+\def\etocpkgdescription {Completely customisable TOCs (jfB)}
+%% Run tex on this file to extract from etoc.dtx:
+%% etoc.sty, etoc.tex, etoc-DE.tex
%%
-%% At least three ways to produce etoc.pdf:
+%% 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:
+%% Options can be set in etoc.tex (and etoc-DE.tex):
%% - scrdoc class options (paper size, font size, ...)
%% - with or without source code,
%% - with dvipdfmx or with latex/pdflatex.
%%
+%% To produce the German documentation etoc-DE.pdf run tex on etoc.ins
+%% or etoc.dtx to produce etoc-DE.tex, then compile etoc-DE.tex with
+%% latex (thrice) then dvipdmx, or edit the suitable toggle in
+%% etoc-DE.tex to allow compilation to proceed 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.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
%%
\input docstrip.tex
\askforoverwritefalse
-\def\jfbpkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
-\string\ProvidesPackage{\jfbpkgname}^^J%
-\space[\jfbpkgdate\space\jfbpkgversion\space\jfbpkgdescription]}%
+\def\etocpkgpreamble{\defaultpreamble^^J\MetaPrefix^^J%
+\string\ProvidesPackage{etoc}^^J%
+\space[\etocpkgdate\space\etocpkgversion\space\etocpkgdescription]}%
\generate{\nopreamble
-\file{\jfbpkgname.tex}{\from{\jfbpkgname.dtx}{driver}}%
-\usepreamble\jfbpkgpreamble
-\file{\jfbpkgname.sty}{\from{\jfbpkgname.dtx}{package}}}%
+\file{etoc.tex}{\from{etoc.dtx}{tex}}%
+\file{etoc-DE.tex}{\from{etoc.dtx}{DEtex}}%
+\usepreamble\etocpkgpreamble
+\file{etoc.sty}{\from{etoc.dtx}{package}}}%
\catcode32=13\relax% active space
\let =\space%
\Msg{************************************************************************}
@@ -42,7 +60,8 @@
\Msg{* etoc.sty}
\Msg{*}
\Msg{* To produce the documentation run latex thrice on file etoc.tex}
-\Msg{* and then run dvipdfmx on file etoc.dvi}
+\Msg{* (or etoc-DE.tex) and then run dvipdfmx on file etoc.dvi, resp.}
+\Msg{* etoc-DE.dvi}
\Msg{*}
\Msg{* Happy TeXing!}
\Msg{*}