summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/footnpag/src
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/footnpag/src
Initial commit
Diffstat (limited to 'macros/latex/contrib/footnpag/src')
-rw-r--r--macros/latex/contrib/footnpag/src/Imakefile73
-rw-r--r--macros/latex/contrib/footnpag/src/README31
-rw-r--r--macros/latex/contrib/footnpag/src/TODO29
-rw-r--r--macros/latex/contrib/footnpag/src/footnpag-doc.sty58
-rw-r--r--macros/latex/contrib/footnpag/src/footnpag-user.tex133
-rw-r--r--macros/latex/contrib/footnpag/src/footnpag.doc559
-rw-r--r--macros/latex/contrib/footnpag/src/test/Imakefile42
-rw-r--r--macros/latex/contrib/footnpag/src/test/eqnarray-fnmark.tex31
-rw-r--r--macros/latex/contrib/footnpag/src/test/late.tex113
-rw-r--r--macros/latex/contrib/footnpag/src/test/many.tex122
-rw-r--r--macros/latex/contrib/footnpag/src/test/minipage.tex46
-rw-r--r--macros/latex/contrib/footnpag/src/test/report.tex128
-rw-r--r--macros/latex/contrib/footnpag/src/test/title-2col.tex72
13 files changed, 1437 insertions, 0 deletions
diff --git a/macros/latex/contrib/footnpag/src/Imakefile b/macros/latex/contrib/footnpag/src/Imakefile
new file mode 100644
index 0000000000..39fbe63164
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/Imakefile
@@ -0,0 +1,73 @@
+XCOMM $Id: Imakefile,v 2.1 1995/08/04 00:18:32 schrod Exp $
+/* ---------------------------------------------------------------------- */
+
+/*
+ * Imakefile for footnpag bundle
+ *
+ * (history at end)
+ */
+
+
+/* needed modules */
+#include <TeX.imk>
+#include <makeprog.imk>
+
+#include <install/TeX.imk>
+
+XCOMM ------------------------------------------------------------
+XCOMM continue in Imakefile
+
+
+/* exported files */
+
+MpDoc2TeXTarget(footnpag,sty)
+
+TeXTarget(latex,footnpag-user)
+/* TeXTarget(latex,footnpag-conf) */
+
+
+/* installation */
+
+#ifdef ITI_Site
+ DESTDIR = /archives/tex/Install
+#endif
+
+InstallTeXLaTeX(misc,footnpag.sty)
+InstallTeXDoc(latex/styles,footnpag-user.dvi)
+/* InstallTeXDoc(latex/styles/XXX,footnpag-conf.dvi) */
+
+
+/* internal documentation */
+
+TeXFileTarget(latex,footnpag,doc)
+
+
+/* export */
+
+export:: all footnpag.dvi
+ mv footnpag-*.dvi footnpag.sty ..
+ cp $(HOME)/Notes/README.latex.doc-src README
+ $(MAKE) realclean
+
+realclean:: clean
+ $(RM) Makefile
+ test -s TODO || $(RM) TODO
+
+
+
+/* ============================================================
+ *
+ * $Log: Imakefile,v $
+ * Revision 2.1 1995/08/04 00:18:32 schrod
+ * Made a \LaTeXe{} package from this style option.
+ *
+ * User manual is a separate document now, that's better for
+ * installation. Started to change the distribution into one that
+ * conforms to the `supported bundle guidelines.'
+ *
+
+ * ------------------------------------------------------------
+ * Local Variables:
+ * mode: Indented-Text
+ * End:
+ */
diff --git a/macros/latex/contrib/footnpag/src/README b/macros/latex/contrib/footnpag/src/README
new file mode 100644
index 0000000000..0e7a483671
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/README
@@ -0,0 +1,31 @@
+latex-style:src/README 29 Aug 95
+----------------------------------------------------------------------
+
+Please note: This directory is part of the distribution primarily for your
+information. It's not prepared to be usable by you, sorry.
+
+In particular, probably you won't have tools and style files I take
+for granted during development. Please don't complain, either use the
+supplied installable files (as listed in ../MANIFEST) or search & get
+the missing files. I will neither stop adding this directory to the
+distribution, nor will I add all missing files.
+
+On the one hand I won't restrict my own development environment by not
+using available tools, on the other hand I'll want to make my source
+available for those who have a similar environment to mine.
+
+
+For your orientation:
+
+ *.doc -- master file for TeX macro files
+ *.dvi -- typeset version of *.doc
+ *-user.tex -- user manual
+ *-conf.tex -- (optional) internal interface description
+ *.tex -- (optional) other documentation parts
+ *.{fig,latex} -- (optional) figures prepared with xfig
+ *.sty -- needed to process the above documents
+
+ TODO -- (optional) personal notes for future revisions
+ Imakefile -- does not use MIT's Imake templates
+ style/ -- (optional) files for AUC-TeX
+ test/ -- test cases
diff --git a/macros/latex/contrib/footnpag/src/TODO b/macros/latex/contrib/footnpag/src/TODO
new file mode 100644
index 0000000000..3c942f268a
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/TODO
@@ -0,0 +1,29 @@
+John Lu <luj@ecn.purdue.edu>
+
+If zero.sty is used, footnote numbering should start from "0"
+each page. Note that if footnpag.sty is not used,
+footnote numbering in LaTeX does start from zero.
+
+======================================================================
+
+Patrick Danes <danes@laas.fr>
+
+uses symbols as footnote markers and wants to start them with dagger,
+since asterisk are used in his document in other circumstances and
+would irritate the reader. Daggers are associated with number 2, ie,
+footnotes shall start at two.
+
+Solution: make starting number settable.
+
+%% workaround already send to Patrick, with warning that it works only
+%% for 2.2, not for future versions.
+
+======================================================================
+
+Use aux file & label/ref mimic.
+
+======================================================================
+
+Clean up namespace.
+
+======================================================================
diff --git a/macros/latex/contrib/footnpag/src/footnpag-doc.sty b/macros/latex/contrib/footnpag/src/footnpag-doc.sty
new file mode 100644
index 0000000000..82aad99e61
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/footnpag-doc.sty
@@ -0,0 +1,58 @@
+% $Id: footnpag-doc.sty,v 2.1 1995/08/04 00:18:33 schrod Exp $
+%----------------------------------------------------------------------
+
+%
+% tags for the documentation of footnpag package
+%
+
+
+\ProvidesPackage{footnpag-doc}
+
+
+%
+% Used packages
+%
+
+\RequirePackage{footnpag} % for style revision
+\providecommand*\fnpp@loaded{$StyleRevision$} % bootstrap
+
+
+
+%
+% Configuration of RCS fields
+%
+
+% keywords in style are prefixed by `Style', in documentation by `Doc'.
+\let\RcsHandleStyleDate=\RcsHandleDate % transform StyleDate value
+\let\RcsHandleDocDate=\RcsHandleDate % transform DocDate field
+
+% the revision of rcs.sty is needed by the documentation
+\expandafter\RCS \fnpp@loaded % creates \RCSStyleRevision
+
+% author name
+\rcsAuthor{schrod}{Joachim Schrod}
+
+
+
+%
+% new tags
+%
+
+\def\<#1>{% % syntactic element
+ \mbox{$\langle$\rm #1$\rangle$}%
+ }
+
+
+
+\endinput
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Local Variables:
+mode: plain-TeX
+TeX-master: t
+TeX-brace-indent-level: 4
+indent-tabs-mode: t
+TeX-auto-untabify: nil
+End:
diff --git a/macros/latex/contrib/footnpag/src/footnpag-user.tex b/macros/latex/contrib/footnpag/src/footnpag-user.tex
new file mode 100644
index 0000000000..1ad5a6ea83
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/footnpag-user.tex
@@ -0,0 +1,133 @@
+% $DocId: footnpag-user.tex,v 2.1 1995/08/04 00:18:33 schrod Exp $
+%------------------------------------------------------------
+
+%
+% user manual/requirement definition for footnpag package
+%
+% [LaTeX]
+% (history at end)
+
+
+% This file is either a subdocument of the style doc or a document on
+% its own. In the former case it's a chapter, in the latter it's a
+% ``normal'' LaTeX progltx document.
+% If it's a subdocument, this file will be included after
+% \begin{document}. We can detect this: \document redefines
+% \documentclass to be \@twoclasseserror. Then we also have to define
+% how this document is ended: Either by \endinput or by an additional
+% revision log.
+% Of course, this test works only if LaTeX 2e is used for processing.
+
+\expandafter\ifx \csname @twoclasseserror\endcsname \documentclass
+
+ \let\endSubDocument=\endinput
+
+ \chap What's this package for?.
+
+\else
+
+ \let\endSubDocument=\relax
+
+ \documentclass{progltx}
+
+ \usepackage{footnpag-doc} % document-specific markup
+ \usepackage{a4-9} % Tschichold's A4 layout
+
+ \nofiles % no crossreferences used
+
+ \begin{document}
+
+ \title{The \texttt{footnpag} Package}
+ \author{Joachim Schrod%
+ \thanks{Email: \texttt{schrod@iti.informatik.th-darmstadt.de}}%
+ }
+
+ \RCS $DocDate: 1995/08/04 00:18:33 $
+ \date{%
+ \RCSDocDate\\[3pt] % LaTeX Error: Paragraph terminated too early
+ (Revision \RCSStyleRevision{} of \texttt{footnpag.sty})%
+ }
+
+ \maketitle
+
+ \sect
+
+\fi
+
+
+
+
+
+This package is appropriate for numbering footnotes separately on each
+page. It may be used with all standard document classes (and I assume
+with all other well written ones). `Numbering' here does not only mean
+supplying Arabic numbers, if your class or another package sets up
+appropriate symbols, they are used instead.
+
+You just have to use the |footnpag| package, the rest will happen
+automagically. You will need two \LaTeX{} runs, as with cross
+references or citations.
+
+
+\sect \textsl{Known Problems}.
+
+\medskip
+
+\noindent Unlike with references, \LaTeX{} will not issue a warning if
+a footnote number is incorrect due to new page breaks. Thus run
+\LaTeX{} always another time if you want a final document.
+
+This is scheduled to change in the next revision.
+
+
+\sect An auxiliary file is used, named \textit{jobname}|.fot|. This is
+not necessary by itself, it would have been better to use the
+|aux| file. (Actually, this package was written for plain \TeX{}
+originally, there is no |aux| file there.)
+
+This is also scheduled to change in the next revision. In fact, it's
+the same problem like the previous one: When I use the |aux| file,
+\LaTeX{}'s warning mechanism can be utilized.
+
+
+\sect There is no possibility to change the number that's used for the
+first footnote on a page.
+
+Some people like to start their footnotes with~`0', there exists even
+a package for that named |zero|. |footnpag| should cooperate with that
+package.
+
+If one uses symbols as footnote markers, the first footnote is marked
+with an asterisk. One might want to use a dagger instead, that's not
+possible currently.
+
+Most probably this feature will be made available via the new
+``keyword-value'' option scheme, as you'll find it in the |graphicx|
+package.
+
+
+
+
+\endSubDocument
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\vskip \PltxPreSectSkip
+
+\begin{rcslog}
+$DocLog: footnpag-user.tex,v $
+\Revision 2.1 1995/08/04 00:18:33 schrod
+Made a \LaTeXe{} package from this style option.
+
+User manual is a separate document now, that's better for
+installation. Started to change the distribution into one that
+conforms to the `supported bundle guidelines.'
+
+\end{rcslog}
+
+
+
+\end{document}
+
+% LocalWords: footnpag jobname fot graphicx
diff --git a/macros/latex/contrib/footnpag/src/footnpag.doc b/macros/latex/contrib/footnpag/src/footnpag.doc
new file mode 100644
index 0000000000..ad6dc2a10c
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/footnpag.doc
@@ -0,0 +1,559 @@
+% $StyleId: footnpag.doc,v 2.6 1995/11/10 18:21:26 schrod Exp $
+%----------------------------------------------------------------------
+% Written by Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>.
+% Copyright conditions see below.
+
+%
+% LaTeX package footnpag
+% numbers footnotes subsequently per page
+%
+% [LaTeX in MAKEPROG]
+% (history at end)
+
+% If you have received this style file without the user manual (in the
+% file footnpag-user.tex or the respective DVI file), it's incomplete and
+% near to useless. If it was given to you as something that you shall
+% use as an author -- complain bitterly to your provider. You need the
+% documentation and you have a right on it! (Below you can find info
+% where to get the reference version.)
+
+
+
+
+\documentclass{progltx}
+
+\usepackage{footnpag-doc} % document-specific markup
+\usepackage{fullpage}
+
+
+\nofiles % no cross references
+
+
+\RCS $StyleDate: 1995/11/10 18:21:26 $
+
+
+\begin{document}
+
+
+\title{The \texttt{footnpag} Package\\
+ {\large (Implementation)}%
+ }
+\author{% % LaTeX does not discard unnecessary glue...
+ Joachim Schrod%
+ \thanks{%
+ \protect\raggedright
+ TU~Darmstadt, Computer Science Department, WG Systems Programming,
+ Alexanderstr.~10, D-64283~Darmstadt, Germany.
+ Email: \texttt{schrod@iti.informatik.th-darmstadt.de}.%
+ }%
+ }
+\date{%
+ Revision \RCSStyleRevision\\
+ (as of \RCSStyleDate)%
+ }
+
+\maketitle
+
+
+% doesn't work with progltx yet
+%\tableofcontents
+
+
+
+% ------------------------------------------------------------
+%
+% subdocument: The user interface of footnpag.sty
+%
+
+\input{footnpag-user}
+
+%
+% ------------------------------------------------------------
+%
+% subdocument: The internal interface
+%
+
+%\input{footnpag-conf}
+
+%
+% ------------------------------------------------------------
+
+
+
+\chap Implementation.
+
+Please note, that this package was originally written for plain
+\TeX{}. The original version is still available. This version will
+evolve, and will finally be full \LaTeX{} code.
+
+This module reserves the namespace |fnpp|. Due to the age of the code
+it does not obey the namespace throughout, this has to be changed in a
+future revision.
+
+\beginprog
+\ifx \fnpp@loaded\undefined
+ \def\fnpp@loaded{$StyleRevision: 2.6 $}
+\else
+ \PackageWarningNoLine{footnpag}%
+ {Some other package already uses namespace `fnpp'}
+\fi
+\endprog
+
+
+\sect Let's identify this package.
+
+The code below is explained in the implementation documentation of the
+|rcs| package.
+
+\beginprog
+\begingroup
+ \def\RCSPackage#1#2 $#3: #4 #5\endRCS $#6: #7 #8\endRCS{%
+ \def\date{#4}\def\id{v#7}%
+ \ProvidesPackage{#1}[\date\space\id\space #2]%
+ }
+
+ \RCSPackage{footnpag}{numbering footnotes per page}
+ $StyleDate: 1995/11/10 18:21:26 $: 9999/00/00 \endRCS
+ $StyleRevision: 2.6 $: 0.0 \endRCS
+\endgroup
+\endprog
+
+
+\sect This module is supported. Send bug reports, comments and
+repairs.
+
+The reference version may be retrieved via anonymous ftp from
+|ftp.th-darmstadt.de| [130.83.47.112], directory |pub/tex/latex|. It's
+placed there as a gzipped tar file. (The information on the IP~number
+is dated August~3,~1995.
+It might have changed, although this is very unlikely. Use your
+friendly nameserver.)
+
+
+\sect This is freely distributable 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 software is distributed in the hope that it will be useful, but
+\textbf{without any warranty}; without even the implied warranty of
+\textbf{merchantability} or \textbf{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 in
+the file |License| along with this package; if not, write to the Free
+Software Foundation, Inc., 675~Mass Ave, Cambridge, MA~02139,~USA.
+
+
+\sect Before we start we declare some shorthands for category codes.
+By declaring the underscore~`(|_|)' as letter we can use it in our
+macros. (I agree with \textsc{D.~Knuth} that
+|\identifier_several_words_long| is more readable than
+|\IdentifierSeveralWordsLong| and in every case better than |\p@@@s|.)
+
+As this is a \LaTeX{} module the at sign is a letter anyhow; so
+we can use the ``private'' \LaTeX{} macros; and with the underscore we
+can make our own macros more readable. But as we have to restore this
+category code at the end of this macro file we store its former value
+in the control sequence |\CatUsCode|. This method is better than to
+use a group because not all macros have to be defined global this way.
+
+Since somebody might use more modules from me, this cseqs might be
+defined already.
+
+\beginprog
+\ifx \CatEscape\undefined
+ \chardef\CatEscape=0
+ \chardef\CatOpen=1
+ \chardef\CatClose=2
+ \chardef\CatIgnore=9
+ \chardef\CatLetter=11
+ \chardef\CatOther=12
+ \chardef\CatActive=13 % is defined in Plain already
+
+ \chardef\CatUsCode=\catcode`\_
+\fi
+
+\catcode`\_=\CatLetter % top level macro file
+\endprog
+
+
+\sect Let's regard the implementation strategy. Because
+the contents of one page is determined at (nearly) random places
+with an asynchronous invogation of the output routine, we can not
+give numbers to every footnote subsequently between output and
+output: a footnote at the top of a page will perhaps get a number
+before the output is triggered and there is no way to change this
+number. The problem is like forward references to text places and it
+is solved in a similar fashion. We need two \TeX{} runs to get the
+numbering right but this is acceptable (who's got a finished text
+after one run?!). In the first run we gather up in a file the
+information where the footnotes are standing and in the second run
+we use this information.
+
+We must identify all footnotes if we write their numbers to the
+footnote file, so each footnote gets an unary name built with the
+counter |\foot_name_no|. The name is `|f@|\<nameno>', where \<nameno>
+is the footnote name number. This name building scheme has several
+disadvantages, e.g.\ the insertion of a new footnote destroys the
+knowledge of the former run about the following footnotes. If we would
+have some knowledge about the document type we are using and the macro
+set which is in effect we could insert other counters (e.g.\ the
+chapter numbers) as well.
+
+
+
+\chap Determing the footnote numbers.
+
+Let's start with the initialization of the macro
+set. We need a file descriptor, |\foot_file|, which we use for the
+file interaction. The name of the file is built from the job name and
+the suffix `|.fot|' (I hope that no macro package uses this suffix).
+The |\init_footnote| macro reads the contents
+of the footnote file if it exists (|\ifeof| returns true if the file
+doesn't exist). The description of the reading of this file
+(|\read_foot_file|) is deferred until we know the structure of the
+contents. After reading, the file is closed and we can open it for
+writing. For security, i.e.\ to have a defined minimal contents, we
+immediately write |\relax| to the file. In the end the macro defines
+itself to |\relax| to allow calling it again.
+
+\beginprog
+\newread\old_foot_file
+\newwrite\foot_file
+\def\foot_file_name{\jobname.fot\relax}
+\def\init_footnote{%
+ \openin\old_foot_file\foot_file_name
+ \ifeof\old_foot_file \closein\old_foot_file
+ \else \closein\old_foot_file
+ \read_foot_file
+ \fi
+ \immediate\openout\foot_file\foot_file_name
+ \immediate\write\foot_file{\relax}%
+ \global\let\init_footnote\relax
+ }
+\endprog
+
+
+\sect Remember, that we use |\foot_name_no| for the generation of a
+name for each footnote. The actual number of the footnote mark is
+stored in |\c@footnote|, the \LaTeX{} footnote counter.
+
+In the beginning of every footnote |\init_footnote| is called to
+guarantee that the handling is initialized (this especially means
+that the footnote numbers are read in by the first footnote).
+
+\beginprog
+\newcount\foot_name_no % for generating footnote mark names
+\endprog
+
+
+\sect It remains an open problem how to get the numbers there. The
+footnote numbering must be initialized to zero in the output routine
+and every footnote must increment this footnote number. The only
+thing that is expanded during the output process is the output
+routine itself and the |\write|'s, but the expanded tokens of
+|\write| are written out, not interpreted. Well, the idea is simple:
+We defer the counting to the second run and write the instructions
+that do this to the file. The counting is then done while reading
+the footnote file.
+
+\noindent That means that the output routine adds entries like
+%
+\begin{quote}
+|\c@footnote = 0|
+\end{quote}
+%
+and every footnote adds an entry that looks like
+%
+\begin{quote}
+|\advance\c@footnote by 1|\\
+|\xdef\csname f@|\<nameno> |\endcsname{\number\c@footnote}|
+\end{quote}
+%
+where \<nameno> is replaced by the current footnote name number.
+
+
+\sect The macro |\fnpp_next_footnote| determines the next footnote
+number and stores it in |\c@footnote|, the official \LaTeX{} footnote
+counter. This counter is used since |\footnotetext| constructs the
+mark in the footnote text from it. One can say that
+|\fnpp_next_footnote| is a non-typical way to step this counter, it's
+a series iterator instead of an incrementer like |\stepcounter|.
+
+The expansion of |\foot_name_no| must not be postponed until |\output|
+time because there may be more footnotes coming on this page that'll
+increase this number.
+Therefore we first define the macro |\do_write| which contains the
+|\write| and the expanded tokens which are to be put out. Every token
+that should not be expanded is prefixed by |\string| (resulting in
+character tokens that represent the token name). A |\space| must be
+inserted to separate |\csname| from |f|. The |\xdef| in the (written)
+definition code of |f@|\<nameno> is needed because the footnote file
+will be read in within a group.
+
+After writing the entry to the footnote file the number for this
+footnote is set to~0 if it is not already defined (from a previous
+run).
+
+\beginprog
+\def\fnpp_next_footnote{%
+ \init_footnote
+ \global\advance\foot_name_no\@ne
+ \edef\do_write{%
+ \write\foot_file{%
+ \string\advance\c@footnote\@ne
+ \string\expandafter\xdef
+ \string\csname\space f@\number\foot_name_no \endcsname{%
+ \string\number\c@footnote
+ }%
+ }%
+ }%
+ \do_write
+ \global\c@footnote 0\csname f@\number\foot_name_no \endcsname \relax
+ }
+\endprog
+
+
+\sect It remains the reading of the footnote file. We have to read in
+macros with names containing `|@|' characters. This will be done in
+horizontal mode, so we ignore lineends to discard undesired spaces.
+
+\beginprog
+\def\read_foot_file{%
+ \begingroup
+ \catcode`\@\CatLetter \catcode`\^^M\CatIgnore
+ \input \foot_file_name
+ \endgroup
+ }
+\endprog
+
+
+
+
+\chap Connection to the output routine.
+
+We must write the footnote number reset code at the start of each new
+page. The most easy way to do this is to add an |\immediate\write|
+to the output routine.
+
+The output routine has no associated hook. (It should, of course. This
+is no exotic wish.) So we have to add our code to it by redefining
+some cseq. In a former version we really rebound |\output|, but that
+was a leftover from the plain \TeX{} version. Then we had to check for
+special |\output| invocations, which column we're in, etc. Now we rely
+on some internals of \LaTeX{}: |\@outputpage| does the real ship out,
+we just prepend our write to the front.
+
+The reset code must not be written when no footnote was given by now.
+We can check for the binding of |\init_footnote| to detect this, it's
+|\relax| after the first footnote.
+
+\beginprog
+\let\fnpp_orig_outputpage=\@outputpage
+\def\@outputpage{%
+ \ifx \init_footnote\relax
+ \immediate\write\foot_file{\c@footnote\z@}%
+ \fi
+ \fnpp_orig_outputpage
+ }
+\endprog
+
+
+
+
+\chap The user interface.
+
+Footnotes may be produced by |\footnote|, or by |\footnotemark| and
+|\footnotetext| (the former creates the mark, the latter the text with
+the last mark). All these tags have an optional argument, a number
+that shall be used to create the mark for this specific invocation.
+
+We redefine only the handling of macro invocations without optional
+arguments. The original bindings are made available in the protected
+interface, in case footnotes are used for unusual things. (See the
+chunk on title matters below, for an example.)
+
+\beginprog
+\let\FnppOrigFootnote=\footnote % save original bindings
+\let\FnppOrigFootnotemark=\footnotemark
+
+\def\footnote{%
+ \@ifnextchar[% % ] (Emacs)
+ \@xfootnote
+ {\fnpp_next_footnote \@xfootnote[\the\c@footnote]}%
+ }
+\def\footnotemark{%
+ \@ifnextchar[% % ] (Emacs)
+ \@xfootnotemark
+ {\fnpp_next_footnote \@xfootnotemark[\the\c@footnote]}%
+ }
+\endprog
+
+
+\sect Footnote tags in minipages behave a bit differently: There
+|\footnote| and |\footnotetext| create minipage-local footnotes,
+whereas |\footnotemark| creates a `global' footnote mark. I.e., if one
+wants to make a footnote in a minipage that shall go on the page, one
+has to specify |\footnotemark| in the minipage and |\footnotetext|
+thereafter. |\footnotetext| uses the current value of the footnote
+counter, since we set it by |\fnpp_next_footnote|, everything will
+work.
+
+\LaTeX{} makes a hook available to setup the minipage enviroment. But
+the hook is initialized in a way that their own hook-enhancement
+function does not work, we have to repair it first. No comment\,\dots
+
+\beginprog
+\ifx \@minipagerestore\relax
+ \let\@minipagerestore\@empty
+\fi
+
+\g@addto@macro\@minipagerestore{%
+ \let\footnote\FnppOrigFootnote
+ }
+\endprog
+
+
+\sect But footnotes are used for other things, too. E.g., to mention
+affiliation or acknowledgements in title matters. This is done by
+|\thanks| that uses |\footnotemark| to construct the respective marks.
+The expansion of |\thanks| is done by |\maketitle| that resets the
+footnote counter afterwards. But that reset does not work with this
+package, as the footnote counter value is not used to determine the
+next one.
+
+The most simple solution is to reset |\footnotemark| during the
+evaluation of |\maketitle|. We can do that in a group since all
+side-effects of |\maketitle| should be global anyhow.
+
+\beginprog
+\let\fnpp_orig_maketitle=\maketitle
+\def\maketitle{%
+ \begingroup
+ \let\footnotemark\FnppOrigFootnotemark
+ \fnpp_orig_maketitle
+ \endgroup
+ }
+\endprog
+
+
+
+
+
+\chap The end.
+
+Well, after all we're finished with this module. We must not forget to
+restore the underscore catcode.
+
+\beginprog
+\catcode`\_=\CatUsCode
+
+\endinput
+\endprog
+
+
+\sect I would like to thank those who helped me to improve this style.
+% In particular, XXX provided XXXsubstantial parts of the code.
+
+\textsc{Chris Thompson} sent change proposals that made the code more
+robust.
+
+\textsc{Frank Mittelbach} gave the impulse to make real \LaTeX{}
+code out of the former plain \TeX{} code. (Actually, that's not as
+drastic as it sounds. I threw half the code away and used stuff
+already supplied by the \LaTeX{} kernel, then I added a few lines to
+take care of minipages and front matter.)
+
+\textsc{John Lu},
+\textsc{Sebastian Rahtz},
+and
+\textsc{Frank Thomas}
+provided error and problem reports.
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\vskip\PltxPreSectSkip
+
+\begin{rcslog}
+$StyleLog: footnpag.doc,v $
+\Revision 2.6 1995/11/10 18:21:26 schrod
+ Make |\footnotetext| usable in |minipage| environment, again.\\
+Problem reported by Sebastian Rahtz \path|<s.rahtz@elsevier.co.uk>|.
+
+\Revision 2.5 1995/08/04 00:18:34 schrod
+Made a \LaTeXe{} package from this style option.
+
+User manual is a separate document now, that's better for
+installation. Started to change the distribution into one that
+conforms to the `supported bundle guidelines.'
+
+\Revision 2.4 1995/01/01 18:54:00 schrod
+Optional arguments are supported now, |\footnotemark| may be used,
+footnotes in minipages and title matter are handled correctly.\\
+(Enhancements requested by Frank Mittelbach
+\path|<mittelbach@mzdmza.zdv.uni-mainz.de>|.)
+
+Started rewrite to a \LaTeXe{} package. Rearranged the code, used
+\LaTeX{} internals. In particular, |\@outputpage| is now redefined,
+instead of |\output|. I can throw away all checks for special output
+invocations, which column we're in, etc., this way. Still,
+documentation changes and some minor details are missing for the next
+official release.
+
+\Revision 2.3 1994/12/31 13:26:31 schrod
+Spurious messages were produced on pages without footnotes before the
+first footnote. I had to check if the footnote handling is initialized.\\
+(Bug reported at 25 Dec 93 by Frank Thomas \path|<frank@glocke.robin.de>|.
+Actually repaired at 14 Jan 94, but change was not committed until now.)
+
+\Revision 2.2 1993/02/02 11:04:18 schrod
+If the first footnote was within a group, the footnote mechanism
+was initialized a second time by the first footnote outside the group.
+With this second initialization all information about previous
+footnotes was discarded.\\
+(Bug reported on 01 Feb 93 by John Lu \path|<luj@ecn.purdue.edu>|.)
+
+\Revision 2.1 1991/11/07 19:58:34 schrod
+Set up for a new distribution, documentation is now in LaTeX.
+Added first chapter where user interface and problems are explained.
+
+\Revision 1.2 1989/04/21 00:00:00 schrod
+Advances the usability in LaTeX (|\twocolumn|),
+uses an own stream for reading,
+resets the counter with |\immediate\write|.
+(Improvements pointed out by Chris Thompson [CET].)
+
+\end{rcslog}
+
+
+\bigskip
+
+\noindent \textsl{Pre-RCS version history}.
+
+\medskip
+
+\noindent Version 1.1 removed a |\begingroup| (88-10-20).
+
+\smallskip
+
+\noindent Version 1.0 was released in August, 1987. Actually, it was a
+posting to \TeX{}hax.
+
+
+
+\end{document}
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Local Variables:
+mode: LaTeX
+TeX-brace-indent-level: 4
+indent-tabs-mode: t
+TeX-auto-untabify: nil
+TeX-auto-regexp-list: LaTeX-auto-regexp-list
+compile-command: "make footnpag.sty"
+End:
diff --git a/macros/latex/contrib/footnpag/src/test/Imakefile b/macros/latex/contrib/footnpag/src/test/Imakefile
new file mode 100644
index 0000000000..17c25f906b
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/test/Imakefile
@@ -0,0 +1,42 @@
+XCOMM $Id: Imakefile,v 1.1 1995/08/04 00:07:57 schrod Exp $
+/* ---------------------------------------------------------------------- */
+
+/*
+ * Imakefile for test of footnpag bundle
+ *
+ * (history at end)
+ */
+
+
+/* needed modules */
+#include <TeX.imk>
+
+XCOMM ------------------------------------------------------------
+XCOMM continue in Imakefile
+
+
+regression:: clean
+ $(MAKE) all
+
+
+TeXTarget(latex,many)
+TeXTarget(latex,report)
+TeXTarget(latex,late)
+TeXTarget(latex,minipage)
+TeXTarget(latex,title-2col)
+TeXTarget(latex,eqnarray-fnmark)
+
+
+
+/* ============================================================
+ *
+ * $Log: Imakefile,v $
+ * Revision 1.1 1995/08/04 00:07:57 schrod
+ * Initial commit of test files.
+ *
+
+ * ------------------------------------------------------------
+ * Local Variables:
+ * mode: Indented-Text
+ * End:
+ */
diff --git a/macros/latex/contrib/footnpag/src/test/eqnarray-fnmark.tex b/macros/latex/contrib/footnpag/src/test/eqnarray-fnmark.tex
new file mode 100644
index 0000000000..8110140078
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/test/eqnarray-fnmark.tex
@@ -0,0 +1,31 @@
+% $Id: eqnarray-fnmark.tex,v 1.1 1995/08/04 00:07:58 schrod Exp $
+%----------------------------------------------------------------------
+
+%
+% Test for footnpag with split \footnotemark/\footnotetext in eqnarray env
+%
+% [LaTeX]
+
+% Error report forwarded by Darrel Hankerson.
+% Repaired with revision 2.4
+
+
+\documentclass{article}
+
+\usepackage{footnpag}
+
+\begin{document}
+
+Text.\footnote{first footnote}
+
+\begin{eqnarray*}
+ m\ :\ \Theta & \rightarrow & [0,1]\\
+ \vartheta & \mapsto & P(T \in A \mid \vartheta)\footnotemark
+\end{eqnarray*}
+\footnotetext{Test eqnarray}
+
+More text.\footnote{last footnote}
+
+
+
+\end{document}
diff --git a/macros/latex/contrib/footnpag/src/test/late.tex b/macros/latex/contrib/footnpag/src/test/late.tex
new file mode 100644
index 0000000000..ec3d5ff30d
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/test/late.tex
@@ -0,0 +1,113 @@
+% $Id: late.tex,v 1.1 1995/08/04 00:07:58 schrod Exp $
+%----------------------------------------------------------------------
+
+%
+% Test for footnpag & first page without footnotes
+%
+% [LaTeX]
+
+% This was an error report by Frank Thomas <frank@glocke.robin.de>.
+% Repaired with version 2.3.
+
+
+\documentclass{article}
+
+\usepackage{footnpag}
+
+\date{Dezember 1993}
+\title{Bla bla bla}
+\author{Frank Thomas}
+
+\begin{document}
+
+\maketitle
+
+\begin{abstract}
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+\end{abstract}
+
+\section{Test}
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+\newpage
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+Test\footnote{Test}
+
+\newpage
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
+
+bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.
+
+Test\footnote{Test}
+
+\end{document}
diff --git a/macros/latex/contrib/footnpag/src/test/many.tex b/macros/latex/contrib/footnpag/src/test/many.tex
new file mode 100644
index 0000000000..eade1b13dc
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/test/many.tex
@@ -0,0 +1,122 @@
+% $Id: many.tex,v 1.1 1995/08/04 00:07:59 schrod Exp $
+%----------------------------------------------------------------------
+
+%
+% Test for footnpag & many footnotes
+%
+% [LaTeX]
+
+
+
+\documentclass{article}
+
+\usepackage{footnpag}
+
+\begin{document}
+
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+
+
+
+\end{document}
diff --git a/macros/latex/contrib/footnpag/src/test/minipage.tex b/macros/latex/contrib/footnpag/src/test/minipage.tex
new file mode 100644
index 0000000000..0f7cedc630
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/test/minipage.tex
@@ -0,0 +1,46 @@
+% $Id: minipage.tex,v 1.2 1995/11/10 18:21:52 schrod Exp $
+%----------------------------------------------------------------------
+
+%
+% Test for footnpag & minipages
+%
+% [LaTeX]
+
+% This was an error report by Frank Mittelbach.
+% Repaired with version 2.4.
+% And another one by sebastian raahtz
+% Repaired with version 2.6.
+
+
+
+\documentclass{article}
+
+\usepackage{footnpag}
+
+\begin{document}
+
+
+
+\section{Text}
+
+Some Text.%
+\footnote{A footnote.}
+More Text.
+%
+\begin{center}
+ \begin{minipage}{0.5\columnwidth}
+A minipage with a footnote\footnote{here}, another one\footnote{there}
+and more text and a global footnote.\footnotemark{}
+There is even a footnote text\footnotetext{tell, which number?}
+without marker.
+But that's all.
+ \end{minipage}
+\end{center}
+%
+\footnotetext{Text from minipage footnote.}
+
+Second paragraph with the last footnote.\footnote{The last one.}
+
+
+
+\end{document}
diff --git a/macros/latex/contrib/footnpag/src/test/report.tex b/macros/latex/contrib/footnpag/src/test/report.tex
new file mode 100644
index 0000000000..4a3ea061d7
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/test/report.tex
@@ -0,0 +1,128 @@
+% $Id: report.tex,v 1.1 1995/08/04 00:08:00 schrod Exp $
+%----------------------------------------------------------------------
+
+%
+% Test for footnpag & report document class
+%
+% [LaTeX]
+
+
+
+\documentclass{report}
+
+\usepackage{footnpag}
+
+\begin{document}
+
+
+
+\chapter{Kapitel}
+
+
+\section{Abschnitt}
+
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+Text mit vielen Worten.%
+\footnote{Und auch eine Fu\ss{}note dazu.}
+
+
+\end{document}
diff --git a/macros/latex/contrib/footnpag/src/test/title-2col.tex b/macros/latex/contrib/footnpag/src/test/title-2col.tex
new file mode 100644
index 0000000000..adcef6ba51
--- /dev/null
+++ b/macros/latex/contrib/footnpag/src/test/title-2col.tex
@@ -0,0 +1,72 @@
+% $Id: title-2col.tex,v 1.1 1995/08/04 00:08:01 schrod Exp $
+%----------------------------------------------------------------------
+
+%
+% Test for footnpag with title matter in twocolumn mode.
+%
+% [LaTeX]
+
+% This was an error report by Frank Mittelbach.
+% Repaired with revision 2.4.
+
+
+
+\documentclass[twocolumn]{article}
+
+\usepackage{footnpag}
+
+\begin{document}
+
+
+
+\title{Footnpag and Thanks test}
+
+\author{Joachim Schrod%
+ \thanks{Affilation}
+ \and
+ B. Luser%
+ \thanks{Who's that?}
+ }
+
+\maketitle
+
+
+\begin{abstract}
+ Abstracts with footnotes\footnote{as such} are garbage.
+\end{abstract}
+
+
+
+\section{Section}
+
+Text text text.%
+\footnote{first on first column}
+Text text text.%
+\footnote{second on first column}
+
+\newpage
+
+Text text text.%
+\footnote{first on second column}
+Text text text.%
+\footnote{second on 2nd column}
+
+
+\clearpage
+
+
+Text text text.%
+\footnote{first on first column}
+Text text text.%
+\footnote{second on first column}
+
+\newpage
+
+Text text text.%
+\footnote{first on second column}
+Text text text.%
+\footnote{second on 2nd column}
+
+
+
+\end{document}