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