%%
%% This is file `dblfnote.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% yafoot.dtx  (with options: `dblfnote')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from dblfnote.sty.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file yafoot.dtx.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% Style file `dblfnote'.
%% Copyright (C) 1999  Hiroshi Nakashima <nakasima@tutics.tut.ac.jp>
%%        (Toyohashi Univ. of Tech.)
%%
%% This program can be 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 of the License, or any later version.
%%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%%
%%
\def\next{LaTeX2e}
\ifx\fmtname\next
\def\next{
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{dblfnote}}
\else\def\next[#1]{}\fi
\next
[1999/07/14 v1.0 ]

%% Register Declaration

\newif\ifdfn@allowcbreak \dfn@allowcbreaktrue
\def\DFNallowcbreak{\dfn@allowcbreaktrue}
\def\DFNinhibitcbreak{\dfn@allowcbreakfalse}

\newif\ifdfn@trysingle \dfn@trysingletrue
\def\DFNtrysingle{\dfn@trysingletrue}
\def\DFNalwaysdouble{\dfn@trysinglefalse}

\newif\ifdfn@ruleboth \dfn@rulebothfalse
\def\DFNruleboth{\dfn@rulebothtrue}
\def\DFNruleleft{\dfn@rulebothfalse}

\newcounter{DFNsloppiness}\c@DFNsloppiness5000

\newdimen\DFNcolumnsep \DFNcolumnsep-\maxdimen
\newdimen\DFNcolumnwidth \DFNcolumnwidth-\maxdimen
\newdimen\dfn@fnht
\newdimen\dfn@fnmaxdp {\footnotesize \global\dfn@fnmaxdp\dp\strutbox}
\newdimen\dfn@dima \newdimen\dfn@dimb

\newbox\dfn@ins
\newbox\dfn@boxa \newbox\dfn@boxb

\newtoks\dfn@output \dfn@output\output

%%^L

%% Make a Footnote

\long\def\dfn@footnotetext#1{{\setbox\dfn@boxa\vbox{
        \let\insert\dfn@gobble
        \columnwidth\DFNcolumnwidth \hbadness\c@DFNsloppiness
        \def\@makefnmark{\smash{\dfn@makefnmark}}
        \dfn@latex@footnotetext{#1}\par \boxmaxdepth\dfn@fnmaxdp}%
        \dfn@dima\ht\dfn@boxa \advance\dfn@dima\dp\dfn@boxa
        \ifdim\dfn@dima>\z@\else
                \dfn@dima1sp\relax
                \setbox\dfn@boxa\vbox{\vbox to1sp{\unvbox\dfn@boxa\vfil}}\fi
        \global\setbox\dfn@ins\vbox{\boxmaxdepth\dfn@fnmaxdp
                \ifvoid\dfn@ins\else
                        \unvbox\dfn@ins \allowbreak \nointerlineskip \fi
                \ifdfn@allowcbreak \unvbox \else \box \fi \dfn@boxa}%
        \setbox\dfn@boxa\copy\dfn@ins
        \dfn@split{.5\ht\dfn@boxa}\dfn@boxa\dfn@boxb\dfn@fnmaxdp\footnotesep
        \advance\@tempdima\@tempdimb \@tempdimb\@tempdima
        \advance\@tempdima-\dfn@fnht \global\dfn@fnht\@tempdimb
        \insert\footins{\floatingpenalty\@MM \vbox to\@tempdima{}}%
        \xdef\dfn@list{\dfn@list\@elt{\number\dfn@dima}{\number\@tempdima}}}}
\let\dfn@latex@footnotetext\@footnotetext
\let\@footnotetext\dfn@footnotetext
\long\def\dfn@gobble#1#2{#2}
\let\dfn@makefnmark\@makefnmark
\def\dfn@list{}

\def\dfn@split#1#2#3#4#5{\@tempdima#1\relax
        \vbadness\@M \vfuzz\maxdimen \splitmaxdepth#4\splittopskip#5\relax
        \setbox#3\vsplit#2to\@tempdima
        \setbox#3\vbox{\boxmaxdepth#4\unvbox#3}%
        \@tempdima\ht#3\advance\@tempdima\dp#3\relax
        \@tempdimb\ht#2\advance\@tempdimb\dp#2\relax
        \ifdim\@tempdimb<\@tempdima \@tempdimb\@tempdima \fi
        \@tempdima\ht#3\ifdim\@tempdima<\ht#2\@tempdima\ht#2\fi
        \advance\@tempdimb-\@tempdima}

%%^L

%% Output Footnotes

\def\dfn@makecol{{\ifvoid\footins\else
        \dfn@dima\ht\footins
        \@tempcnta\z@ \dfn@countins
        \@tempdima\z@ \let\@elt\dfn@elt@getht
        \dfn@list\@nil
        \ifdim\@tempdima=\z@\else
        \dfn@split\@tempdima\dfn@ins\dfn@boxa\z@\z@
        \global\setbox\dfn@ins\box\dfn@ins
        \@tempswatrue
        \ifdfn@trysingle
                \setbox\dfn@boxb\vbox{\unvcopy\@cclv}\@tempdima\@colroom
                \advance\@tempdima-\ht\dfn@boxb \advance\@tempdima-\dp\dfn@boxb
                \advance\@tempdima-\skip\footins
                \advance\@tempdima-\ht\dfn@boxa
                \ifdim\@tempdima<\z@\else \@tempswafalse
                        \global\setbox\footins\vbox{\boxmaxdepth\dfn@fnmaxdp
                                \footnoterule \unvbox\dfn@boxa}\fi\fi
        \if@tempswa
        \dfn@split{\dfn@dima}\dfn@boxa\dfn@boxb\dfn@fnmaxdp\footnotesep
        \global\setbox\footins\vbox{\hbox{%
                \hbox to\DFNcolumnwidth{\vbox to\@tempdima{\footnoterule
                        \unvbox\dfn@boxb\vss}\hss}\hskip\DFNcolumnsep
                \hbox to\DFNcolumnwidth{\ifvoid\dfn@boxa\else
                        \vbox to\@tempdima{
                                \setbox\@tempboxa\vbox{\footnoterule}
                                \ifdfn@ruleboth \unvbox\@tempboxa
                                \else \@tempdima\ht\@tempboxa
                                        \advance\@tempdima\dp\@tempboxa
                                        \vskip\@tempdima
                                        \prevdepth\dp\@tempboxa \fi
                                \unvbox\dfn@boxa\vss}\fi\hss}}}\fi\fi
        \global\dfn@fnht\z@
        \ifx\dfn@list\@empty\else
                \let\@elt\dfn@elt@adjust \dfn@dima\z@ \dfn@dimb\z@
                \dfn@list \global\advance\dfn@fnht\dfn@dimb
                \let\@elt\relax
                \ifdim\dfn@dimb>\z@
                        \xdef\dfn@list{\@elt{0}{\number\dfn@dimb}\dfn@list}%
                        \insert\footins{\floatingpenalty\@MM
                                \vbox to\dfn@dimb{}}\fi
                \ifdim\dfn@fnht>\@tempdima
                        \@tempdimb\@tempdima \advance\@tempdimb-\dfn@fnht
                        \global\dfn@fnht\@tempdima
                        \xdef\dfn@list{\dfn@list\@elt{0}{\number\@tempdimb}}%
                        \xdef\dfn@afteroutput{\insert\footins{
                                        \floatingpenalty\@MM
                                        \vbox to\number\@tempdimb sp{}}%
                                \global\let\noexpand\dfn@afteroutput\relax}%
                \fi\fi
        \fi}%
        \let\footnoterule\relax \dfn@latex@makecol
        \let\footnoterule\dfn@footnoterule}
\let\dfn@footnoterule\footnoterule

\def\dfn@countins{\setbox\footins\vbox{\unvbox\footins
                \global\setbox\dfn@boxa\lastbox}%
        \ifvoid\dfn@boxa \let\next\relax
        \else \advance\@tempcnta\@ne \let\next\dfn@countins \fi \next}

\def\dfn@elt@getht#1#2{\advance\@tempdima#1sp\relax \advance\@tempcnta\m@ne
        \ifnum\@tempcnta>\z@ \let\next\relax
        \else\let\next\dfn@endgetht \fi \next}
\def\dfn@endgetht#1\@nil{\gdef\dfn@list{#1}}

\def\dfn@elt@adjust#1#2{\advance\dfn@dima#1sp\advance\dfn@fnht#2sp\relax
        \ifvoid\dfn@ins \@tempdima\z@ \@tempdimb\z@
        \else \setbox\dfn@boxa\copy\dfn@ins
                \dfn@split\dfn@dima\dfn@boxa\dfn@boxb\z@\z@
                \dfn@split{.5\ht\dfn@boxb}\dfn@boxb\dfn@boxa
                        \dfn@fnmaxdp\footnotesep
                \advance\@tempdimb\@tempdima \@tempdima\@tempdimb \fi
        \advance\@tempdimb-\dfn@fnht\relax
        \ifdim\@tempdimb>\dfn@dimb \dfn@dimb\@tempdimb \fi}

\let\dfn@afteroutput\relax
\output{\the\dfn@output \aftergroup\dfn@afteroutput}

%%^L

%% Initialization, etc.

\let\dfn@document\document
\def\document{\dfn@document
        \ifdim\DFNcolumnsep<\z@ \DFNcolumnsep\columnsep \fi
        \ifdim\DFNcolumnwidth<\z@
                \DFNcolumnwidth\textwidth
                \advance\DFNcolumnwidth-\DFNcolumnsep
                \divide\DFNcolumnwidth\tw@ \fi
        \dfn@fnht\z@
        \let\dfn@latex@makecol\@makecol
        \let\@makecol\dfn@makecol}

\let\dfn@twocolumn\twocolumn
\def\twocolumn{\clearpage
        \let\@footnotetext\dfn@latex@footnotetext
        \let\@makecol\dfn@latex@makecol
        \dfn@twocolumn}
\let\dfn@onecolumn\onecolumn
\def\onecolumn{\clearpage
        \let\@footnotetext\dfn@footnotetext
        \let\@makecol\dfn@makecol
        \dfn@onecolumn}
\endinput
%%
%% End of file `dblfnote.sty'.
