From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/footnpag/CATALOG | 15 + macros/latex/contrib/footnpag/History | 44 ++ macros/latex/contrib/footnpag/INSTALL | 43 ++ macros/latex/contrib/footnpag/License | 339 ++++++++++++ macros/latex/contrib/footnpag/MANIFEST | 19 + macros/latex/contrib/footnpag/Makefile | 62 +++ macros/latex/contrib/footnpag/README | 62 +++ macros/latex/contrib/footnpag/footnpag-user.pdf | Bin 0 -> 55665 bytes macros/latex/contrib/footnpag/footnpag.sty | 580 +++++++++++++++++++++ macros/latex/contrib/footnpag/src/Imakefile | 73 +++ macros/latex/contrib/footnpag/src/README | 31 ++ macros/latex/contrib/footnpag/src/TODO | 29 ++ macros/latex/contrib/footnpag/src/footnpag-doc.sty | 58 +++ .../latex/contrib/footnpag/src/footnpag-user.tex | 133 +++++ macros/latex/contrib/footnpag/src/footnpag.doc | 559 ++++++++++++++++++++ macros/latex/contrib/footnpag/src/test/Imakefile | 42 ++ .../contrib/footnpag/src/test/eqnarray-fnmark.tex | 31 ++ macros/latex/contrib/footnpag/src/test/late.tex | 113 ++++ macros/latex/contrib/footnpag/src/test/many.tex | 122 +++++ .../latex/contrib/footnpag/src/test/minipage.tex | 46 ++ macros/latex/contrib/footnpag/src/test/report.tex | 128 +++++ .../latex/contrib/footnpag/src/test/title-2col.tex | 72 +++ 22 files changed, 2601 insertions(+) create mode 100644 macros/latex/contrib/footnpag/CATALOG create mode 100644 macros/latex/contrib/footnpag/History create mode 100644 macros/latex/contrib/footnpag/INSTALL create mode 100644 macros/latex/contrib/footnpag/License create mode 100644 macros/latex/contrib/footnpag/MANIFEST create mode 100644 macros/latex/contrib/footnpag/Makefile create mode 100644 macros/latex/contrib/footnpag/README create mode 100644 macros/latex/contrib/footnpag/footnpag-user.pdf create mode 100644 macros/latex/contrib/footnpag/footnpag.sty create mode 100644 macros/latex/contrib/footnpag/src/Imakefile create mode 100644 macros/latex/contrib/footnpag/src/README create mode 100644 macros/latex/contrib/footnpag/src/TODO create mode 100644 macros/latex/contrib/footnpag/src/footnpag-doc.sty create mode 100644 macros/latex/contrib/footnpag/src/footnpag-user.tex create mode 100644 macros/latex/contrib/footnpag/src/footnpag.doc create mode 100644 macros/latex/contrib/footnpag/src/test/Imakefile create mode 100644 macros/latex/contrib/footnpag/src/test/eqnarray-fnmark.tex create mode 100644 macros/latex/contrib/footnpag/src/test/late.tex create mode 100644 macros/latex/contrib/footnpag/src/test/many.tex create mode 100644 macros/latex/contrib/footnpag/src/test/minipage.tex create mode 100644 macros/latex/contrib/footnpag/src/test/report.tex create mode 100644 macros/latex/contrib/footnpag/src/test/title-2col.tex (limited to 'macros/latex/contrib/footnpag') 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. + + + Copyright (C) 19yy + + 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. + + , 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-.tar.gz + where 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 Binary files /dev/null and b/macros/latex/contrib/footnpag/footnpag-user.pdf 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 . +% 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@|\', where \ +%%% 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@|\ |\endcsname{\number\c@footnote}| +%%% \end{quote} +%%% % +%%% where \ 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@|\ 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||. + +%%% \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||.) + +%%% 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||. +%%% 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||.) + +%%% \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 +#include + +#include + +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 + +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 + +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 . +% 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@|\', where \ +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@|\ |\endcsname{\number\c@footnote}| +\end{quote} +% +where \ 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@|\ 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||. + +\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||.) + +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||. +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||.) + +\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 + +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 . +% 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} -- cgit v1.2.3