summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/etoc/etocsnippet-18.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/etoc/etocsnippet-18.tex')
-rw-r--r--Master/texmf-dist/doc/latex/etoc/etocsnippet-18.tex123
1 files changed, 108 insertions, 15 deletions
diff --git a/Master/texmf-dist/doc/latex/etoc/etocsnippet-18.tex b/Master/texmf-dist/doc/latex/etoc/etocsnippet-18.tex
index 9414dcbe37c..5f2d92cc469 100644
--- a/Master/texmf-dist/doc/latex/etoc/etocsnippet-18.tex
+++ b/Master/texmf-dist/doc/latex/etoc/etocsnippet-18.tex
@@ -1,23 +1,116 @@
%% LaTeX2e file `etocsnippet-18.tex'
%% generated by the `filecontentsdef' environment
-%% from source `etoc' on 2023/01/21.
+%% from source `etoc' on 2023/03/02.
%%
-\begin{center}
+% \newtoks\treetok % done in preamble
+% \newtoks\parttok
+\newcommand*\partnode {} % check with \newcommand we will not overwrite something
+\newcommand*\childnode {}
+
+\newcommand*\tmprotate {} % (idem)
+\newcommand*\tmpoption {} %
+\newcommand*\tmpstuff {} %
+
+\newcommand*\appendtotok[2]{% #1=toks variable, #2=macro, expands once #2
+ #1\expandafter\expandafter\expandafter{\expandafter\the\expandafter #1#2}}
+
+\newcommand*{\appendchildtree}[3]{%
+% this is to construct "t1 child [#3]{t2}" from #1=t1 and #2=t2
+% t1 and t2 are two toks variable (not macros)
+% #3 = for example teal!60
+ \edef\tmpstuff {\the#1 child [#3]{\the#2}}%
+ #1\expandafter {\tmpstuff }%
+}
+
+\newcounter{partco}
+
+% 1,2,3,4,5,... -> 1,2,3,1,2,3,1,2,3
+\def\pseudomodthree #1{\numexpr #1 + 3 - 3*((#1+1)/3)\relax}
+
+\etocsetstyle{part}
+ {\etocskipfirstprefix}
+% This updates the global tree with the data from the previous
+% part and all its children sections. Moved here because for some parts the
+% sections are not displayed due to depth tags.
+ {\ifnum\value{partco}=3
+ \appendchildtree\treetok\parttok {branch color= green!50,level distance=10cm}%
+ \else
+\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendchildtree\treetok\parttok {branch color= teal!30}% first
+ \or \appendchildtree\treetok\parttok {branch color= yellow!80}% second
+ \else\appendchildtree\treetok\parttok {branch color= green!50}% third and next ...
+ \fi\fi
+ }
+ {\stepcounter{partco}%
+% customize manually some TikZ set-up (should be done inside the TikZ thing I guess)
+ \def\tmpoption {}%
+ \def\tmprotate {}% first
+ %\ifnum\value{partco}=5 \def\tmprotate {[counterclockwise from =-40]}\fi
+ %\ifnum\value{partco}=8 \def\tmprotate {[counterclockwise from =-50]}\fi
+% define the part node
+ \edef\partnode{node \tmpoption
+ {\unexpanded\expandafter{\etocthelinkednumber}.
+ \unexpanded\expandafter{\etocthelinkedname}}\tmprotate }%
+% this is a starting point which will be filled it by the section children
+ \parttok\expandafter{\partnode}}
+ {\ifcase\pseudomodthree{\value{partco}}%
+ \or \appendchildtree\treetok\parttok {branch color= teal!60}% first
+ \or \appendchildtree\treetok\parttok {branch color= yellow!80}% second
+ \else\appendchildtree\treetok\parttok {branch color= green!50}% third and next ...
+ \fi
+ }
+
\etocsetstyle{section}
- {}
- {\etociffirst{\\\hline\hline}{\\\hline}}
- {\etocname & \etocnumber & \etocpage }
- {}
+ {}
+ {}
+ {% define the section node
+ \edef\childnode{child {node {\unexpanded\expandafter{\etocthelinkednumber}
+ \unexpanded\expandafter{\etocthelinkedname}}}}%
+ % append it to the current \parttok
+ \appendtotok\parttok\childnode
+ }
+ {}
\etocsettocstyle
- {\hypersetup{hidelinks}\begin{tabular}{|p{4cm}|c|c|}\hline
- \multicolumn{1}{|c|}{\bfseries Section}&
- \bfseries number&
- \bfseries page}
- {\\\hline\end{tabular}}
+ {\setcounter{partco}{0}%
+ \treetok{\node [root concept]{\textbf{The \etoc documentation}}}}
+ {\global\appendtotok\treetok{ ;}}
+% The \global above is mandatory because etoc always typesets TOC inside a group
+
+\etocsetnexttocdepth{section}
+% use of depth tags to cut out sections for most parts, the sections
+% are too numerous to fit well with the circular growth
+\etocsettagdepth {preamble} {part}
+\etocsettagdepth {overview} {part}
+\etocsettagdepth {styling} {part}
+\etocsettagdepth {control} {part}
+\etocsettagdepth {examples} {part}
+\etocsettagdepth {advanced} {part}
+\etocsettagdepth {etocandworld}{part}
+\etocsettagdepth {code} {section}
-\etocglobaldefs % MANDATORY !!
-\etocsetnexttocdepth{1}
+\tikzset{
+ branch color/.style={
+ concept color=#1!white,
+ every child/.append style={concept color=#1!white!30!white, font=\normalsize},
+ }
+}%
-\tableofcontents\ref{toc:overview}
-\end{center}
+\begin{figure}[htbp!]
+\etocobeydepthtags % obey the depth tags restrictions (which is default anyhow)
+\tableofcontents\label{toc:mindmap}%
+\centeredline{\resizebox{.85\paperwidth}{!}%
+{\begin{tikzpicture}[mindmap,
+ grow cyclic,
+ text width=2cm,
+ align=flush center,
+ nodes={concept},
+ concept color=orange!60,
+ root concept/.append style={text width=4cm, font=\Large},
+ level 1/.append style={level distance=5cm,sibling angle=45, text width=3cm},
+ level 2/.append style={level distance=7cm,sibling angle=30, text width=3cm},
+ level 1 concept/.append style={font=\normalsize},
+ ]
+\the\treetok
+\end{tikzpicture}}}
+\end{figure}