summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/footnpag
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
Initial commit
Diffstat (limited to 'macros/latex/contrib/footnpag')
-rw-r--r--macros/latex/contrib/footnpag/CATALOG15
-rw-r--r--macros/latex/contrib/footnpag/History44
-rw-r--r--macros/latex/contrib/footnpag/INSTALL43
-rw-r--r--macros/latex/contrib/footnpag/License339
-rw-r--r--macros/latex/contrib/footnpag/MANIFEST19
-rw-r--r--macros/latex/contrib/footnpag/Makefile62
-rw-r--r--macros/latex/contrib/footnpag/README62
-rw-r--r--macros/latex/contrib/footnpag/footnpag-user.pdfbin0 -> 55665 bytes
-rw-r--r--macros/latex/contrib/footnpag/footnpag.sty580
-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
22 files changed, 2601 insertions, 0 deletions
diff --git a/macros/latex/contrib/footnpag/CATALOG b/macros/latex/contrib/footnpag/CATALOG
new file mode 100644
index 0000000000..8fe6da4001
--- /dev/null
+++ b/macros/latex/contrib/footnpag/CATALOG
@@ -0,0 +1,15 @@
+Name: footnpag
+Version: 3.0 [04 Aug 95]
+Problems-To: schrod@iti.informatik.th-darmstadt.de
+Author: Joachim Schrod
+Address: TU Darmstadt, Alexanderstr. 10, D-64283 Darmstadt, Germany.
+ No phone calls, please.
+
+Description: The footnpag package enables numbering of footnotes per
+ page. It works with all standard classes.
+
+Keywords: footnote, number, page
+
+Note: This package was originally a plain TeX macro file, send to
+ TeXhax in August 1987. The plain TeX code is still available and
+ functional.
diff --git a/macros/latex/contrib/footnpag/History b/macros/latex/contrib/footnpag/History
new file mode 100644
index 0000000000..4fd1df9ff3
--- /dev/null
+++ b/macros/latex/contrib/footnpag/History
@@ -0,0 +1,44 @@
+footnpag/History 10 Nov 95
+------------------------------------------------------------
+
+Please note: The version numbers listed here are those of the bundle.
+The macro file(s) itself have different revision numbers. In your
+mails to me you can mention any number, either of a file or of the
+bundle, that won't matter.
+
+
+Version 3.1 10 Nov 95
+
+ \footnotetext can be used in minipage environment.
+
+
+Version 3.0 04 Aug 95
+
+ LaTeX2e package.
+
+ Supports optional arguments.
+ \footnotemark may be used.
+ Footnotes in minipages and title matter (e.g., \thanks) are
+ handled correctly.
+
+ Discarded spurious messages on pages before the first footnote.
+
+
+Version 2.1 02 Feb 93
+
+ Allows the first footnote to be in a group.
+
+
+Version 2.0 07 Nov 91
+
+ LaTeX-oriented distribution, changed the name to footnpag.
+ Added usage & problems description.
+
+ Could be used with two-column mode in LaTeX.
+ Code cleanup as proposed by CET.
+
+
+Version 1.0 August 1987
+
+ Posted plain macros to TeXhax, somebody bragged there about
+ `impossible to implement'... ;-)
diff --git a/macros/latex/contrib/footnpag/INSTALL b/macros/latex/contrib/footnpag/INSTALL
new file mode 100644
index 0000000000..0cbcdcf711
--- /dev/null
+++ b/macros/latex/contrib/footnpag/INSTALL
@@ -0,0 +1,43 @@
+$Id: INSTALL,v 2.1 1995/08/04 02:04:06 schrod Exp $
+------------------------------------------------------------
+
+
+You're not on Unix? Jump ahead to `INSTALLATION BY HAND'.
+
+
+INSTALLATION ON UNIX
+====================
+
+I have supplied a Makefile for your convenience. You have to edit it
+to tell make where your TeX installation lives.
+
+Do you have a TDS-compliant installation?
+(E.g., teTeX, highly recommended.)
+
+ yes => Change the value of TEXMF to your TDS root directory.
+ no => Change even more variables (the ones below TEXMF).
+ Make sure all parent directories exist.
+
+
+Type
+ make
+
+Everything should be installed now.
+
+If you have a TDS installation structure and make complains that the
+LaTeX directory is not found, install LaTeX first.
+
+
+
+INSTALLATION BY HAND
+====================
+
+Copy footnpag.sty to some directory where LaTeX finds it.
+ The correct TDS directory name is tex/latex/misc/, relative to the
+ TDS root.
+
+Copy *.dvi from the current directory to the directory
+where you keep the documentation for your installed LaTeX styles.
+ What? You don't have such a directory? Shame on you. ;-)
+ The TDS proposes one the following directory names: doc/latex/misc
+ or doc/latex/styles/. I use the latter.
diff --git a/macros/latex/contrib/footnpag/License b/macros/latex/contrib/footnpag/License
new file mode 100644
index 0000000000..a43ea2126f
--- /dev/null
+++ b/macros/latex/contrib/footnpag/License
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ 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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/macros/latex/contrib/footnpag/MANIFEST b/macros/latex/contrib/footnpag/MANIFEST
new file mode 100644
index 0000000000..71eac1aa88
--- /dev/null
+++ b/macros/latex/contrib/footnpag/MANIFEST
@@ -0,0 +1,19 @@
+% $Id: MANIFEST,v 1.2 1995/08/04 02:04:07 schrod Exp $
+%----------------------------------------------------------------------
+
+The following files are part of the footnpag bundle:
+
+ README -- general intro, what's this package for
+ CATALOG -- catalog information about this bundle
+ INSTALL -- installation instructions
+
+ footnpag.sty -- style file
+ footnpag-user.dvi -- typeset user manual
+ footnpag-conf.dvi -- (not yet) typeset description of internal interface
+
+ History -- revision history of this package
+ MANIFEST -- this file
+ License -- GPL
+ Makefile -- will help you for installation on Unix
+ src/ -- subdirectory with my development area
+ Please read the file README in that directory.
diff --git a/macros/latex/contrib/footnpag/Makefile b/macros/latex/contrib/footnpag/Makefile
new file mode 100644
index 0000000000..9d047c2209
--- /dev/null
+++ b/macros/latex/contrib/footnpag/Makefile
@@ -0,0 +1,62 @@
+# $Id: Makefile,v 2.1 1995/08/04 02:04:08 schrod Exp $
+#----------------------------------------------------------------------
+
+default:: install
+
+
+#
+# installation
+#
+
+# root of TDS compliant installation
+
+ TEXMF = /usr/local/lib/texmf
+
+# installation target directories
+# (No need to change here for TDS installations.)
+
+ LATEX = $(TEXMF)/tex/latex
+ FOOTNPAG = $(LATEX)/misc
+
+ LATEX_DOC = $(TEXMF)/doc/latex
+ FOOTNPAG_DOC = styles
+
+
+# installation actions
+
+.PHONY: install
+
+install:: $(LATEX) $(LATEX_DOC)
+ test -d $(FOOTNPAG) || mkdir $(FOOTNPAG)
+ cp *.sty $(FOOTNPAG)
+ cd $(LATEX_DOC) ; \
+ if [ ! -d $(FOOTNPAG_DOC) ] ; \
+ then d=`echo $(FOOTNPAG_DOC) | sed 's:/.*::'` ; \
+ test -d $$d || mkdir $$d ; \
+ test -d $(FOOTNPAG_DOC) || mkdir $(FOOTNPAG_DOC) ; \
+ fi
+ cp *.dvi $(LATEX_DOC)/$(FOOTNPAG_DOC)
+
+$(LATEX):
+ @echo "You don't have a LaTeX styles directory (tree)." >&2
+ @exit 1
+
+$(LATEX_DOC):
+ @echo "You don't have a LaTeX documentation directory (tree)." >&2
+ @exit 1
+
+
+
+#
+# management tasks
+#
+
+.PHONY: export
+
+export::
+ cd src ; imkmf ; make export
+ cp $(HOME)/Notes/Copying.gpl License
+ pwd=`pwd` ; pwd=`suffix $$pwd /` ; cd .. ; \
+ gtar -czvf $$pwd.tar.gz \
+ --exclude=CVS --exclude=.cvsignore --exclude=.rcsrc $$pwd ; \
+ cp $$pwd/README $$pwd.README
diff --git a/macros/latex/contrib/footnpag/README b/macros/latex/contrib/footnpag/README
new file mode 100644
index 0000000000..e32fa10fac
--- /dev/null
+++ b/macros/latex/contrib/footnpag/README
@@ -0,0 +1,62 @@
+$Id: README,v 2.2 1995/08/04 02:04:08 schrod Exp $
+------------------------------------------------------------
+
+There is an often asked question: `I want that my footnote numbers
+starts on each page with 1. How do I do it?' The simple answer is:
+`Use the package footnpag.'
+
+
+It may be used with all standard document classes (and I assume with
+all other well written ones). `Numbering' within this option does not
+only mean supplying arabic numbers, if your style sets up appropriate
+symbols, they are used instead.
+
+
+You will need two LaTeX runs, as with cross references or citations.
+
+CAVEAT: 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.
+
+
+MANIFEST features a list of files in this distribution.
+For installation instructions, check the file INSTALL.
+
+
+Reference anonymous ftp site:
+ ftp.th-darmstadt.de [130.83.47.112]
+ directory pub/tex/latex
+ file footnpag-<version>.tar.gz
+ where <version> is the current version number
+ (a gzipped tar file)
+
+You'll also find a version of this bundle on CTAN in
+macros/latex/contrib/supported/footnpag/.
+
+
+LEGALESE
+
+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
+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 in
+the file License along with this package; if not, write to the Free
+Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+
+Share and enjoy,
+
+ Joachim
+
+--
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de
+Computer Science Department
+Technical University of Darmstadt, Germany
diff --git a/macros/latex/contrib/footnpag/footnpag-user.pdf b/macros/latex/contrib/footnpag/footnpag-user.pdf
new file mode 100644
index 0000000000..14b37a3e51
--- /dev/null
+++ b/macros/latex/contrib/footnpag/footnpag-user.pdf
Binary files differ
diff --git a/macros/latex/contrib/footnpag/footnpag.sty b/macros/latex/contrib/footnpag/footnpag.sty
new file mode 100644
index 0000000000..6a053654fb
--- /dev/null
+++ b/macros/latex/contrib/footnpag/footnpag.sty
@@ -0,0 +1,580 @@
+% $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.)
+
+
+
+
+%%%%
+%%%%
+%%%% These TeX macros were documented with the documentation system
+%%%% MAKEPROG and automatically converted to the current form.
+%%%% If you have MAKEPROG available you may transform it back to
+%%%% the original input: Remove every occurence of three percents
+%%%% and one optional blank from the beginning of a line and remove
+%%%% every line which starts with four percents. The following lex
+%%%% program will do this:
+%%%%
+%%%% %%
+%%%%
+%%%% ^%%%\ ? ;
+%%%% ^%%%%.*\n ;
+%%%%
+%%%% If you just want to print the documentation you may fetch
+%%%% the archive print-makeprog.tar.Z from ftp.th-darmstadt.de (directory
+%%%% pub/tex/latex). It contains *all* used styles -- but beware, they
+%%%% may not be in a documented form...
+%%%%
+%%%%
+%%% \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/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}