summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/ncctools/manyfoot.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-13 00:00:29 +0000
committerKarl Berry <karl@freefriends.org>2006-01-13 00:00:29 +0000
commit8b8fbae5990dee3b8ab739df0de8b7c365e4d227 (patch)
tree824392c1bb07fe8c8b620efd3992cc0daa3e433a /Master/texmf-dist/tex/latex/ncctools/manyfoot.sty
parente9351f8ac4f8603d6020be78e092e939e24d89d0 (diff)
ncctools
git-svn-id: svn://tug.org/texlive/trunk@1132 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/ncctools/manyfoot.sty')
-rw-r--r--Master/texmf-dist/tex/latex/ncctools/manyfoot.sty405
1 files changed, 405 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/ncctools/manyfoot.sty b/Master/texmf-dist/tex/latex/ncctools/manyfoot.sty
new file mode 100644
index 00000000000..f11b03f1123
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/ncctools/manyfoot.sty
@@ -0,0 +1,405 @@
+%%
+%% This is file `manyfoot.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% manyfoot.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% This file is a generated file from the sources of the `ncctools'
+%% bundle.
+%%
+%% You are not allowed to modify this file.
+%%
+%% You are allowed to distribute this file if and only if
+%% it is distributed with the corresponding source files in
+%% the `ncctools' bundle.
+%%
+%% For the copying and distribution conditions of the source files,
+%% see the README file distributed with the ncctools bundle.
+%%
+%% File: manyfoot.dtx Copyright (C) 1998--2005 by Alexander I. Rozhenko
+%%
+\NeedsTeXFormat{LaTeX2e}[1993/12/01]
+\ProvidesPackage{manyfoot}
+ [2005/09/11 v1.10 Many Footnote Levels Package (NCC)]
+\RequirePackage{nccfoots}
+\newcommand{\extrafootnoterule}{}
+\DeclareOption{ruled}{\def\extrafootnoterule{\defaultfootnoterule}}
+\newdimen\MFL@columnwidth
+\def\MFL@floathook{\MFL@columnwidth\columnwidth}
+\long\def\MFL@insert#1#2{%
+ \insert#1{\splittopskip\footnotesep \splitmaxdepth \dp\strutbox
+ \floatingpenalty\@MM #2%
+ }%
+ \FN@mf@prepare
+}
+\providecommand\FN@mf@prepare{}
+\let\MFL@realinsert\MFL@insert
+\def\MFL@applyhook#1{\csname MFL@hook\string#1\endcsname}
+\let\MFL@startplain\@gobble
+\@onlypreamble\MFL@startplain
+\let\MFL@processplain\@gobble
+\long\def\MFL@fnoteplain#1#2#3{\NCC@makefnmark{#2}%
+ \MFL@insert#1{\reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \hsize\MFL@columnwidth \@parboxrestore
+ \protected@edef\@currentlabel{\@thefnmark}%
+ \color@begingroup
+ \MFL@applyhook{#1}%
+ \@makefntext{%
+ \rule\z@\footnotesep\ignorespaces#3\@finalstrut\strutbox}%
+ \color@endgroup
+ }%
+}
+\newif\ifMFL@paraindent \MFL@paraindenttrue
+\DeclareOption{para}{%
+ \newskip\footglue
+ {\footnotesize \global\footglue=1em plus.3em minus.3em }
+ \newif\ifMFL@split \MFL@splitfalse
+ \newcommand\SplitNote{\MFL@splittrue}
+ \def\MFL@startpara#1{%
+ \global\advance\skip#1\MFL@paraskip
+ \MFL@setsplit{#1}{\MFL@applyhook{#1}}%
+ }
+ \@onlypreamble\MFL@startpara
+ \def\MFL@fnotepara#1#2#3{\let\@thefnmark\@empty
+ \NCC@makefnmark{#2}%
+ \MFL@insert#1{\reset@font\footnotesize
+ \ifx\@thefnmark\@empty \@tempswafalse \else
+ \@tempswatrue
+ \protected@edef\@currentlabel{\@thefnmark}%
+ \fi
+ \color@begingroup
+ \if@tempswa
+ \setbox\@tempboxa\hbox{\@makefnmark}%
+ \ifMFL@paraindent
+ \@tempdima.8em \advance\@tempdima-\wd\@tempboxa
+ \ifdim \@tempdima<\z@ \@tempdima\z@ \fi
+ \else
+ \@tempdima\z@
+ \fi
+ \fi
+ \setbox\@tempboxa\hbox{%
+ \if@tempswa
+ \hskip\@tempdima\unhbox\@tempboxa\nobreak
+ \fi
+ \ignorespaces#3\unskip\strut
+ \ifMFL@split \penalty\m@ne\space \else
+ \penalty-10 \hskip\footglue
+ \fi
+ }%
+ \dp\@tempboxa\z@ \ht\@tempboxa\MFL@fudgefactor\wd\@tempboxa
+ \box\@tempboxa
+ \color@endgroup
+ }%
+ }
+ \def\MFL@processpara#1{%
+ \advance\@tempskipa -\MFL@paraskip
+ \edef\MFL@skip{\vskip\the\@tempskipa\relax}%
+ \setbox#1\vbox{%
+ \unvbox#1\setbox\@tempboxa\hbox{}\MFL@makehhbox
+ \setbox\@tempboxa\hbox{\unhbox\@tempboxa\MFL@removehboxes}%
+ \footnotesize
+ \hsize\MFL@columnwidth \@parboxrestore
+ \ifMFL@paraindent
+ \@ifundefined{footnotemargin}%
+ {\parindent\footglue}%
+ {\parindent\footnotemargin\relax
+ \ifdim\parindent<\z@ \parindent\footglue
+ \else \advance\parindent -0.8em \fi}%
+ \fi
+ \csname MFL@split\string#1\endcsname
+ \rule\z@\footnotesep
+ \unhbox\@tempboxa\unskip
+ \ifnum\lastpenalty=\m@ne \parfillskip\z@
+ \MFL@setsplit{#1}{\noindent}%
+ \else
+ \MFL@setsplit{#1}{\MFL@applyhook{#1}}%
+ \fi
+ }%
+ }
+ \def\MFL@makehhbox{%
+ \loop\setbox\z@\lastbox \ifhbox\z@
+ \setbox\@tempboxa\hbox{\box\z@\unhbox\@tempboxa}%
+ \repeat
+ \ifvbox\z@ \unvbox\z@ \MFL@makehhbox \fi
+ }
+ \def\MFL@removehboxes{\setbox\@tempboxa\lastbox
+ \ifhbox\@tempboxa{\MFL@removehboxes}\unhbox\@tempboxa\fi
+ }
+ \def\MFL@setsplit#1#2{%
+ \expandafter\gdef\csname MFL@split\string#1\endcsname{#2}%
+ }
+ \g@addto@macro\MFL@floathook{%
+ \begingroup
+ \footnotesize \@tempdima\normalbaselineskip
+ \multiply \@tempdima \@cclvi
+ \@tempdimb \columnwidth
+ \divide \@tempdimb \@cclvi
+ \divide \@tempdima \@tempdimb
+ \xdef\MFL@fudgefactor{\strip@pt\@tempdima}%
+ \endgroup
+ }
+ \newcommand*\ExtraParaSkip[1]{%
+ \def\MFL@xparaskip{\advance\@tempdima#1\relax}%
+ }
+ \let\MFL@xparaskip\relax
+ \@onlypreamble\ExtraParaSkip
+ \@onlypreamble\MFL@xparaskip
+ \AtBeginDocument{%
+ \begingroup
+ \footnotesize
+ \@tempdima\footnotesep
+ \advance\@tempdima -\ht\strutbox
+ \ifdim\@tempdima<\z@ \@tempdima\z@ \fi
+ \advance\@tempdima.5\normalbaselineskip
+ \MFL@xparaskip % Add extra para skip
+ \xdef\MFL@paraskip{\the\@tempdima\relax}%
+ \endgroup
+ }
+}
+\DeclareOption{para*}{%
+ \@ifundefined{MFL@startpara}{\ExecuteOptions{para}}{}%
+ \MFL@paraindentfalse
+}
+\newif\ifMFL@perpage \MFL@perpagefalse
+\DeclareOption{perpage}{\MFL@perpagetrue}
+\ProcessOptions\relax
+\ifMFL@perpage \RequirePackage{perpage}\fi
+\def\MFL@list{}
+\newcommand*{\SelectFootnoteRule}[2][0]{%
+ \edef\@tempa{\noexpand\MFL@selectrule{#1}{%
+ \expandafter\noexpand\csname #2footnoterule\endcsname}}%
+ \@ifnextchar[{\@tempa}{\@tempa[]}%
+}
+\def\MFL@selectrule#1#2[#3]{\def\MFL@rule{\MFL@joinrule{#1}{#2}{#3}}}
+\SelectFootnoteRule{extra}% Set the default footnote rule
+\@onlypreamble\SelectFootnoteRule
+\@onlypreamble\MFL@selectrule
+\@onlypreamble\MFL@rule
+\newcommand{\SetFootnoteHook}[1]{\def\MFL@footnotehook{\MFL@fhook{#1}}}
+\@onlypreamble\SetFootnoteHook
+\@onlypreamble\MFL@footnotehook
+\SetFootnoteHook{}% Empty hook by default
+\long\def\MFL@fhook#1#2{%
+ \expandafter\def\csname MFL@hook\string#2\endcsname{#1}%
+ \SetFootnoteHook{}%
+}
+\@onlypreamble\MFL@fhook
+\newcommand*{\newfootnote}[2][plain]{%
+ \@ifundefined{MFL@fnote#1}{%
+ \PackageError{manyfoot}{Unknown footnote style #1}%
+ {Known styles are `plain' and `para'\MessageBreak
+ (if the package was loaded with the para or para* option)}}{}%
+ \expandafter\MFL@newinsert\csname footins#2\endcsname
+ \edef\@tempa{\noexpand\newcommand
+ \expandafter\noexpand\csname Footnotetext#2\endcsname
+ {\expandafter\noexpand\csname MFL@fnote#1\endcsname{%
+ \expandafter\noexpand\csname footins#2\endcsname}}%
+ \noexpand\MFL@footnotehook{%
+ \expandafter\noexpand\csname footins#2\endcsname}%
+ }%
+ \@tempa
+ \@cons\MFL@list{{#1}\csname footins#2\endcsname}%
+}
+\@onlypreamble\newfootnote
+\def\MFL@newinsert#1{\newinsert#1%
+ \expandafter\let\csname MFL@join\number #1\endcsname \MFL@rule
+ \SelectFootnoteRule{extra}% Reset to default rule again
+ \skip#1\skip\footins \dimen#1\dimen\footins \count#1\count\footins
+}
+\@onlypreamble\MFL@newinsert
+\def\MFL@makemark#1#2#3{%
+ \FN@mf@check
+ \@ifnextchar[{\MFL@xmkmark{#1}{#3}}{#2{#1}\MFL@mkmark{#1}{#3}}%
+}
+\providecommand\FN@mf@check{}
+\def\MFL@xmkmark#1#2[#3]{%
+ \begingroup
+ \csname c@#1\endcsname #3\relax
+ \unrestored@protected@xdef\@thefnmark{\csname the#1\endcsname}%
+ \endgroup
+ #2%
+}
+\def\MFL@mkmark#1#2{\protected@xdef\@thefnmark{\csname the#1\endcsname}%
+ #2%
+}
+\newcommand*{\DeclareNewFootnote}[2][plain]{%
+ \@ifnextchar[{\MFL@declare{#1}{#2}}{\MFL@declare{#1}{#2}[arabic]}%
+}
+\def\MFL@declare#1#2[#3]{%
+ \newfootnote[#1]{#2}%
+ \edef\@tempa{\noexpand\newcounter{footnote#2}%
+ \noexpand\renewcommand
+ \expandafter\noexpand\csname thefootnote#2\endcsname{%
+ \expandafter\noexpand\csname @#3\endcsname
+ \expandafter\noexpand\csname c@footnote#2\endcsname
+ }%
+ \ifMFL@perpage \noexpand\MakePerPage{footnote#2}\fi
+ \noexpand\newcommand
+ \expandafter\noexpand\csname footnote#2\endcsname{%
+ \noexpand\MFL@makemark{footnote#2}{\noexpand\stepcounter}{%
+ \noexpand\@footnotemark
+ \noexpand\let\noexpand\@tempb\noexpand\@thefnmark
+ \expandafter\noexpand\csname Footnotetext#2\endcsname{%
+ \noexpand\@tempb
+ }%
+ }%
+ }%
+ \noexpand\newcommand
+ \expandafter\noexpand\csname footnotemark#2\endcsname{%
+ \noexpand\MFL@makemark{footnote#2}{\noexpand\stepcounter}{%
+ \noexpand\@footnotemark
+ }%
+ }%
+ \noexpand\newcommand
+ \expandafter\noexpand\csname footnotetext#2\endcsname{%
+ \noexpand\MFL@makemark{footnote#2}{\noexpand\@gobble}{%
+ \noexpand\let\noexpand\@tempb\noexpand\@thefnmark
+ \expandafter\noexpand\csname Footnotetext#2\endcsname{%
+ \noexpand\@tempb
+ }%
+ }%
+ }%
+ \noexpand\newcommand
+ \expandafter\noexpand\csname Footnotemark#2\endcsname{%
+ \noexpand\Footnotemark
+ }%
+ \noexpand\newcommand
+ \expandafter\noexpand\csname Footnote#2\endcsname[1]{%
+ \noexpand\Footnotemark{####1}%
+ \expandafter\noexpand\csname Footnotetext#2\endcsname{####1}%
+ }%
+ }%
+ \@tempa
+}
+\@onlypreamble\DeclareNewFootnote
+\@onlypreamble\MFL@declare
+\def\MFL@start#1{\csname MFL@start#1\endcsname}
+\@onlypreamble\MFL@start
+\newcommand{\footnoterulepriority}{1}
+\newif\ifMFL@joined \MFL@joinedfalse
+\def\MFL@joinnotes#1{%
+ \ifMFL@joined #1%
+ \else
+ \let\MFL@savedrule \footnoterule
+ \let\MFL@currule \defaultfootnoterule
+ \ifvoid \footins
+ \let\MFL@curpriority \footnoterulepriority
+ \else
+ \let\MFL@curpriority \m@ne
+ \fi
+ \let\MFL@elt\@elt
+ \let\@elt\MFL@join \MFL@list
+ \let\@elt\MFL@elt
+ \MFL@joinedtrue #1\MFL@joinedfalse
+ \let\footnoterule \MFL@savedrule
+ \fi
+}
+\def\MFL@join#1#2{\csname MFL@join\number #2\endcsname{#1}{#2}}
+\def\MFL@joinrule#1#2#3#4#5{%
+ \ifnum #1<\MFL@curpriority \else
+ \let\MFL@currule#2%
+ \def\MFL@curpriority{#1}%
+ \fi
+ \ifvoid#5\else
+ \@tempskipa\skip#5%
+ \MFL@ifmcol{\divide\@tempskipa\col@number}{}%
+ \edef\MFL@skip{\vskip\the\@tempskipa\relax}%
+ \csname MFL@process#4\endcsname #5%
+ \ifvoid\footins
+ \let\footnoterule\MFL@currule
+ \setbox\footins\vbox{#3\unvbox#5}%
+ \else
+ \setbox\footins\vbox{%
+ \unvbox\footins\MFL@skip\MFL@currule#3\unvbox#5%
+ }%
+ \fi
+ \let\MFL@curpriority \m@ne
+ \fi
+}
+\def\MFL@reinsout#1#2{\ifvoid#2\else
+ \ifnum\count\@currbox>\z@
+ \advance\@pageht \ht#2%
+ \advance\@pageht \skip#2%
+ \advance\@pageht \dp#2%
+ \fi
+ \insert#2{\unvbox#2}%
+ \fi
+}
+\def\MFL@reinsert{{\let\@elt\MFL@reins \MFL@list}}
+\def\MFL@reins#1#2{\ifvoid#2\else\insert#2{}\fi}
+\long\def\MFL@mpinsert#1#2{%
+ \global\setbox#1\vbox{%
+ \unvbox#1\setbox\@tempboxa\lastbox
+ \ifvbox\@tempboxa \unvbox\@tempboxa \fi
+ \vbox{#2}%
+ }%
+}
+\def\MFL@mpreinsert#1#2{%
+ \ifvoid#2\else
+ \setbox\@tempboxa\vbox{\unvbox#2\global\setbox#2\lastbox}%
+ \setbox\z@\box#2%
+ \ifdim\ht\@tempboxa>\z@ \MFL@realinsert#2{\box\@tempboxa}\fi
+ \MFL@realinsert#2{\unvbox\z@}%
+ \fi
+}
+\def\MFL@minipage{%
+ \ifinner\else
+ \MFL@reinsert \let\MFL@insert\MFL@mpinsert
+ \fi
+}
+\def\MFL@endminipage{%
+ \ifinner\else
+ {\let\@elt\MFL@mpreinsert \MFL@list}%
+ \fi
+}
+\def\MFL@mult#1#2{%
+ \multiply\count#2\col@number
+ \multiply\skip#2\col@number
+}
+\def\MFL@ifmcol#1#2{\@tempswafalse
+ \ifnum\col@number>\@ne
+ \ifnum\count\footins>1999 \@tempswatrue \fi
+ \fi
+ \if@tempswa #1\else #2\fi
+}
+\AtBeginDocument{%
+ {\let\@elt\MFL@start \MFL@list}
+ \@ifundefined{defaultfootnoterule}{%
+ \@ifundefined{pagefootnoterule}%
+ {\let\defaultfootnoterule\footnoterule}%
+ {\let\defaultfootnoterule\pagefootnoterule}%
+ }{}%
+ \let\MFL@doclearpage\@doclearpage
+ \def\@doclearpage{\MFL@joinnotes\MFL@doclearpage}
+ \let\MFL@makecol\@makecol
+ \def\@makecol{\MFL@joinnotes\MFL@makecol}
+ \g@addto@macro\@reinserts{%
+ \let\MFL@elt\@elt
+ \let\@elt\MFL@reinsout \MFL@list
+ \let\@elt\MFL@elt
+ }
+ \MFL@floathook
+ \g@addto@macro\@floatplacement{\MFL@ifmcol{}{\MFL@floathook}}
+ \let\MFL@iminipage\@iiiminipage
+ \def\@iiiminipage{\MFL@minipage\MFL@iminipage}
+ \g@addto@macro\endminipage\MFL@endminipage
+ \@ifundefined{multi@column@out}
+ {\@onlypreamble\MFL@mult \let\MFL@ifmcol\@secondoftwo}
+ {\let\MFL@mcolout\multi@column@out
+ \def\multi@column@out{\MFL@joinnotes\MFL@mcolout}
+ \g@addto@macro\init@mult@footins{%
+ \let\MFL@elt\@elt
+ \let\@elt\MFL@mult \MFL@list
+ \let\@elt\MFL@elt
+ }
+ \g@addto@macro\reinsert@footnotes{\MFL@reinsert}
+ }
+}
+\endinput
+%%
+%% End of file `manyfoot.sty'.