You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
200 lines
5.9 KiB
200 lines
5.9 KiB
%%
|
|
%% This is file `footnote.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% footnote.dtx (with options: `package')
|
|
%%
|
|
%% IMPORTANT NOTICE
|
|
%%
|
|
%% footnote package -- Save footnotes around boxing environments
|
|
%% Copyright (c) 1996 Mark Wooding
|
|
%%
|
|
%% This program is free software; you can redistribute it and/or modify
|
|
%% it under the terms of the GNU General Public License as published by
|
|
%% the Free Software Foundation; either version 2 of the License, or
|
|
%% (at your option) any later version.
|
|
%%
|
|
%% This program is distributed in the hope that it will be useful,
|
|
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
%% GNU General Public License for more details.
|
|
%%
|
|
%% You should have received a copy of the GNU General Public License
|
|
%% along with this program; if not, write to the Free Software
|
|
%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
%%
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
\ProvidesPackage{footnote}
|
|
[1997/01/28 1.13 Save footnotes around boxes]
|
|
%% \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 \~}
|
|
%%
|
|
\ifx\fn@notes\@@undefined%
|
|
\newbox\fn@notes%
|
|
\fi
|
|
\newdimen\fn@width
|
|
\let\fn@colwidth\columnwidth
|
|
\newif\if@savingnotes
|
|
\def\fn@startnote{%
|
|
\hsize\fn@colwidth%
|
|
\interlinepenalty\interfootnotelinepenalty%
|
|
\reset@font\footnotesize%
|
|
\floatingpenalty\@MM% Is this right???
|
|
\@parboxrestore%
|
|
\protected@edef\@currentlabel{\csname p@\@mpfn\endcsname\@thefnmark}%
|
|
\color@begingroup%
|
|
}
|
|
\let\fn@endnote\color@endgroup
|
|
\def\fn@fntext#1{%
|
|
\ifx\ifmeasuring@\@@undefined%
|
|
\expandafter\@secondoftwo\else\expandafter\@iden%
|
|
\fi%
|
|
{\ifmeasuring@\expandafter\@gobble\else\expandafter\@iden\fi}%
|
|
{%
|
|
\global\setbox\fn@notes\vbox{%
|
|
\unvbox\fn@notes%
|
|
\fn@startnote%
|
|
\@makefntext{%
|
|
\rule\z@\footnotesep%
|
|
\ignorespaces%
|
|
#1%
|
|
\@finalstrut\strutbox%
|
|
}%
|
|
\fn@endnote%
|
|
}%
|
|
}%
|
|
}
|
|
\def\savenotes{%
|
|
\begingroup%
|
|
\if@savingnotes\else%
|
|
\@savingnotestrue%
|
|
\let\@footnotetext\fn@fntext%
|
|
\let\@mpfootnotetext\fn@fntext%
|
|
\fn@width\columnwidth%
|
|
\let\fn@colwidth\fn@width%
|
|
\global\setbox\fn@notes\box\voidb@x%
|
|
\let\fn@thempfn\thempfn%
|
|
\let\fn@mpfn\@mpfn%
|
|
\ifx\@minipagerestore\relax\let\@minipagerestore\@empty\fi%
|
|
\expandafter\def\expandafter\@minipagerestore\expandafter{%
|
|
\@minipagerestore%
|
|
\let\thempfn\fn@thempfn%
|
|
\let\@mpfn\fn@mpfn%
|
|
}%
|
|
\fi%
|
|
}
|
|
\def\spewnotes{%
|
|
\endgroup%
|
|
\if@savingnotes\else\ifvoid\fn@notes\else\begingroup%
|
|
\let\@makefntext\@empty%
|
|
\let\@finalstrut\@gobble%
|
|
\let\rule\@gobbletwo%
|
|
\@footnotetext{\unvbox\fn@notes}%
|
|
\endgroup\fi\fi%
|
|
}
|
|
\let\endsavenotes\spewnotes
|
|
\def\fn@getmark#1#2{%
|
|
\begingroup%
|
|
\@ifnextchar[%
|
|
{\fn@getmark@i{#1}}%
|
|
{#1\fn@getmark@ii{#2}}%
|
|
}
|
|
\def\fn@getmark@i#1[#2]{%
|
|
\csname c@\@mpfn\endcsname#2%
|
|
\fn@getmark@ii%
|
|
}
|
|
\def\fn@getmark@ii#1{%
|
|
\unrestored@protected@xdef\@thefnmark{\thempfn}%
|
|
\endgroup%
|
|
#1%
|
|
}
|
|
\def\fn@startfntext{%
|
|
\setbox\z@\vbox\bgroup%
|
|
\fn@startnote%
|
|
\fn@prefntext%
|
|
\rule\z@\footnotesep%
|
|
\ignorespaces%
|
|
}
|
|
\def\fn@endfntext{%
|
|
\@finalstrut\strutbox%
|
|
\fn@postfntext%
|
|
\egroup%
|
|
\begingroup%
|
|
\let\@makefntext\@empty%
|
|
\let\@finalstrut\@gobble%
|
|
\let\rule\@gobbletwo%
|
|
\@footnotetext{\unvbox\z@}%
|
|
\endgroup%
|
|
}
|
|
\let\fn@latex@@footnote\footnote
|
|
\def\fn@footnote{footnote}
|
|
\def\footnote{%
|
|
\ifx\@currenvir\fn@footnote%
|
|
\expandafter\@firstoftwo%
|
|
\else%
|
|
\expandafter\@secondoftwo%
|
|
\fi%
|
|
{\fn@getmark{\stepcounter\@mpfn}%
|
|
{\leavevmode\unskip\@footnotemark\fn@startfntext}}%
|
|
{\fn@latex@@footnote}%
|
|
}
|
|
\let\endfootnote\fn@endfntext
|
|
\def\fn@footnotetext{footnotetext}
|
|
\let\fn@latex@@footnotetext\footnotetext
|
|
\def\footnotetext{%
|
|
\ifx\@currenvir\fn@footnotetext%
|
|
\expandafter\@firstoftwo%
|
|
\else%
|
|
\expandafter\@secondoftwo%
|
|
\fi%
|
|
{\fn@getmark{}\fn@startfntext}%
|
|
{\fn@latex@@footnotetext}%
|
|
}
|
|
\let\endfootnotetext\endfootnote
|
|
\long\def\@tempa#1\@@#2\@@@{\def\fn@prefntext{#1}\def\fn@postfntext{#2}}
|
|
\expandafter\@tempa\@makefntext\@@\@@@
|
|
\def\makesavenoteenv{\@ifnextchar[\fn@msne@ii\fn@msne@i}
|
|
\def\fn@msne@i#1{%
|
|
\expandafter\let\csname msne$#1\expandafter\endcsname%
|
|
\csname #1\endcsname%
|
|
\expandafter\let\csname endmsne$#1\expandafter\endcsname%
|
|
\csname end#1\endcsname%
|
|
\fn@msne@ii[#1]{msne$#1}%
|
|
}
|
|
\def\fn@msne@ii[#1]#2{%
|
|
\expandafter\edef\csname#1\endcsname{%
|
|
\noexpand\savenotes%
|
|
\expandafter\noexpand\csname#2\endcsname%
|
|
}%
|
|
\expandafter\edef\csname end#1\endcsname{%
|
|
\expandafter\noexpand\csname end#2\endcsname%
|
|
\noexpand\expandafter%
|
|
\noexpand\spewnotes%
|
|
\noexpand\if@endpe\noexpand\@endpetrue\noexpand\fi%
|
|
}%
|
|
}
|
|
\makesavenoteenv[minipage*]{minipage}
|
|
\let\fn@parbox\parbox
|
|
\def\parbox{\@ifnextchar[{\fn@parbox@i{}}{\fn@parbox@ii{}}}
|
|
\def\fn@parbox@i#1[#2]{%
|
|
\@ifnextchar[{\fn@parbox@i{#1[#2]}}{\fn@parbox@ii{#1[#2]}}%
|
|
}
|
|
\long\def\fn@parbox@ii#1#2#3{\savenotes\fn@parbox#1{#2}{#3}\spewnotes}
|
|
\endinput
|
|
%%
|
|
%% End of file `footnote.sty'.
|
|
|