summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:56:02 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:56:02 +0000
commita7bf001baa8b11399b4722383a5f073866dc799d (patch)
tree0dcd58a4a02fd64678d4c258d45d70b813e72c0b
parenta189ff68b875c42249849037699ad941213a2301 (diff)
footbib
git-svn-id: svn://tug.org/texlive/trunk@932 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/tex/latex/footbib/footbib.sty724
1 files changed, 724 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/footbib/footbib.sty b/Master/texmf-dist/tex/latex/footbib/footbib.sty
new file mode 100644
index 00000000000..8a1210399a9
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/footbib/footbib.sty
@@ -0,0 +1,724 @@
+%%
+%% This is file `footbib.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% footbib.dtx (with options: `package,checkoutput')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from footbib.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file footbib.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.)
+%% File: footbib.dtx Copyright (C) 1997 Eric Domenjoud
+%%
+%% Eric Domenjoud,
+%% CRIN/CNRS & INRIA Lorraine
+%% E-mail: Eric.Domenjoud@loria.fr
+%%
+\def\fileversion{2.0.1}
+\def\filedate{1999/05/06}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{footbib}[\filedate\space v\fileversion\space(E.Domenjoud)]
+\@makeother\`
+\edef\@tempa{\catcode\string`\string`=\the\catcode\string``\relax}
+\def\@tempb#1{\catcode`\noexpand#1\string=\the\catcode`#1\relax}
+\edef\@tempa{\@tempa
+ \@tempb\:\@tempb\?\@tempb\=\@tempb\<\@tempb\>\@tempb\+\@tempb\-%
+ \@tempb\.\@tempb\'\@tempb\~}
+\expandafter\AtEndOfPackage\expandafter{\@tempa}
+\@makeother\: \@makeother\? \@makeother\= \@makeother\< \@makeother\>
+\@makeother\+ \@makeother\- \@makeother\. \@makeother\'
+\catcode`\~=\active
+\@ifpackagelater{footbib}\fmtversion\@tempswafalse\@tempswatrue
+\if@tempswa
+\def\@tempa#1#2{\def\@tempb{#2}\ifx#1\@tempb\else\@tempswatrue\fi}
+\@tempswafalse
+\@tempa\@specialoutput{\ifnum\outputpenalty>-\@Mii\@doclearpage\else
+ \ifnum\outputpenalty<-\@Miii\ifnum\outputpenalty<-\@MM\deadcycles\z@
+ \fi\global\setbox\@holdpg\vbox{\unvbox\@cclv}\else\global\setbox
+ \@holdpg\vbox{\unvbox\@holdpg\unvbox\@cclv\setbox\@tempboxa\lastbox
+ \unskip}\@pagedp\dp\@holdpg\@pageht\ht\@holdpg\unvbox\@holdpg\@next
+ \@currbox\@currlist{\ifnum\count\@currbox>\z@\advance\@pageht\@pagedp
+ \ifvoid\footins\else\advance\@pageht\ht\footins\advance\@pageht\skip
+ \footins\advance\@pageht\dp\footins\fi\ifvbox\@kludgeins\ifdim\wd
+ \@kludgeins=\z@\advance\@pageht\ht\@kludgeins\fi\fi\@reinserts
+ \@addtocurcol\else\@reinserts\@addmarginpar\fi}\@latexbug\ifnum
+ \outputpenalty<\z@\if@nobreak\nobreak\else\addpenalty\interlinepenalty
+ \fi\fi\fi\fi}
+\@tempa\@doclearpage{\ifvoid\footins\setbox\@tempboxa\vsplit\@cclv to\z@
+ \unvbox\@tempboxa\setbox\@tempboxa\box\@cclv\xdef\@deferlist{\@toplist
+ \@botlist\@deferlist}\global\let\@toplist\@empty\global\let\@botlist
+ \@empty\global\@colroom\@colht\ifx\@currlist\@empty\else\@latexerr
+ {Float(s) lost}\@ehb\global\let\@currlist\@empty\fi\@makefcolumn
+ \@deferlist\@whilesw\if@fcolmade\fi{\@opcol\@makefcolumn\@deferlist
+ }\if@twocolumn\if@firstcolumn\xdef\@dbldeferlist{\@dbltoplist
+ \@dbldeferlist}\global\let\@dbltoplist\@empty\global\@colht\textheight
+ \begingroup\@dblfloatplacement\@makefcolumn\@dbldeferlist\@whilesw
+ \if@fcolmade\fi{\@outputpage\@makefcolumn\@dbldeferlist}\endgroup\else
+ \vbox{}\clearpage\fi\fi\else\setbox\@cclv\vbox{\box\@cclv\vfil}\@makecol
+ \@opcol\clearpage\fi}
+\@tempa\@makecol{\ifvoid\footins\setbox\@outputbox\box\@cclv\else\setbox
+ \@outputbox\vbox{\boxmaxdepth\@maxdepth\@tempdima\dp\@cclv\unvbox\@cclv
+ \vskip-\@tempdima\vskip\skip\footins\color@begingroup\normalcolor
+ \footnoterule\unvbox\footins\color@endgroup}\fi\xdef\@freelist{\@freelist
+ \@midlist}\global\let\@midlist\@empty\@combinefloats\ifvbox\@kludgeins
+ \@makespecialcolbox\else\setbox\@outputbox\vbox to\@colht{\@texttop\dimen@
+ \dp\@outputbox\unvbox\@outputbox\vskip-\dimen@\@textbottom}\fi\global
+ \maxdepth\@maxdepth}\@tempa\@reinserts{\ifvoid\footins\else\insert\footins
+ {\unvbox\footins}\fi\ifvbox\@kludgeins\insert\@kludgeins{\unvbox\@kludgeins
+ }\fi}
+\fi
+\if@tempswa
+ \PackageError{footbib}{the output routine of LaTeX changed}
+ {The output routine of LaTeX changed since the current version of
+ `footbib'.\MessageBreak Since `footbib' patches this routine,
+ using it may produce unexpected\MessageBreak results. Send a mail to \space
+ Eric.Domenjoud@loria.fr \space to get a new version.\MessageBreak\MessageBreak
+ Type \space X <return> \space to quit or cross your fingers and
+ just type <return>.\MessageBreak}
+\fi
+\newif\iffb@twoside \let\iffb@twoside\if@twoside
+\newif\iffb@citeonce \fb@citeoncefalse
+\newif\iffb@pagecite \fb@pagecitefalse
+\let\fb@chaptercite\@empty
+\let\fb@partcite\@empty
+\newif\iffb@firstcite \fb@firstcitefalse
+\newif\iffb@pagenum \fb@pagenumfalse
+\let\fb@chapternum\@empty
+\let\fb@partnum\@empty
+\newif\iffb@xref \fb@xreffalse
+\newif\iffb@crossrefs \fb@crossrefsfalse
+\newif\iffb@xcrossrefs \fb@xcrossrefsfalse
+\newif\iffb@nosplit \fb@nosplitfalse
+\newcommand\fb@checksec[2]{%
+ \ifx#1\@undefined
+ \PackageError{footbib}{Bad option `\CurrentOption'}%
+ {{footbib}: The current document class does not define `\string#1'}%
+ \else
+ #2%
+ \fi}
+\DeclareOption{oneside}{\fb@twosidefalse}
+\DeclareOption{twoside}{\fb@twosidetrue}
+\DeclareOption{firstcite}{\fb@firstcitetrue}
+\DeclareOption{firstcite(page)}{\fb@firstcitetrue\fb@pagenumtrue}
+\DeclareOption{firstcite(chapter)}{\fb@firstcitetrue
+ \fb@checksec\chapter{\def\fb@chapternum{\fb@newnumunit}}}
+\DeclareOption{firstcite(part)}{\fb@firstcitetrue
+ \fb@checksec\part{\def\fb@partnum{\fb@newnumunit}}}
+\DeclareOption{firstcite(document)}{\fb@firstcitetrue}
+\DeclareOption{citeonce}{\fb@citeoncetrue}
+\DeclareOption{citeonce(page)}{\fb@pagecitetrue}
+\DeclareOption{citeonce(chapter)}{\fb@citeoncetrue
+ \fb@checksec\chapter{\def\fb@chaptercite{\fb@newciteunit}}}
+\DeclareOption{citeonce(part)}{\fb@citeoncetrue
+ \fb@checksec\part{\def\fb@partcite{\fb@newciteunit}}}
+\DeclareOption{citeonce(document)}{\fb@citeoncetrue}
+\DeclareOption{citeonce*}{\fb@citeoncetrue\fb@xreftrue}
+\DeclareOption{citeonce*(chapter)}{%
+ \ExecuteOptions{citeonce(chapter)}\fb@xreftrue}
+\DeclareOption{citeonce*(part)}{%
+ \ExecuteOptions{citeonce(part)}\fb@xreftrue}
+\DeclareOption{citeonce*(document)}{\ExecuteOptions{citeonce*}}
+\DeclareOption{crossrefs}{\fb@crossrefstrue\fb@xcrossrefstrue}
+\DeclareOption{crossrefs*}{\fb@crossrefstrue\fb@xcrossrefsfalse}
+\DeclareOption{nocrossrefs}{\fb@crossrefsfalse\fb@xcrossrefsfalse}
+\DeclareOption{split}{\fb@nosplitfalse}
+\DeclareOption{nosplit}{\fb@nosplittrue}
+\ProcessOptions*
+\iffb@pagecite
+ \fb@citeoncefalse
+ \fb@xreffalse
+\fi
+\let\fb@firstcitetrue\@undefined \let\fb@firstcitefalse\@undefined
+\let\fb@citeoncetrue\@undefined \let\fb@citeoncefalse\@undefined
+\let\fb@pagecitetrue\@undefined \let\fb@pagecitefalse\@undefined
+\let\fb@xreftrue\@undefined \let\fb@xreffalse\@undefined
+\let\fb@crossrefstrue\@undefined \let\fb@crossrefsfalse\@undefined
+\let\fb@xcrossrefstrue\@undefined \let\fb@xcrossrefsfalse\@undefined
+\let\fb@pagenumtrue\@undefined \let\fb@pagenumfalse\@undefined
+\let\fb@nosplittrue\@undefined \let\fb@nosplitfalse\@undefined
+\let\fb@checksec\@undefined
+\AtBeginDocument{%
+ \begingroup
+ \def\@tempb#1{%
+ \ifx\@tempa\@empty\else
+ \edef\@tempa{\noexpand\clearpage\@tempa}%
+ \toks@\expandafter\expandafter\expandafter{\expandafter\@tempa#1}%
+ \xdef#1{\the\toks@}%
+ \fi}%
+ \let\fb@newnumunit\relax
+ \let\fb@newciteunit\relax
+ \edef\@tempa{\fb@partcite\fb@partnum}%
+ \@tempb\part
+ \edef\@tempa{\fb@chaptercite\fb@chapternum}%
+ \@tempb\chapter
+ \endgroup}
+\newcommand*\footbibliographyname[1]{%
+ \edef\@tempa{#1}%
+ \edef\@tempa{\expandafter\strip@prefix\meaning\@tempa}%
+ \edef\@tempb{\jobname}%
+ \ifx\@tempa\@tempb
+ \PackageError{footbib}{Bad argument `#1'\on@line}%
+ {The name supplied to `\string\footbibliographyname' must be
+ different from the name\MessageBreak
+ of the current document to avoid conflicts with the standard
+ bibliography.\MessageBreak\MessageBreak
+ Type \space X <return> \space to quit.\MessageBreak}%
+ \else
+ \xdef\fb@bibname{#1}%
+ \fi}
+\@onlypreamble\footbibliographyname
+\footbibliographyname{\jobname.fb}
+\newcommand*\footcitelabel[1]{#1}
+\newcommand*\putfootcitelabel[1]{\textsuperscript{\normalfont#1}}
+\newcommand*\fb@putfootcitelabel[1]{%
+ {\m@th\scriptspace\z@\putfootcitelabel{#1}}}
+\newcommand*\footcitelistformat[4]{%
+ \def\fb@citestart{\fb@putfootcitelabel{#1}}%
+ \def\fb@citesep{\fb@putfootcitelabel{#2}#3}%
+ \def\fb@citeend{\putfootcitelabel{#4}}}%
+\footcitelistformat[,{\penalty\@m}]
+\newinsert\fb@ins
+\count\fb@ins=1000
+\AtBeginDocument{\dimen\fb@ins=\textheight}
+\newcommand\footbibskip{\skip\fb@ins}
+\footbibskip=\bigskipamount
+\newcommand\footbibrule{\kern-3\p@\hrule\kern 2.6\p@}% \hrule is .4pt high
+\newcommand\footrefstyle{\normalfont\footnotesize}
+\newcommand*\footreflabel[1]{[#1]}
+\newcommand*\footxref[2]{See~#1~on page~#2.}
+\newcommand*\fb@doactive[1]{\lccode`~=`#1\lowercase{\def~{\string~}}}
+\newcommand*\fb@vedef[2]{%
+ \begingroup
+ \let\do\fb@doactive \dospecials
+ \edef\@tempa{\endgroup\def\noexpand#1{#2}}%
+ \@tempa}
+\newcommand*\fb@namexdef[1]{\expandafter\xdef\csname#1\endcsname}
+\newwrite\fb@auxout
+\newcommand*\fb@writeaux[2]{%
+ \AtBeginDocument{%
+ \if@filesw
+ \immediate\write\fb@auxout{\string#1{#2}}%
+ \fi}}
+\newcount\fb@numunit \fb@numunit\@ne
+\newcount\fb@citeunit \fb@citeunit\@ne
+\newcount\fb@xrefunit \fb@xrefunit\@ne
+\newcommand\fb@theunits{%
+ {\the\fb@citeunit}{\the\fb@xrefunit}{\the\fb@numunit}{\thepage}}
+\newcommand*\fb@getunits[1]{%
+ \ifx#1\relax
+ \xdef#1{{\fb@key}\fb@theunits}%
+ \fi
+ \expandafter\fb@get@units#1}
+\newcommand*\fb@get@units[5]{%
+ \def\fb@refciteunit{#2}%
+ \def\fb@refxrefunit{#3}%
+ \def\fb@refnumunit{#4}%
+ \def\fb@refpage{#5}}%
+\newcommand\fb@newciteunit{%
+ \global\advance\fb@citeunit\@ne
+ \global\advance\fb@xrefunit\@ne}
+\newcommand\fb@newnumunit{\global\advance\fb@numunit\@ne}
+\newcount\fb@prevpage \fb@prevpage\@ne
+\newcommand*\fb@checkpage{%
+ \@tempswatrue
+ \iffb@twoside
+ \global\advance\fb@prevpage\@ne
+ \ifnum\fb@prevpage=\c@page
+ \ifodd\c@page
+ \@tempswafalse
+ \fi
+ \fi
+ \fi
+ \if@tempswa
+ \iffb@pagenum
+ \global\advance\fb@numunit\@ne
+ \fi
+ \iffb@citeonce
+ \global\advance\fb@xrefunit\@ne
+ \else
+ \global\advance\fb@citeunit\@ne
+ \fi
+ \fi
+ \global\fb@prevpage\c@page}
+\catcode`\%=11
+\newcommand\c@fb%checkpage{\count@\z@
+ \fb@checkpage
+ \count@}
+\@addtoreset{fb%checkpage}{page}
+\catcode`\%=14
+\newcount\fb@refcount
+\newtoks\fb@lbl
+\newtoks\fb@txt
+\newcommand\fb@setref{%
+ \fb@namexdef{fb@r.\fb@key}{{\the\fb@lbl}{\the\fb@txt}}}
+\newcommand\fb@getref{\afterassignment\fb@txt\fb@lbl}
+\newcommand\fb@setlbl{%
+ \global\advance\fb@refcount\@ne
+ \edef\@tempa{{\fb@refnumunit}{\the\fb@refcount}}%
+ \global\fb@lbl\expandafter{\expandafter\fb@getlbl\@tempa}%
+ \fb@setref
+ \the\fb@refcount}
+\newcommand*\fb@getlbl[2]{\ifnum\fb@refnumunit=#1{#2}\else\fb@setlbl\fi}
+\newcommand\fb@settxt[1]{%
+ \toks@=\the\fb@lbl
+ \toks@\expandafter\expandafter\expandafter{\expandafter
+ \footreflabel\expandafter{\the\toks@}}%
+ \edef\@tempa{{\fb@refciteunit}{\the\toks@}{\fb@refpage}}%
+ \global\fb@txt\expandafter{\expandafter\fb@gettxt\@tempa{#1}}%
+ \fb@setref
+ #1}
+\newcommand\fb@gettxt[4]{%
+ \ifnum\fb@refciteunit=#1\relax
+ \footxref{#2}{#3}%
+ \else
+ \fb@settxt{#4}%
+ \fi}
+\newcommand\footbibliography{\fb@writeaux\bibdata}
+\newcommand\footbibliographystyle{\fb@writeaux\bibstyle}
+\newcommand*\fb@refnotfound[1]{%
+ {?}{*** ERROR: citation `{\normalfont\bfseries#1}' undefined ***}}
+\newif\iffb@lbl
+\newif\iffb@txt
+\DeclareRobustCommand\footcite{%
+ \fb@lbltrue\@ifstar{\fb@txtfalse\fb@@cite}{\fb@txttrue\fb@@cite}}
+\newcommand\footnocite{\fb@lblfalse\fb@txttrue\fb@cite}
+\newcommand*\fb@@cite[1][\@nil]{%
+ \def\fb@optlbl{#1}%
+ \ifx\fb@optlbl\@nnil
+ \let\fb@optlbl\relax
+ \else
+ \def\fb@optlbl{\fb@putfootcitelabel{, #1}}%
+ \fi
+ \fb@cite}
+\newcommand*\fb@cite[1]{%
+ \fb@vedef\fb@keys{#1}%
+ \iffb@lbl
+ \fb@citestart
+ \def\fb@citea{\let\fb@citea\fb@citesep}%
+ \fi
+ \ifx\fb@keys\@empty
+ \PackageWarning{footbib}{Empty citation on page \thepage}%
+ \fi
+ \@for\fb@key:=\fb@keys\do{%
+ \iffb@lbl\fb@citea\fi
+ \fb@xcite
+ \ifx\fb@deferredcite\@empty\else
+ \begingroup
+ \fb@lblfalse
+ \expandafter\fb@xnocite\fb@deferredcite\@nil
+ \endgroup
+ \fi}%
+ \iffb@lbl\fb@optlbl\fb@citeend\fi}
+\newcommand\fb@xfootcite[2][\@nil]{%
+ \footcite*[#1]{#2}%
+ \iffb@xcrossrefs
+ \fb@vedef\fb@keys{#2}%
+ \xdef\fb@deferredcite{\fb@keys,\fb@deferredcite}%
+ \fi}
+\let\fb@deferredcite\@empty
+\def\fb@xnocite#1,#2\@nil{%
+ \gdef\fb@deferredcite{#2}%
+ \def\fb@key{#1}%
+ \fb@xcite
+ \ifx\fb@deferredcite\@empty
+ \let\@tempa\@gobble
+ \else
+ \let\@tempa\fb@xnocite
+ \fi
+ \expandafter\@tempa\fb@deferredcite\@nil}
+\newcommand\fb@xcite{%
+ \edef\fb@key{\expandafter\@firstofone\fb@key\@empty}%
+ \ifx\fb@key\@empty
+ \PackageWarning{footbib}{Empty citation on page \thepage}%
+ \G@refundefinedtrue
+ \else
+ \@ifundefined{fb@r.\fb@key}%
+ {\G@refundefinedtrue
+ \PackageWarning{footbib}{%
+ Citation `\fb@key' on page \thepage \space undefined}%
+ \fb@getref\fb@refnotfound\fb@key\fb@setref}%
+ {\fb@getref\@nameuse{fb@r.\fb@key}}%
+ \fb@bibcite
+ \iffb@lbl\fb@putfootcitelabel{\footcitelabel{\the\fb@lbl}}\fi
+ \iffb@txt
+ \expandafter\let\expandafter\@tempa\csname
+ fb@fn\fb@key.\fb@refciteunit\endcsname
+ \@tempswatrue
+ \ifx\@tempa\relax\else
+ \iffb@xref
+ \ifx\@tempa\fb@refxrefunit
+ \@tempswafalse
+ \fi
+ \else
+ \@tempswafalse
+ \fi
+ \fi
+ \if@tempswa
+ \fb@namexdef{fb@fn\fb@key.\fb@refciteunit}{\fb@refxrefunit}%
+ \fb@citefn
+ \fi
+ \fi
+ \fi}
+\newcount\fb@citecount
+\newcount\fb@lastrefnumunit \fb@lastrefnumunit\m@ne
+\newcommand\fb@bibcite{%
+ \fb@writeaux\citation\fb@key
+ \global\advance\fb@citecount\@ne
+ \expandafter\fb@getunits\csname fb@c.\the\fb@citecount\endcsname
+ \ifnum\fb@refnumunit=\fb@lastrefnumunit\else
+ \global\fb@lastrefnumunit\fb@refnumunit\relax
+ \global\fb@refcount\z@
+ \fi
+ \if@filesw
+ \write\fb@auxout\expandafter{\expandafter\string\expandafter
+ \bibcite\expandafter{\fb@key}\fb@theunits}%
+ \fi}
+\newcommand\fb@citefn{%
+ \insert\fb@ins{%
+ \color@begingroup
+ \reset@font\footrefstyle
+ \interlinepenalty\iffb@nosplit\@M\else\interfootnotelinepenalty\fi
+ \splittopskip 1.2\ht\strutbox
+ \splitmaxdepth \dp\strutbox
+ \floatingpenalty \@MM
+ \hsize\columnwidth
+ \@parboxrestore
+ \ifx\newblock\@undefined\let\newblock\relax\fi
+ \iffb@crossrefs\let\cite\fb@xfootcite\fi
+ \@tempdima\fb@lblwidth
+ \advance\@tempdima\labelsep
+ \leftskip\@tempdima
+ \setbox\@tempboxa\hbox{\footreflabel{\the\fb@lbl}}%
+ \hskip-\@tempdima
+ \ifdim\wd\@tempboxa<\fb@lblwidth
+ \hbox to\fb@lblwidth{\unhbox\@tempboxa\hfil}%
+ \else
+ \box\@tempboxa
+ \fi
+ \hskip\labelsep
+ \rule\z@{1.2\ht\strutbox}\ignorespaces\the\fb@txt\@finalstrut\strutbox
+ \color@endgroup}}
+\AtBeginDocument{%
+ \let\fb@savethebibliography\thebibliography
+ \let\thebibliography\fb@thebibliography
+ \let\fb@thebibliography\@undefined
+ \global\fb@lblwidth=-\maxdimen
+ \fb@refcount\z@
+ \@input{\fb@bibname.bbl}%
+ \let\thebibliography\fb@savethebibliography
+ \let\fb@savethebibliography\@undefined
+ \ifdim\fb@lblwidth<\z@
+ \settowidth\fb@lblwidth
+ {\footrefstyle\footreflabel{\expandafter\@firstoftwo\fb@refnotfound{?}}}%
+ \fi
+ \fb@citecount\z@
+ \begingroup
+ \let\citation\@gobble \let\bibstyle\@gobble \let\bibdata\@gobble
+ \def\bibcite#1#2#3#4#5{%
+ \advance\fb@citecount\@ne
+ \fb@vedef\fb@key{#1}%
+ \fb@namexdef{fb@c.\the\fb@citecount}{{\fb@key}{#2}{#3}{#4}{#5}}}%
+ \@input{\fb@bibname.aux}%
+ \endgroup
+ \if@filesw
+ \immediate\openout\fb@auxout=\fb@bibname.aux
+ \immediate\write\fb@auxout{\relax}%
+ \fi
+ \renewcommand*\fb@writeaux[2]{%
+ \if@filesw
+ \immediate\write\fb@auxout{\string#1{#2}}%
+ \fi}%
+}
+\newdimen\fb@lblwidth
+\newcommand*\fb@thebibliography[1]{%
+ \begingroup
+ \let\endthebibliography\endgroup
+ \settowidth\dimen@{\footrefstyle\footreflabel{#1}}%
+ \ifdim\dimen@>\fb@lblwidth\global\fb@lblwidth=\dimen@\fi
+ \newcount\@bracelevel
+ \newcount\@bgrouplineno
+ \def\@on@line{\on@line\space of \fb@bibname.bbl}%
+ \def\@eat{\let\@tempa= }%
+ \let\@bgroup{%
+ \let\@egroup}%
+ \let\bgroup\relax
+ \let\egroup\relax
+ \def\@actlet##1{%
+ \catcode`##1=\active
+ \begingroup\lccode`~=`##1\lowercase{\endgroup\let~}}%
+ \def\@noitemerr{%
+ \PackageError{footbib}{Missing \string\bibitem\@on@line}\@empty
+ \afterassignment\@readbib\@eat}%
+ \def\@errifbraces##1{%
+ \ifnum\@bracelevel##1\z@
+ {\ifx##1>\let\inputlineno\@bgrouplineno\fi
+ \PackageError{footbib}{%
+ \ifx##1>Unmatched begin\else Extra end\fi-group
+ character\@on@line}\@empty}%
+ \fi}%
+ \def\@readbib{\futurelet\@tok\@xreadbib}%
+ \def\@xreadbib{%
+ \ifx\@tok\@sptoken\let\@tempa\@readsp
+ \else\ifx\@tok\par\let\@tempa\@readpar
+ \else\ifx\@tok\bibitem\let\@tempa\@endbibitem
+ \else\ifx\@tok\end\let\@tempa\@checkendbib
+ \else\if@newlist\let\@tempa\@noitemerr
+ \else\ifx\@tok\@bgroup\let\@tempa\@eat\afterassignment\@begingroup
+ \else\ifx\@tok\@egroup\let\@tempa\@eat\afterassignment\@endgroup
+ \else\ifx\@tok\verb\let\@tempa\relax
+ \else\let\@tempa\@addtotxt
+ \fi\fi\fi\fi\fi\fi\fi\fi\@tempa}%
+ \def\bibitem{%
+ \@errifbraces>%
+ \@newlistfalse
+ \@ifnextchar[\@lbibitem\@bibitem}%
+ \iffb@firstcite
+ \def\@bibitem{\@lbibitem[\fb@setlbl]}%
+ \else
+ \def\@bibitem{%
+ \advance\fb@refcount\@ne
+ \expandafter\@lbibitem\expandafter[\the\fb@refcount]}%
+ \fi
+ \def\@lbibitem[##1]##2{%
+ \fb@lbl{{##1}}%
+ \fb@vedef\fb@key{##2}%
+ \fb@txt{}%
+ \let\@lastsptok\@empty
+ \@inlabeltrue
+ \@readbib}%
+ \def\@checkendbib\end##1{%
+ \def\@tempa{##1}\def\@tempb{thebibliography}%
+ \ifx\@tempa\@tempb
+ \def\@tempa{\@endbibitem\end{##1}}%
+ \else
+ \if@newlist
+ \let\@tempa\@noitemerr
+ \else
+ \def\@tempa{\@addtotxt{\end{##1}}}%
+ \fi
+ \fi\@tempa}%
+ \def\@endbibitem{%
+ \if@newlist\else
+ \@errifbraces>%
+ \iffb@xref
+ \fb@txt\expandafter{\expandafter\fb@settxt\expandafter{\the\fb@txt}}%
+ \fi
+ \fb@setref
+ \fi}%
+ \long\def\@addtotxt##1{%
+ \fb@txt\expandafter\expandafter\expandafter
+ {\expandafter\the\expandafter\fb@txt\@lastsptok##1}%
+ \let\@lastsptok\@empty
+ \@inlabelfalse
+ \@readbib}%
+ \expandafter\def\expandafter\@readsp\space{%
+ \if@inlabel\else\let\@lastsptok\space\fi
+ \@readbib}%
+ \def\@readpar\par{%
+ \if@inlabel\else\def\@lastsptok{\par}\fi
+ \@readbib}%
+ \def\@begingroup{%
+ \@bgroup
+ \advance\@bracelevel\@ne
+ \@bgrouplineno=\inputlineno
+ \fb@txt{}%
+ \let\@lastsptok\@empty
+ \@readbib}%
+ \def\@endgroup{%
+ \@errifbraces=%
+ \edef\@tempa{\@egroup\noexpand\@addtotxt{{\the\fb@txt\@lastsptok}}}%
+ \@tempa}%
+ \def\verb{%
+ \begingroup
+ \let\do\@makeother \dospecials
+ \def\do####1{\@actlet####1\relax}\verbatim@nolig@list
+ \@actlet\^^M\verb@eol@error
+ \@ifstar{\@sverb*}{\@actlet\ \relax\@sverb\@empty}}%
+ \def\@sverb##1##2{%
+ \@actlet##2\verb@egroup
+ \edef\@tempa{\noexpand\verb##1\noexpand~\iffalse}\fi}%
+ \def\verb@egroup{%
+ \noexpand~\iffalse{\fi}%
+ \expandafter\endgroup\expandafter\@addtotxt\expandafter{\@tempa}}%
+ \def\verb@eol@error{\iffalse{\fi}%
+ \GenericError\@empty{LaTeX Error:
+ \noexpand\verb ended by end of line\@on@line}\@gobble%
+ {The argument of \string\verb\@on@line\space contains
+ an end of line.\MessageBreak
+ Type \space X <return> \space to quit.\MessageBreak}%
+ \toks@\expandafter{\@tempa}%
+ \edef\@tempa{\the\toks@\iffalse}\fi}%
+ \@bracelevel\z@
+ \@newlisttrue
+ \@inlabeltrue
+ \@readbib}
+\AtEndDocument{%
+ \clearpage
+ \if@filesw
+ \immediate\closeout\fb@auxout
+ \begingroup
+ \let\citation\@gobble \let\bibstyle\@gobble \let\bibdata\@gobble
+ \def\bibcite#1#2#3#4#5{%
+ \advance\fb@citecount\@ne
+ \fb@vedef\@tempa{{#1}{#2}{#3}{#4}{#5}}%
+ \expandafter\ifx\csname fb@c.\the\fb@citecount\endcsname
+ \@tempa\else\@tempswatrue\fi}%
+ \fb@citecount\z@
+ \@tempswafalse
+ \input\fb@bibname.aux
+ \if@tempswa
+ \PackageWarning{footbib}{Bibliography not yet stable. Rerun
+ LaTeX\@gobble}%
+ \fi
+ \endgroup
+ \fi}
+\def\@specialoutput{%
+ \ifnum \outputpenalty>-\@Mii
+ \@doclearpage
+ \else
+ \ifnum \outputpenalty<-\@Miii
+ \ifnum \outputpenalty<-\@MM \deadcycles \z@ \fi
+ \global \setbox\@holdpg \vbox {\unvbox\@cclv}%
+ \else
+ \global \setbox\@holdpg \vbox{%
+ \unvbox\@holdpg
+ \unvbox\@cclv
+ \setbox\@tempboxa \lastbox
+ \unskip}%
+ \@pagedp \dp\@holdpg
+ \@pageht \ht\@holdpg
+ \unvbox \@holdpg
+ \@next\@currbox\@currlist{%
+ \ifnum \count\@currbox>\z@
+ \advance \@pageht \@pagedp
+ \ifvoid\footins \else
+ \advance \@pageht \ht\footins
+ \advance \@pageht \skip\footins
+ \advance \@pageht \dp\footins
+ \fi
+ \ifvoid\fb@ins\else
+ \advance\@pageht\ht\fb@ins
+ \advance\@pageht\skip\fb@ins
+ \advance\@pageht\dp\fb@ins
+ \fi
+ \ifvbox \@kludgeins
+ \ifdim \wd\@kludgeins=\z@
+ \advance \@pageht \ht\@kludgeins
+ \fi
+ \fi
+ \@reinserts
+ \@addtocurcol
+ \else
+ \@reinserts
+ \@addmarginpar
+ \fi}%
+ \@latexbug
+ \ifnum \outputpenalty<\z@
+ \if@nobreak
+ \nobreak
+ \else
+ \addpenalty \interlinepenalty
+ \fi
+ \fi
+ \fi
+ \fi}
+\def \@doclearpage {%
+ \@tempswatrue
+ \ifvoid\footins\else\@tempswafalse\fi
+ \ifvoid\fb@ins\else\@tempswafalse\fi
+ \if@tempswa
+ \setbox\@tempboxa\vsplit\@cclv to\z@ \unvbox\@tempboxa
+ \setbox\@tempboxa\box\@cclv
+ \xdef\@deferlist{\@toplist\@botlist\@deferlist}%
+ \global \let \@toplist \@empty
+ \global \let \@botlist \@empty
+ \global \@colroom \@colht
+ \ifx \@currlist\@empty
+ \else
+ \@latexerr{Float(s) lost}\@ehb
+ \global \let \@currlist \@empty
+ \fi
+ \@makefcolumn\@deferlist
+ \@whilesw\if@fcolmade \fi{\@opcol\@makefcolumn\@deferlist}%
+ \if@twocolumn
+ \if@firstcolumn
+ \xdef\@dbldeferlist{\@dbltoplist\@dbldeferlist}%
+ \global \let \@dbltoplist \@empty
+ \global \@colht \textheight
+ \begingroup
+ \@dblfloatplacement
+ \@makefcolumn\@dbldeferlist
+ \@whilesw\if@fcolmade \fi{\@outputpage\@makefcolumn\@dbldeferlist}%
+ \endgroup
+ \else
+ \vbox{}\clearpage
+ \fi
+ \fi
+ \else
+ \setbox\@cclv\vbox{\box\@cclv\vfil}%
+ \@makecol\@opcol
+ \clearpage
+ \fi}
+\def \@makecol {%
+ \@tempswatrue
+ \ifvoid\footins\else\@tempswafalse\fi
+ \ifvoid\fb@ins\else\@tempswafalse\fi
+ \if@tempswa
+ \setbox\@outputbox \box\@cclv
+ \else
+ \setbox\@outputbox \vbox {%
+ \boxmaxdepth \@maxdepth
+ \@tempdima\dp\@cclv
+ \unvbox \@cclv
+ \vskip-\@tempdima
+ \ifvoid\footins \else
+ \vskip \skip\footins
+ \color@begingroup
+ \normalcolor
+ \footnoterule
+ \unvbox \footins
+ \color@endgroup
+ \fi
+ \ifvoid\fb@ins\else
+ \vskip\skip\fb@ins
+ \color@begingroup
+ \normalcolor
+ \footbibrule
+ \unvbox\fb@ins
+ \color@endgroup
+ \fi
+ }%
+ \fi
+ \xdef\@freelist{\@freelist\@midlist}%
+ \global \let \@midlist \@empty
+ \@combinefloats
+ \ifvbox\@kludgeins
+ \@makespecialcolbox
+ \else
+ \setbox\@outputbox \vbox to\@colht {%
+ \@texttop
+ \dimen@ \dp\@outputbox
+ \unvbox \@outputbox
+ \vskip -\dimen@
+ \@textbottom}%
+ \fi
+ \global \maxdepth \@maxdepth}
+\def\@reinserts{%
+ \ifvoid\footins\else\insert\footins{\unvbox\footins}\fi
+ \ifvoid\fb@ins\else\insert\fb@ins{\unvbox\fb@ins}\fi
+ \ifvbox\@kludgeins\insert\@kludgeins{\unvbox\@kludgeins}\fi}
+\endinput
+%%
+%% End of file `footbib.sty'.