summaryrefslogtreecommitdiff
path: root/texmf-dist/tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2018-09-25 08:30:26 +0900
committerNorbert Preining <norbert@preining.info>2018-09-25 08:30:26 +0900
commite6b754ddd8bdcc1242d8acf0517fa8a694a960c5 (patch)
tree1469880d4b4f3fa14abe2694b697a8cfbc3833f9 /texmf-dist/tex
parent75618a98911aa06acc60d6895de38dd4e4f7cf4e (diff)
aeb-minitoc (new)
Diffstat (limited to 'texmf-dist/tex')
-rw-r--r--texmf-dist/tex/latex/aeb-minitoc/aeb-minitoc.sty256
1 files changed, 256 insertions, 0 deletions
diff --git a/texmf-dist/tex/latex/aeb-minitoc/aeb-minitoc.sty b/texmf-dist/tex/latex/aeb-minitoc/aeb-minitoc.sty
new file mode 100644
index 00000000..44e53789
--- /dev/null
+++ b/texmf-dist/tex/latex/aeb-minitoc/aeb-minitoc.sty
@@ -0,0 +1,256 @@
+%%
+%% This is file `aeb-minitoc.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% aeb-minitoc.dtx (with options: `copyright,package')
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% aeb-minitoc.sty package, %%
+%% Copyright (C) 2012--2018 D. P. Story %%
+%% dpstory@uakron.edu dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of the %%
+%% License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{aeb-minitoc}
+ [2018/09/21 v1.6 Creates a simple mini-toc]
+\newif\ifMiniTocListings \MiniTocListingstrue
+\DeclareOption{nominitocs}{\AtEndOfPackage{\MiniTocListingsfalse
+ \let\insertminitoc\insertminitocNOT}}
+\DeclareOption{!nominitocs}{\MiniTocListingstrue}
+\ProcessOptions
+\let\mtoc@contentsline\contentsline
+\let\mtoc@starttoc\@starttoc
+\let\mtoc@tableofcontents\tableofcontents
+\let\mtoc@addtocontents\addtocontents
+\newcount\@minitocCnt \@minitocCnt=0\relax
+\def\csarg#1#2{\expandafter#1\csname#2\endcsname}
+\let\mtoc@One=1 \let\mtoc@Zero=0
+\let\mtocgobble\@gobble
+\def\TOPLevel#1{\def\x{#1}\ifx\x\@empty\else
+ \def\mtoc@TOPLevel{#1}\edef\TOPLevelNum{\@nameuse{sl@#1}}\fi}
+\def\BTMLevel#1{\def\x{#1}\ifx\x\@empty\else
+ \def\mtoc@BTMLevel{#1}\edef\BTMLevelNum{\@nameuse{sl@#1}}\fi}
+\def\TOCLevels#1#2{\TOPLevel{#1}\BTMLevel{#2}}
+\@ifclassloaded{book}{%
+ \TOCLevels{chapter}{subsection}
+ \def\sl@part{-1}\def\sl@chapter{0}
+ \csarg{\edef}{sl@part*}{\sl@part}
+ \csarg{\edef}{sl@chapter*}{\sl@chapter}
+}{%
+ \@ifclassloaded{report}{%
+ \TOCLevels{chapter}{subsection}
+ \def\sl@part{-1}\def\sl@chapter{0}
+ \csarg{\edef}{sl@part*}{\sl@part}
+ \csarg{\edef}{sl@chapter*}{\sl@chapter}
+ }{%
+ \TOCLevels{section}{subsubsection}
+ \def\sl@part{0}\csarg{\edef}{sl@part*}{\sl@part}
+ }%
+}
+\def\sl@section{1}\def\sl@subsection{2}\def\sl@subsubsection{3}
+\def\sl@paragraph{4}\def\sl@subparagraph{5}%\def\sl@all{17}
+\csarg{\edef}{sl@section*}{\sl@section}
+\csarg{\edef}{sl@subsection*}{\sl@subsection}
+\csarg{\edef}{sl@subsubsection*}{\sl@subsubsection}
+\csarg{\edef}{sl@paragraph*}{\sl@paragraph}
+\csarg{\edef}{sl@subparagraph*}{\sl@subparagraph}
+\newif\if@foundTOPLevel \@foundTOPLevelfalse
+\def\mtoc@@contentsline#1#2#3#4#5{\def\mtoc@PgNum{#3}%
+ \def\mtoc@HY@anchor{#4}\def\TOCEntryNum{#5}%
+ \mtoc@contentsline{#1}{#2}{#3}{#4}}
+\long\def\cl@LOOKFORSEC@LX#1#2#3#4{%
+ \cl@LOOKFORSEC@HY{#1}{#2}{#3}{\@empty}{#4}}
+\long\def\cl@LOOKFORSEC@HY#1#2#3#4#5{\def\mt@rgi{#1}% dps
+ \if@foundTOPLevel\ifx\mtocCL\@gobbletwo\else
+ \edef\NUMLevel{\@nameuse{sl@#1}}%
+ \ifnum\NUMLevel > \TOPLevelNum\relax\else
+ \let\mtocCL\@gobbletwo
+ \fi
+ \fi\fi
+ \@chkForNl#2\@nil % is it a * section
+ \ifx\mtocCL\@gobbletwo\else
+ \edef\mtoc@tmp{\the\mtocs@toks@}%
+ \ifx\mt@rgi\mtoc@TOPLevel
+ \def\SECNUM{MTOC.#5}%
+ \set@display@protect
+ \edef\mtoc@sec{\mtoc@sec}%
+ \ifx\SECNUM\mtoc@sec
+ \@foundTOPLeveltrue
+ \else
+ \@foundTOPLevelfalse\fi
+ \set@typeset@protect
+ \else
+ \if@foundTOPLevel
+ \ifnum\NUMLevel > \BTMLevelNum\relax\else
+ \ifx\@nlrtn\relax
+ \mtocs@toks@=\expandafter{\mtoc@tmp
+ \mtoc@@contentsline{#1}{#2}{#3}{#4}{#5}}\else
+ \mtocs@toks@=\expandafter{\mtoc@tmp
+ \mtoc@@contentsline{#1*}{#2}{#3}{#4}{#5}}\fi
+ \fi
+ \fi
+ \fi
+ \fi
+}
+\@ifpackageloaded{hyperref}{\let\cl@LOOKFORSEC\cl@LOOKFORSEC@HY}
+ {\let\cl@LOOKFORSEC\cl@LOOKFORSEC@LX}
+\def\@chkForNl#1#2\@nil{% check for number line
+ \ifx#1\numberline\let\@nlrtn\relax\else
+ \def\@nlrtn{\numberline{\hfill}}\fi}
+\def\mtoc@st@rttoc#1{\begingroup
+ \if@filesw \expandafter\newwrite\csname tf@#1\endcsname
+ \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+ \fi\global\@nobreakfalse\endgroup}
+\let\mtoc@@starttoc\mtoc@One
+\def\mtoc@start@toc{\let\mtoc@start@next\relax
+ \@ifundefined{aebLastPage}
+ {%
+ \ifx\mtoc@@starttoc\mtoc@One
+ \global\let\mtoc@@starttoc\mtoc@Zero
+ \def\mtoc@start@next{\mtoc@st@rttoc{toc}}\fi
+ \mtoc@start@next
+ }{%
+ \ifnum\aebLastPage<\thepage\relax
+ \def\mtoc@start@next{\mtoc@st@rttoc{toc}}\fi
+ \mtoc@start@next
+ }%
+}
+\AtEndDocument{\mtoc@start@toc}
+\def\mtoc@TOC{toc}
+\def\mtocCL#1#2{#1}
+\renewcommand\addtocontents[2]{%
+ \def\mt@rgi{#1}\ifx\mt@rgi\mtoc@TOC
+ \global\advance\@minitocCnt\@ne
+ \mtoc@addtocontents{#1}{\protect\mtocCL{#2}{\the\@minitocCnt}}\else
+ \mtoc@addtocontents{#1}{#2}\fi}
+\def\tableofcontents{%
+ \def\@starttoc##1{\makeatletter
+ \@input{\jobname.##1}\makeatother}%
+ \NoFmtTOCEntry
+ \mtoc@tableofcontents
+ \global\let\@starttoc\mtoc@starttoc}
+\newcommand{\mtoc@CL@mtoc}[1]{\mtoc@parse#1\@nil}
+\def\mtoc@parse#1#2\@nil{\ifx#1\contentsline
+ \def\mtoc@next##1{#1#2{##1}}\else
+ \let\mtoc@next\@gobble\fi\mtoc@next}
+\let\@startsection@mtoc@SAVE\@startsection
+\def\@startsection#1{\def\@currentsecname{#1}%
+ \@startsection@mtoc@SAVE{#1}}
+\def\mtoclabel#1{\label{#1}\@bsphack
+ \protected@write\@auxout{}{\string
+ \csarg{\string\gdef}{mtoclbl#1}{\the\@minitocCnt}
+ }%
+ \@esphack
+}
+\def\mtocref#1{\@nameuse{mtoclbl#1}}
+\newif\if@minitoc \@minitocfalse
+\newif\if@MiniTocListings \@MiniTocListingstrue
+\def\NoFmtTOCEntry{\@minitocfalse}
+\def\FmtTOCEntry{\@minitoctrue}
+\def\miniorfulltoc#1#2{\if@minitoc
+ {{#1{#2}}}\else{#2}\fi}
+\newcommand{\insertminitoc}[1][]{%
+ \def\mtoc@rgi{#1}\ifx\mtoc@rgi\@empty
+ \edef\mtoc@rgi{MTOC.\the\@minitocCnt}\else
+ \edef\mtoc@rgi{MTOC.\mtocref{#1}}\fi
+ \ifnum\TOPLevelNum > \BTMLevelNum
+ \PackageError{aeb-minitoc}{%
+ The top level (\mtoc@TOPLevel) must be\MessageBreak
+ must be higher on the hierarchy then at bottom level}
+ {Try switching the two}\fi
+ \begingroup
+ \edef\mtoc@sec{\mtoc@rgi}\mtocs@toks@={}%
+ \let\contentsline\cl@LOOKFORSEC
+ \let\mtocCL\mtoc@CL@mtoc
+ \@foundTOPLevelfalse
+ \let\mtoc@numberline\numberline
+ \def\numberline##1{\makebox[\mtoc@numBoxWidth][l]%
+ {\sl@@sNumFmt{##1}}\sl@@EntryFmt}%
+ \makeatletter\InputIfFileExists{\jobname.toc}%
+ {\PackageInfo{aeb-minitoc}{TOC file read}}
+ {\PackageInfo{aeb-minitoc}{TOC file not available}}%
+ \edef\x{\the\mtocs@toks@}\ifx\x\@empty
+ \global\@MiniTocListingsfalse\else
+ \global\@MiniTocListingstrue\fi
+ \the\mtocs@toks@\par\makeatother
+ \if@MiniTocListings\else
+ \PackageWarning{aeb-mintoc}{No mini-toc built here}\fi
+ \endgroup
+}
+\newcommand{\insertminitocNOT}[1][]{}
+\def\numBoxWidth#1{\def\mtoc@numBoxWidth{#1}}
+\numBoxWidth{2.5em}
+\newtoks\mtoc@toks
+\newtoks\mtocs@toks@
+\def\sl@dots#1{\def\sl@@dots{%
+ \@dottedtocline{\sl@current}{#1}{\mtoc@numBoxWidth}}}
+\let\sl@@dots\@gobble
+\def\sl@nodots#1{\def\sl@@dots{%
+ \no@dottedtocline{\sl@current}{#1}{\mtoc@numBoxWidth}}}
+\let\sl@@nodots\@gobble
+\def\sl@EntryFmt#1{\def\sl@@EntryFmt{#1}} % dps
+\let\sl@@EntryFmt\relax % dps
+\def\sl@sNumFmt#1{\def\sl@@sNumFmt{#1}}
+\let\sl@@sNumFmt\relax
+\def\sl@pNumFmt#1{\def\sl@@pNumFmt{#1}}
+\let\sl@@pNumFmt\relax
+\def\sl@tocrmarg#1{\def\@tocrmarg{#1}}
+\def\sl@dotsep#1{\def\@dotsep{#1}}
+\def\mtoc@star#1*#2\@nil{\def\@rgii{#2}\ifx\@rgii\@empty
+ \let\mtoc@@star\mtoc@Zero\else\let\mtoc@@star\mtoc@One\fi}
+\long\def\declaretocfmt#1#2{%
+ \xdef\sl@current{\@nameuse{sl@#1}}%
+ \global\@namedef{\mtoc@CmdName @l@#1}##1##2{%
+ \normalfont\normalcolor\let\@E\TOCEntryNum
+ \let\@L\mtoc@HY@anchor\let\@Pg\mtoc@PgNum
+ \let\sl@@dots\@empty\let\sl@@sNumFmt\relax
+ \let\sl@@pNumFmt\relax\let\sl@@EntryFmt\relax
+ \let\@W\numBoxWidth\let\@R\sl@tocrmarg\let\@D\sl@dots
+ \let\@B\sl@nodots\let\@F\sl@EntryFmt\let\@N\sl@sNumFmt
+ \let\@P\sl@pNumFmt
+ #2\ifx\sl@@dots\@empty\let\sl@next\relax\else
+ \mtoc@star#1*\@nil % dps
+ \ifx\mtoc@@star\mtoc@Zero
+ \def\sl@next{\sl@@dots{##1}{\sl@@pNumFmt{##2}}}\else
+ \def\sl@next{\sl@@dots{\sl@@EntryFmt##1}{\sl@@pNumFmt{##2}}}\fi
+ \fi\sl@next}%
+ \edef\x{\expandafter\noexpand\csname l@#1\endcsname}%
+ \edef\y{\expandafter\noexpand\csname\mtoc@CmdName @l@#1\endcsname}%
+ \edef\mtoc@@tmp{\the\mtoc@toks\let\expandafter\noexpand\x=
+ \expandafter\noexpand\y}
+ \global\mtoc@toks=\expandafter{\mtoc@@tmp}}
+\def\mtoc@getCmdName#1{\edef\mtoc@CmdName{\expandafter
+ \@gobble\string#1}}
+\newenvironment{minitocfmt}[1]{\makeatletter
+ \gdef\@mtoc@cmd@@{#1}\let\@A\mtoc@addto
+ \mtoc@getCmdName{#1}\mtoc@toks={\let\@PW\mtoc@PW\let\@DS\sl@dotsep
+ \let\@R\sl@tocrmarg}%
+}{\expandafter\xdef\@mtoc@cmd@@{\the\mtoc@toks}}
+\def\mtoc@addto#1{\edef\mtoc@@tmp{\the\mtoc@toks}%
+ \global\mtoc@toks=\expandafter{\mtoc@@tmp #1}}
+\def\mtoc@PW#1{\def\@pnumwidth{#1}}
+\def\no@dottedtocline#1#2#3#4#5{%
+ \ifnum #1>\c@tocdepth \else
+ \vskip \z@ \@plus.2\p@
+ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
+ \parindent #2\relax\@afterindenttrue
+ \interlinepenalty\@M
+ \leavevmode
+ \@tempdima #3\relax
+ \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
+ {#4}\nobreak
+ \hfill
+ \nobreak
+ \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
+ \par}%
+ \fi}
+\endinput
+%%
+%% End of file `aeb-minitoc.sty'.