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.
268 lines
8.1 KiB
268 lines
8.1 KiB
%%
|
|
%% This is file `footnotehyper.sty',
|
|
%% generated with the docstrip utility.
|
|
%%
|
|
%% The original source files were:
|
|
%%
|
|
%% footnotehyper.dtx (with options: `package')
|
|
%%
|
|
%% IMPORTANT NOTICE:
|
|
%%
|
|
%% For the copyright see the source file.
|
|
%%
|
|
%% Any modified versions of this file must be renamed
|
|
%% with new filenames distinct from footnotehyper.sty.
|
|
%%
|
|
%% For distribution of the original source see the terms
|
|
%% for copying and modification in the file footnotehyper.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.)
|
|
%%
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
\ProvidesPackage{footnotehyper}%
|
|
[2019/11/07 v1.1a hyperref aware footnote.sty (JFB)]
|
|
%%
|
|
%% Package: footnotehyper
|
|
%% Version: 1.1a (2019/11/07)
|
|
%% License: LPPL 1.3c
|
|
%% Copyright (C) 2016-2019 Jean-Francois Burnol <jfbu at free dot fr>.
|
|
%%
|
|
\DeclareOption*%
|
|
{\PackageWarning{footnotehyper}{Option `\CurrentOption' is unknown}}%
|
|
\ProcessOptions\relax
|
|
\@ifclassloaded{beamer}
|
|
{\PackageWarningNoLine{footnotehyper}{This package is
|
|
incompatible with the beamer class. Aborting input..}%
|
|
\endinput}
|
|
{}%
|
|
\newbox\FNH@notes
|
|
\newdimen\FNH@width
|
|
\let\FNH@colwidth\columnwidth
|
|
\newif\ifFNH@savingnotes
|
|
\AtBeginDocument {%
|
|
\let\FNH@latex@footnote \footnote
|
|
\let\FNH@latex@footnotetext\footnotetext
|
|
\let\FNH@H@@footnotetext \@footnotetext
|
|
\let\FNH@H@@mpfootnotetext \@mpfootnotetext
|
|
\newenvironment{savenotes}
|
|
{\FNH@savenotes\ignorespaces}{\FNH@spewnotes\ignorespacesafterend}%
|
|
\let\spewnotes \FNH@spewnotes
|
|
\let\footnote \FNH@footnote
|
|
\let\footnotetext \FNH@footnotetext
|
|
\let\endfootnote \FNH@endfntext
|
|
\let\endfootnotetext\FNH@endfntext
|
|
\@ifpackageloaded{hyperref}
|
|
{\ifHy@hyperfootnotes
|
|
\let\FNH@H@@footnotetext\H@@footnotetext
|
|
\let\FNH@H@@mpfootnotetext\H@@mpfootnotetext
|
|
\else
|
|
\let\FNH@hyper@fntext\FNH@nohyp@fntext
|
|
\fi}%
|
|
{\let\FNH@hyper@fntext\FNH@nohyp@fntext}%
|
|
}%
|
|
\def\FNH@hyper@fntext{\FNH@fntext\FNH@hyper@fntext@i}%
|
|
\def\FNH@nohyp@fntext{\FNH@fntext\FNH@nohyp@fntext@i}%
|
|
\def\FNH@fntext #1{\ifx\ifmeasuring@\@undefined
|
|
\expandafter\@secondoftwo\else\expandafter\@firstofone\fi
|
|
{\ifmeasuring@\expandafter\@gobbletwo\fi}#1%
|
|
}%
|
|
\long\def\FNH@hyper@fntext@i#1{%
|
|
\global\setbox\FNH@notes\vbox
|
|
{\unvbox\FNH@notes
|
|
\FNH@startnote
|
|
\@makefntext
|
|
{\rule\z@\footnotesep\ignorespaces
|
|
\ifHy@nesting\expandafter\ltx@firstoftwo
|
|
\else\expandafter\ltx@secondoftwo
|
|
\fi
|
|
{\expandafter\hyper@@anchor\expandafter{\Hy@footnote@currentHref}{#1}}%
|
|
{\Hy@raisedlink
|
|
{\expandafter\hyper@@anchor\expandafter{\Hy@footnote@currentHref}%
|
|
{\relax}}%
|
|
\let\@currentHref\Hy@footnote@currentHref
|
|
\let\@currentlabelname\@empty
|
|
#1}%
|
|
\@finalstrut\strutbox
|
|
}%
|
|
\FNH@endnote
|
|
}%
|
|
}%
|
|
\long\def\FNH@nohyp@fntext@i#1{%
|
|
\global\setbox\FNH@notes\vbox
|
|
{\unvbox\FNH@notes
|
|
\FNH@startnote
|
|
\@makefntext{\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
|
|
\FNH@endnote
|
|
}%
|
|
}%
|
|
\def\FNH@startnote{%
|
|
\hsize\FNH@colwidth
|
|
\interlinepenalty\interfootnotelinepenalty
|
|
\reset@font\footnotesize
|
|
\floatingpenalty\@MM% Is this right???
|
|
\@parboxrestore
|
|
\protected@edef\@currentlabel{\csname p@\@mpfn\endcsname\@thefnmark}%
|
|
\color@begingroup
|
|
}%
|
|
\def\FNH@endnote{\color@endgroup}%
|
|
\def\FNH@savenotes{%
|
|
\begingroup
|
|
\ifFNH@savingnotes\else
|
|
\FNH@savingnotestrue
|
|
\let\@footnotetext \FNH@hyper@fntext
|
|
\let\@mpfootnotetext \FNH@hyper@fntext
|
|
\let\H@@mpfootnotetext\FNH@nohyp@fntext % fool hyperref's \@xfootnotenext
|
|
\FNH@width\columnwidth
|
|
\let\FNH@colwidth\FNH@width
|
|
\global\setbox\FNH@notes\box\voidb@x
|
|
\let\FNH@thempfn\thempfn
|
|
\let\FNH@mpfn\@mpfn
|
|
\ifx\@minipagerestore\relax\let\@minipagerestore\@empty\fi
|
|
\expandafter\def\expandafter\@minipagerestore\expandafter{%
|
|
\@minipagerestore
|
|
\let\thempfn\FNH@thempfn
|
|
\let\@mpfn\FNH@mpfn
|
|
}%
|
|
\fi
|
|
}%
|
|
\def\FNH@spewnotes {%
|
|
\endgroup
|
|
\ifFNH@savingnotes\else
|
|
\ifvoid\FNH@notes\else
|
|
\begingroup
|
|
\let\@makefntext\@empty
|
|
\let\@finalstrut\@gobble
|
|
\let\rule\@gobbletwo
|
|
\ifx\@footnotetext\@mpfootnotetext
|
|
\expandafter\FNH@H@@mpfootnotetext
|
|
\else
|
|
\expandafter\FNH@H@@footnotetext
|
|
\fi{\unvbox\FNH@notes}%
|
|
\endgroup
|
|
\fi
|
|
\fi
|
|
}%
|
|
\def\FNH@footnote@envname {footnote}%
|
|
\def\FNH@footnotetext@envname{footnotetext}%
|
|
\def\FNH@footnote{%
|
|
\ifx\@currenvir\FNH@footnote@envname
|
|
\expandafter\FNH@footnoteenv
|
|
\else
|
|
\expandafter\FNH@latex@footnote
|
|
\fi
|
|
}%
|
|
\def\FNH@footnoteenv{%
|
|
\@ifnextchar[%
|
|
\FNH@footnoteenv@i %]
|
|
{\stepcounter\@mpfn
|
|
\protected@xdef\@thefnmark{\thempfn}%
|
|
\@footnotemark
|
|
\def\FNH@endfntext@fntext{\@footnotetext}%
|
|
\FNH@startfntext}%
|
|
}%
|
|
\def\FNH@footnoteenv@i[#1]{%
|
|
\begingroup
|
|
\csname c@\@mpfn\endcsname #1\relax
|
|
\unrestored@protected@xdef\@thefnmark{\thempfn}%
|
|
\endgroup
|
|
\@footnotemark
|
|
\def\FNH@endfntext@fntext{\@footnotetext}%
|
|
\FNH@startfntext
|
|
}%
|
|
\def\FNH@footnotetext{%
|
|
\ifx\@currenvir\FNH@footnotetext@envname
|
|
\expandafter\FNH@footnotetextenv
|
|
\else
|
|
\expandafter\FNH@latex@footnotetext
|
|
\fi
|
|
}%
|
|
\def\FNH@footnotetextenv{%
|
|
\@ifnextchar[%
|
|
\FNH@footnotetextenv@i %]
|
|
{\protected@xdef\@thefnmark{\thempfn}%
|
|
\def\FNH@endfntext@fntext{\@footnotetext}%
|
|
\FNH@startfntext}%
|
|
}%
|
|
\def\FNH@footnotetextenv@i[#1]{%
|
|
\begingroup
|
|
\csname c@\@mpfn\endcsname #1\relax
|
|
\unrestored@protected@xdef\@thefnmark{\thempfn}%
|
|
\endgroup
|
|
\ifFNH@savingnotes
|
|
\def\FNH@endfntext@fntext{\FNH@nohyp@fntext}%
|
|
\else
|
|
\def\FNH@endfntext@fntext{\FNH@H@@footnotetext}%
|
|
\fi
|
|
\FNH@startfntext
|
|
}%
|
|
\def\FNH@startfntext{%
|
|
\setbox\z@\vbox\bgroup
|
|
\FNH@startnote
|
|
\FNH@prefntext
|
|
\rule\z@\footnotesep\ignorespaces
|
|
}%
|
|
\def\FNH@endfntext {%
|
|
\@finalstrut\strutbox
|
|
\FNH@postfntext
|
|
\FNH@endnote
|
|
\egroup
|
|
\begingroup
|
|
\let\@makefntext\@empty\let\@finalstrut\@gobble\let\rule\@gobbletwo
|
|
\FNH@endfntext@fntext {\unvbox\z@}%
|
|
\endgroup
|
|
}%
|
|
\AtBeginDocument{\let\FNH@@makefntext\@makefntext
|
|
\ifx\@makefntextFB\undefined
|
|
\expandafter\@gobble\else\expandafter\@firstofone\fi
|
|
{\ifFBFrenchFootnotes \let\FNH@@makefntext\@makefntextFB \else
|
|
\let\FNH@@makefntext\@makefntextORI\fi}%
|
|
\expandafter\FNH@check@a\FNH@@makefntext{1.2!3?4,}%
|
|
\FNH@@@1.2!3?4,\FNH@@@\relax
|
|
}%
|
|
\long\def\FNH@check@a #11.2!3?4,#2\FNH@@@#3{%
|
|
\ifx\relax#3\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi
|
|
\FNH@bad@makefntext@alert
|
|
{\def\FNH@prefntext{#1}\def\FNH@postfntext{#2}\FNH@check@b}%
|
|
}%
|
|
\def\FNH@check@b #1\relax{%
|
|
\expandafter\expandafter\expandafter\FNH@check@c
|
|
\expandafter\meaning\expandafter\FNH@prefntext
|
|
\meaning\FNH@postfntext1.2!3?4,\FNH@check@c\relax
|
|
}%
|
|
\def\FNH@check@c #11.2!3?4,#2#3\relax{%
|
|
\ifx\FNH@check@c#2\expandafter\@gobble\fi\FNH@bad@makefntext@alert
|
|
}%
|
|
\def\FNH@bad@makefntext@alert{%
|
|
\PackageWarningNoLine{footnotehyper}%
|
|
{^^J The footnote environment will not be fully functional, sorry.^^J
|
|
You may try to email the author this meaning of \string\@makefntext:^^J
|
|
\meaning\@makefntext^^J
|
|
together with the used preamble}%
|
|
\let\FNH@prefntext\@empty\let\FNH@postfntext\@empty
|
|
}%
|
|
\def\makesavenoteenv{\@ifnextchar[\FNH@msne@ii\FNH@msne@i}%]
|
|
\def\FNH@msne@i #1{%
|
|
\expandafter\let\csname FNH$#1\expandafter\endcsname %$
|
|
\csname #1\endcsname
|
|
\expandafter\let\csname endFNH$#1\expandafter\endcsname %$
|
|
\csname end#1\endcsname
|
|
\FNH@msne@ii[#1]{FNH$#1}%$
|
|
}%
|
|
\def\FNH@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
|
|
}%
|
|
}%
|
|
\endinput
|
|
%%
|
|
%% End of file `footnotehyper.sty'.
|
|
|