summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/dlfltxb
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-01-19 15:20:26 +0000
committerNorbert Preining <preining@logic.at>2008-01-19 15:20:26 +0000
commitad6fb43bb22068e7d16a9ed534f4614699d8fcd7 (patch)
treed7ac91a072f216ce631d617fd2a9d56d0077264b /Master/texmf-dist/tex/latex/dlfltxb
parentaa6ced3deb6c3429cc177f028065c87696e2eabd (diff)
update dlbfltx
git-svn-id: svn://tug.org/texlive/trunk@6315 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/dlfltxb')
-rw-r--r--Master/texmf-dist/tex/latex/dlfltxb/dlfltxbcodetips.sty61
-rw-r--r--Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty21
-rw-r--r--Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty29
-rw-r--r--Master/texmf-dist/tex/latex/dlfltxb/dlfltxbtocconfig.sty379
4 files changed, 482 insertions, 8 deletions
diff --git a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbcodetips.sty b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbcodetips.sty
index 1a58f5f86a6..edc970b473d 100644
--- a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbcodetips.sty
+++ b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbcodetips.sty
@@ -1,4 +1,4 @@
-\ProvidesPackage{dlfltxbcodetips}[2007/07/11 v0.26 by Lars 'daleif' Madsen]
+\ProvidesPackage{dlfltxbcodetips}[2008/01/17 v0.3 by Lars 'daleif' Madsen]
% this pacakge collects some macros presented as code tips in my LaTeX
% book: "Introduktion til LaTeX". As the macros might be useful for
@@ -234,3 +234,62 @@
}
+\newcommand\ProvidePGFPagesFourOnOneWithSpaceForNotes{%
+ \@ifpackageloaded{pgfpages}{%
+ \pgfpagesdeclarelayout{4 on 1 with space for notes}
+ { \edef\pgfpageoptionheight{\the\paperwidth} % landscaped by default
+ \edef\pgfpageoptionwidth{\the\paperheight}
+ \def\pgfpageoptionborder{0pt}}
+ { \pgfpagesphysicalpageoptions{logical pages=4,%
+ physical height=\pgfpageoptionheight,%
+ physical width=\pgfpageoptionwidth}
+ \ifdim\paperheight>\paperwidth\relax
+ % put side-by-side
+ \pgfpageslogicalpageoptions{1}{%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.125\pgfphysicalwidth}{.75\pgfphysicalheight}}%
+ \pgfpageslogicalpageoptions{2}{%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.625\pgfphysicalwidth}{.75\pgfphysicalheight}}%
+ \pgfpageslogicalpageoptions{3}{%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.125\pgfphysicalwidth}{.25\pgfphysicalheight}}%
+ \pgfpageslogicalpageoptions{4}{%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.25\pgfphysicalwidth,%
+ resized height=.5\pgfphysicalheight,%
+ center=\pgfpoint{.625\pgfphysicalwidth}{.25\pgfphysicalheight}}%
+ \else % stack on top of one another
+ \pgfpageslogicalpageoptions{1}{%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.875\pgfphysicalheight}}%
+ \pgfpageslogicalpageoptions{2}{%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.625\pgfphysicalheight}}%
+ \pgfpageslogicalpageoptions{3}{%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.375\pgfphysicalheight}}%
+ \pgfpageslogicalpageoptions{4}{%
+ border shrink=\pgfpageoptionborder,%
+ resized width=.5\pgfphysicalwidth,%
+ resized height=.25\pgfphysicalheight,%
+ center=\pgfpoint{.25\pgfphysicalwidth}{.125\pgfphysicalheight}}%
+ \fi
+ }
+ }{%
+ \PackageError{dlfltxbcodetips}{\string\ProvidePGFPagesFourOnOneWithSpaceForNotes^^J
+ can only be used after the pgfpages package have been loaded}{}
+}}
+
diff --git a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty
index ba40ef465e8..32f4652c10a 100644
--- a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty
+++ b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmarkup.sty
@@ -1,4 +1,19 @@
-\ProvidesPackage{dlfltxbmarkup}[2007/05/16 v0.6 by daleif]
+\ProvidesPackage{dlfltxbmarkup}[2008/01/10 v0.65 by daleif]
+
+% This package be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% 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 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is Lars Madsen (daleif@imf.au.dk).
+%%
+
+
\@ifclassloaded{memoir}{}{%
\PackageError{felinemarkup}{This package depends on several internal
@@ -45,7 +60,7 @@
% is given
% 2007/05/15 \feline@index@cmd renamed to \felineIndexCmd
% 2007/05/16 package renamed to dlfltxbmarkup
-
+% 2008/01/10 added a strut inside the macro that writes in the margin,
% this boolean is meant to be used for example inside constructions
% that will not permit the use of \marginpar, for example the
@@ -75,7 +90,7 @@
% leaves a whatsit
% \ifoddpage\RaggedRight\else\RaggedLeft\fi%
\felineMarginAdjustment%
- {\slshape\footnotesize\hspace{0pt}\color{black}#1\par}}}
+ {\slshape\footnotesize\strut\hspace{0pt}\color{black} #1\strut\par}}}
% this might not belong here, but we will leave it for now
\strictpagechecktrue%
diff --git a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty
index 367c9e57669..ae7cd5ce1b7 100644
--- a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty
+++ b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbmisc.sty
@@ -1,4 +1,19 @@
-\ProvidesPackage{dlfltxbmisc}[2007/05/15 v0.1 by Lars Madsen]
+\ProvidesPackage{dlfltxbmisc}[2008/01/01 v0.2 by Lars Madsen]
+
+% This package be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% 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 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is Lars Madsen (daleif@imf.au.dk).
+%%
+
+
% if memoir is not loaded we will need the chngpage to get adjustwidth
\@ifclassloaded{memoir}{}{
@@ -9,6 +24,11 @@
\RequirePackage{url}
\RequirePackage{calc}
+\@ifundefined{marg}{\newcommand\marg{}}{}
+\@ifundefined{oarg}{\newcommand\oarg{}}{}
+\@ifundefined{parg}{\newcommand\parg{}}{}
+
+
\newcommand*\Arg@s[1]{\textnormal{\texttt{#1}}}%
\newcommand*\Arg@n[1]{\textnormal{$\langle$\textit{#1}$\rangle$}}%
\newcommand*\Arg{\@ifstar{\Arg@s}{\Arg@n}}%
@@ -17,19 +37,19 @@
\newcommand*\marg@n[1]{%
\textnormal{\texttt{\{}$\langle$\textit{#1}$\rangle$\texttt{\}}}%
}
-\newcommand*\marg{\@ifstar{\marg@s}{\marg@n}}
+\renewcommand*\marg{\@ifstar{\marg@s}{\marg@n}}
\newcommand*\oarg@s[1]{\textnormal{\texttt{[#1]}}}
\newcommand*\oarg@n[1]{%
\textnormal{\texttt{[}$\langle$\textit{#1}$\rangle$\texttt{]}}%
}
-\newcommand*\oarg{\@ifstar{\oarg@s}{\oarg@n}}
+\renewcommand*\oarg{\@ifstar{\oarg@s}{\oarg@n}}
\newcommand*\parg@s[1]{\textnormal{\texttt{(#1)}}}
\newcommand*\parg@n[1]{%
\textnormal{\texttt{(}$\langle$\textit{#1}$\rangle$\texttt{)}}%
}
-\newcommand*\parg{\@ifstar{\parg@s}{\parg@n}}
+\renewcommand*\parg{\@ifstar{\parg@s}{\parg@n}}
\newcommand\malign[2][2pt]{%
\makebox[0pt][l]{\kern#1\smash{\rule[-1.5mm-#2\baselineskip]{0.01pt}{5mm+#2\baselineskip}}}%
@@ -90,6 +110,7 @@
\def\UrlNoBreaks{\do\(\do\[\do\{\do\<\do\:\do\.}%\]
\RaggedLeft%
\fussy%
+ \hbadness=10000% cheating
\addtolength\lastlinedim{-\bibhang}%
\fboxsep=0pt%
\fboxrule=0pt%
diff --git a/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbtocconfig.sty b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbtocconfig.sty
new file mode 100644
index 00000000000..3f4168bc030
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/dlfltxb/dlfltxbtocconfig.sty
@@ -0,0 +1,379 @@
+\ProvidesPackage{dlfltxbtocconfig}[2007/12/27 v0.5 by Lars Madsen]
+
+% This package be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% of this license or (at your option) any later version.
+%% 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 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% The Current Maintainer of this work is Lars Madsen (daleif@imf.au.dk).
+%%
+
+
+% HISTORY
+%
+% 20071227 a few internal macros changed to reflect changes in
+% mempatch 4.9
+
+% we need to be running under the memoir class
+\@ifclassloaded{memoir}{}{%
+ \PackageError{dlfltxbtoconfig}{This package is build to run under
+ the memoir class, no other class will work}{}}
+
+% test for features present in mempatch 4.9
+\@ifundefined{cftinsertcode}{
+ \PackageError{dlfltxbtoconfig}{Macro \string\cftinsertcode is missing.
+ We need features from mempatch version 4.9 or newer, please
+ upgrade memoir and mempatch.}{}
+}{}
+
+
+% add a \par to the end of the TOC
+\AtEndDocument{\addtocontents{toc}{\par}}
+
+% we will use a special spart in the short ToC only the short ToC uses
+% this so we define it to do nothing
+\providecommand\l@spart[2]{}
+% similar to \part but only adds something to the ToC
+\newcommand\spart[1]{\cleartorecto\phantomsection\addcontentsline{toc}{spart}{\protect\partnumberline{}#1}}
+
+
+% this is now directly included in memoir
+% % the command inserted into the ToC holding the hook
+% \newcommand\cftdlfinsert[1]{\@nameuse{cftdlfinsert#1}}
+% % creates a hook to be executed in the ToC, since we use \@nameuse it
+% % does not matter if the hook does not exist
+% \newcommand\cftdlfinsertcode[2]{\@namedef{cftdlfinsert#1}{#2}}
+% % inserts a hook into the ToC file
+% \newcommand\cftdlfinserthook[1]{\addtocontents{toc}{\protect\cftdlfinsert\protect{#1\protect}}}
+
+
+
+% used for calculating the widest section and sunsection numbers
+% we reset them back to zero in the ToC preprocessor
+\newlength\secwidest
+\settowidth\secwidest{99.99}
+\newlength\subsecwidest
+\settowidth\subsecwidest{99.99}
+
+% the name of the ToC file, just such that one can use it on sample
+% data by just redefining this macro
+\def\feline@includetocfile{\@starttoc{toc}}
+
+%\PackageWarning{dlfltxbtocconfig}{ToCfile: \feline@tocfile}
+
+% LoT and LoF handling
+\cftsetindents{figure} {0em} {3.0em}
+\cftsetindents{table} {0em} {3.0em}
+\renewcommand{\cftfiguredotsep} {\cftnodots}
+\renewcommand{\cfttabledotsep} {\cftnodots}
+
+
+%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% MakeShortToC %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%
+
+
+
+% This macro is used to print the two ToCs
+\newcommand\MakeShortToC{
+ \begingroup
+ \renewcommand{\contentsname}{Kort oversigt}
+ \setcounter{tocdepth}{0}
+ % no precis'
+ \renewcommand\precistoctext[1]{}
+ % mess with internal command
+ \renewcommand\changetocdepth[1]{}
+ \renewcommand\cftchapterfont{\normalfont\itshape}
+ \renewcommand\cftchapterpagefont{\normalfont\itshape}
+ \renewcommand\cftchapterleader{\enspace\textperiodcentered\enspace}
+ % no part numbers
+ \renewcommand\partnumberline[1]{}
+ % no parts
+ \renewcommand\l@part[2]{}
+ % we will use spart ToC entries and ignore parts
+ \renewcommand\l@spart[2]{%
+ \noindent
+ \qquad\qquad\hrulefill\par%
+ \noindent%
+ \raisebox{-3pt}[0pt][0pt]{\qquad\qquad\parbox[t]{0.35\textwidth}{\itshape\bfseries ##1}}%
+ \vskip-\baselineskip
+ \par
+ }
+ % no chapternumbers
+ \renewcommand\chapternumberline[1]{}
+ % reconfigure the way chapters and appendices are presented
+ \renewcommand*{\l@chapapp}[3]{%
+ \ifnum \c@tocdepth >\m@ne
+ \cftchapterbreak
+ \vskip \cftbeforechapterskip
+ {
+% \leftskip -10pt%\cftchapterindent\relax
+% \rightskip 0\textwidth%\@tocrmarg
+ \leftskip \fill
+ \rightskip 0pt
+ \parfillskip 0pt%-\rightskip
+ \parindent 0pt
+ \@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \def\@chapapp@head{##3}%
+ {\cftchapterpagefont ##2}\nobreak%
+ \cftchapterfillnum%
+ {##1}%
+ }%
+ \fi}
+ % it is best not have have long chapter title, but in case they are
+ % long, we will put them into a box
+ \renewcommand*\cftchapterfillnum[1]{%
+ {\cftchapterleader}\nobreak
+ {\parbox[t]{0.5\textwidth}{\raggedright\cftchapterfont ##1}}\par
+ }
+ % set the distance between chapters
+ \setlength\cftbeforechapterskip{4pt}
+ % set the title of the short ToC
+ \@nameuse{@tocmaketitle}
+ % add the short ToC to the ToC
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\contentsname}
+ % reag in the ToC
+ \makeatletter
+% \input\feline@tocfile
+\feline@includetocfile
+ \endgroup
+ \cleartorecto
+}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% MakeNormalToC %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%
+
+
+
+\newcommand\cftdlfsubsubseccomma{%
+ \@ifundefined{aldinesmall}{%
+ , \hskip .5em plus 3pt minus 3pt%
+ }{%
+ \hskip .5em plus 3pt minus 3pt\aldinesmall\nolinebreak%
+ \hskip .5em plus 3pt minus 3pt\nopagebreak%
+ }}
+
+
+% This macro is used to print the two ToCs
+\newcommand\MakeNormalToC{
+ \begingroup
+
+ \newcommand\feline@partToCtext[1]{%
+ \begingroup%
+ \fboxsep=2pt%
+ {\parbox{\linewidth-2\fboxsep-2\fboxrule}%
+ {\itshape\LARGE \strut\hfill {##1} \hfill\strut}}%
+ \endgroup%
+ }
+
+
+ % no pagenumbers for part
+ \cftpagenumbersoff{part}
+
+ \DeclareRobustCommand\precistoctext[1]{%
+ {\nopagebreak\leftskip0pt\relax
+ % \advance\leftskip\cftchapternumwidth\relax
+ \rightskip\@tocrmarg plus 4em \relax
+ \noindent\parbox{\linewidth-2em-\@tocrmarg}%
+ {\precistocfont\raggedright\footnotesize ##1}\par}\vskip5pt}
+
+ % reconfiguring the way parts will appear
+ \renewcommand*{\l@part}[2]{%
+ \ifnum \c@tocdepth >-2\relax
+ \cftpartbreak%
+ \vskip\cftbeforepartskip
+ \begingroup
+ {
+ \leftskip 0pt%\cftpartindent\relax
+ \rightskip 0pt%\@tocrmarg
+ \parfillskip -0pt%\rightskip
+ \parindent 0pt\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \feline@partToCtext{##1}
+ \par
+ }\nopagebreak
+ \global\@nobreaktrue
+ \everypar{\global\@nobreakfalse\everypar{}}%
+ \endgroup
+ \fi}
+ % it is good to break begore a part instead of having a part at the
+ % bottom of a page
+ \renewcommand\cftpartbreak{\par\addpenalty{-\@highpenalty}
+ \if@nobreak\else
+ \vskip\z@\@plus\bottomsectionskip
+ \penalty\z@
+ \vskip\z@\@plus -\bottomsectionskip
+ \fi
+ }
+ % no part numbers
+ \renewcommand\partnumberline[1]{}
+
+
+ % need more space for ToC page numbers
+ \setpnumwidth{2.55em}
+ \setrmarg{3.55em}
+ % need more space for ToC section numbers, we will use calculated numbers
+ \cftsetindents{section} {0em} {\secwidest+0.5em}
+ \cftsetindents{subsection} {\secwidest+0.5em} {\subsecwidest+0.5em}
+ \cftsetindents{subsubsection}{\secwidest+\subsecwidest+1em}{0em}
+% % need more space for LoF & LoT numbers
+ %remove the dotted leaders
+ \renewcommand{\cftsectiondotsep} {\cftnodots}
+ \renewcommand{\cftsubsectiondotsep} {\cftnodots}
+ \renewcommand{\cftsubsubsectiondotsep}{\cftnodots}
+ \renewcommand{\cftparagraphdotsep} {\cftnodots}
+ \renewcommand{\cftsubparagraphdotsep} {\cftnodots}
+
+ % if someone wrote \bfseries or similar in the title of a
+ % subsubsection, we will remove it
+ \let\feline@oldnumberline\numberline
+ \let\oldbfseries=\bfseries
+ \let\oldem=\em
+ \let\oldttfamily=\ttfamily
+ \renewcommand{\cftsubsubsectionfont}{\small\itshape}
+ \renewcommand{\cftsubsubsectionpagefont}{\footnotesize\itshape\scshape}
+ % reconfigure the way subsubsectins are displayed
+ \renewcommand{\l@subsubsection}[2]{%
+ \ifnum \c@tocdepth > 2\relax%
+ \let\bfseries\relax%
+ \let\em\relax%
+ \let\ttfamily\relax%
+ % \def\numberline##1{\textit{##1}~}% % numbers
+ \def\numberline####1{}% % no numbers
+ \leftskip=\cftsubsubsectionindent%
+ \settowidth\@tempdima{\textbf{999999}}%
+ \rightskip=\@tempdima plus 4em
+% \parfillskip=\fill%
+ \parfillskip=2em plus 1fil
+ \nopagebreak% added 20060713
+ % instead of using a comma to separate entries we will use a leaf
+ % (requires the fourier package
+ \ifhmode \cftdlfsubsubseccomma\else\noindent\fi%
+% \noindent
+ \ignorespaces%
+ {\cftsubsubsectionfont ##1}~~{\cftsubsubsectionpagefont ##2}%
+ \let\numberline\feline@oldnumberline\ignorespaces%
+ \let\bfseries\oldbfseries\ignorespaces%
+ \let\em\oldem\ignorespaces%
+ \let\ttfamily\oldttfamily\ignorespaces%
+ \fi%
+ }
+
+ % getting chapternames and appendix names into the ToC
+ \renewcommand\cftchaptername{\chaptername~~}
+ \renewcommand\cftappendixname{\appendixname~~}
+
+ \renewcommand{\contentsname}{Indholdsfortegnelse}
+ \setcounter{tocdepth}{3} % subsections
+ \addtodef{\cftchapterbreak}{\par}{}
+ \renewcommand{\cftchapterleader}{\cftdotfill{\cftchapterdotsep}}
+
+% \setlength\cftbeforechapterskip{2.5em plus 1em minus 0.5em}
+ \setlength\cftbeforepartskip{2.5em plus 1em minus 1.5em}
+
+ % handle some added hooks
+ \cftinsertcode{A}{
+ \renewcommand\cftchapterfont{\normalfont}
+ \renewcommand\cftchapterpagefont{\normalfont}
+ \setlength\cftbeforechapterskip{0pt}
+ }
+
+ \cftinsertcode{B}{
+ \renewcommand\cftchapterfont{\bfseries}
+ \renewcommand\cftchapterpagefont{\bfseries}
+ \addtolength\cftbeforechapterskip{1.25em plus 0.7em minus 1em}
+ }
+
+ \cftinsertcode{C}{\setlength\cftbeforechapterskip{0pt}}
+
+
+ % set the title of the short ToC
+ \@nameuse{@tocmaketitle}
+ % add the short ToC to the ToC
+ \phantomsection
+ \addcontentsline{toc}{chapter}{\contentsname}
+ % reag in the ToC
+ \makeatletter
+% \input\feline@tocfile
+\feline@includetocfile
+ \endgroup
+ \cleartorecto
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% ToC preprocessor %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+% this macro preprocesses the ToC and figures out which section and
+% subsection numbers are the widest, these will be saved into
+%\secwidest and \subsecwidest
+\newcommand\preprocessToC{
+ \begingroup
+% \newif\ifshortToC
+ \makeatletter
+ \let\l@part=\@gobbletwo
+ \let\l@chapapp=\@gobbletwo
+ \let\l@subsubsection=\@gobbletwo
+
+ \setlength{\global\secwidest}{0pt}
+ \setlength{\global\subsecwidest}{0pt}
+
+ \def\PARSER##1##2##3##4\END{%\typeout{##2}
+ \settowidth\unitlength{##3}%
+ \ifdim\unitlength>##1%
+ \settowidth{\global##1}{##3}%
+ \fi%
+ }
+ \renewcommand\l@section[2]{%
+ \PARSER\secwidest##1\END%
+ }
+ \renewcommand\l@subsection[2]{%
+ \PARSER\subsecwidest##1\END%
+ }
+ \let\precistoctext\@gobble
+
+% \input\feline@tocfile
+ \feline@includetocfile
+ \typeout{widest section: \the\secwidest}
+ \typeout{widest subsection: \the\subsecwidest}
+ \endgroup
+}
+
+
+% the internal macros tha lives inside the ToC file
+\def\cftSubsectionIndentsBackToNormal{%
+ \cftsetindents{subsubsection}{\secwidest+\subsecwidest+1em}{0em}%
+}
+\def\cftSubsectionIndentsPullBack{%
+ \cftsetindents{subsubsection}{\secwidest+0.5em}{0em}%
+}
+
+\newcommand\ToCSubsectionIndentsPullBack{%
+ \addtocontents{toc}{\protect\cftSubsectionIndentsPullBack}}
+\newcommand\ToCSubsectionIndentsBackToNormal{%
+ \addtocontents{toc}{\protect\cftSubsectionIndentsBackToNormal}}
+
+% preserving some old syntax
+\let\RedofelineEmulSubSubSec\ToCSubsectionIndentsBackToNormal
+\let\felineEmulSubSubSec\ToCSubsectionIndentsPullBack
+