Plan 9 from Bell Labs’s /usr/web/sources/contrib/steve/root/sys/lib/texmf/tex/latex/misc/fnpara.sty

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


% FNPARA.STY
% A LaTeX style to typeset footnotes in run-on paragraphs.
% See end of this file (after \endinput) for comments.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% From latex.ltx :
\long\def\@mpfootnotetext#1{%
  \global\setbox\@mpfootins\vbox{%
    \unvbox\@mpfootins
    \reset@font\footnotesize
    \hsize\columnwidth
    \@parboxrestore
    \protected@edef\@currentlabel
         {\csname p@mpfootnote\endcsname\@thefnmark}%
    \color@begingroup
    \setbox0=\hbox{%
      \@makefntext{%
        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox
        \penalty -10
        \hskip\footglue
      }%
    }%
    \dp0=0pt \ht0=\fudgefactor\wd0 \box0
    \color@endgroup}}
\long\def\@footnotetext#1{\insert\footins{%
    \reset@font\footnotesize
    \interlinepenalty\interfootnotelinepenalty
    \splittopskip\footnotesep
    \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
    \hsize\columnwidth \@parboxrestore
    \protected@edef\@currentlabel{%
       \csname p@footnote\endcsname\@thefnmark
    }%
    \color@begingroup
    \setbox0=\hbox{%
      \@makefntext{%
        \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox
        \penalty -10
        \hskip\footglue
      }%
    }%
    \dp0=0pt \ht0=\fudgefactor\wd0 \box0
    \color@endgroup}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%CCCC --- from TeXbook
\newskip\footglue \footglue=1em plus.3em minus.3em
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Cut down from article.cls :
\long\def\@makefntext#1{%
%    \parindent 1em%
%    \noindent
%    \hb@xt@1.8em{\hss\@makefnmark}#1
    \hb@xt@.5em{\hss\@makefnmark}\hskip.5em#1
}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% From latex.ltx:
\def\endminipage{%
    \par
    \unskip
    \ifvoid\@mpfootins\else
      \vskip\skip\@mpfootins
      \normalcolor
      \footnoterule
%      \unvbox\@mpfootins
      \mpmakefootnoteparagraph
    \fi
    \global\@minipagefalse   %% added 24 May 89
  \color@endgroup
  \egroup
  \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}}
\def \@makecol {%
   \ifvoid\footins
     \setbox\@outputbox \box\@cclv
   \else
     \setbox\@outputbox \vbox {%
       \boxmaxdepth \@maxdepth
       \unvbox \@cclv
       \vskip \skip\footins
       \color@begingroup
         \normalcolor
         \footnoterule
%         \unvbox \footins
         \makefootnoteparagraph
       \color@endgroup
       }%
   \fi
   \xdef\@freelist{\@freelist\@midlist}%
   \global \let \@midlist \@empty
   \@combinefloats
   \ifvbox\@kludgeins
     \@makespecialcolbox
   \else
     \setbox\@outputbox \vbox to\@colht {%
       \@texttop
       \dimen@ \dp\@outputbox
       \unvbox \@outputbox
       \vskip -\dimen@
       \@textbottom
       }%
   \fi
   \global \maxdepth \@maxdepth
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% From TeXbook, p.398 ff., AVOIDING the  redefinition of \\ in LaTeX!!
{\catcode`p=12 \catcode`t=12 \gdef\@ennumber#1pt{#1}}

{\footnotesize \newdimen\footnotebaselineskip
%CCCC --definitely needed:
  \global
  \footnotebaselineskip=\normalbaselineskip}

\dimen0=\footnotebaselineskip \multiply\dimen0 by 1024
\divide \dimen0 by \columnwidth \multiply\dimen0 by 64
\xdef\fudgefactor{\expandafter\@ennumber\the\dimen0 }

\def\makefootnoteparagraph{\unvbox\footins \makehboxofhboxes
  \setbox0=\hbox{\unhbox0 \removehboxes}
%CCCC  ---now we are ready to set the paragraph:
    \hsize\columnwidth
    \@parboxrestore
    \baselineskip=\footnotebaselineskip
    \noindent
%CCCC ---this is where the strut is needed:
  \rule{\z@}{\footnotesep}%
  \unhbox0\par}
%
%
\def\mpmakefootnoteparagraph{\unvbox\@mpfootins \makehboxofhboxes
  \setbox0=\hbox{\unhbox0 \removehboxes}
%CCCC  ---now we are ready to set the paragraph:
    \hsize\columnwidth
    \@parboxrestore
    \baselineskip=\footnotebaselineskip
    \noindent
%CCCC ---this is where the strut is needed:
  \rule{\z@}{\footnotesep}%
  \unhbox0\par}
\def\makehboxofhboxes{\setbox0=\hbox{}
  \loop\setbox2=\lastbox \ifhbox2 \setbox0=\hbox{\box2\unhbox0}\repeat}
\def\removehboxes{\setbox0=\lastbox
  \ifhbox0{\removehboxes}\unhbox0 \fi}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\endinput

                           FNPARA.STY
    A LaTeX style to typeset footnotes in run-on paragraphs.

History:

A vain attempt at this LaTeX modification was tried in late
September 1988 by Dominik Wujastyk, and sent to TeXhax and UKTeX
for comment.  Chris Rowley came up with a working
version a few days later, but it still needs thorough testing.

The Style:

This LaTeX style changes the way LaTeX does footnotes.  With this
style invoked (\documentstyle[fnpara]{article}), footnotes will
be typeset in a running paragraph, instead of one above another.
It is suitable for texts such as critical editions, which contain
many short footnotes.

This is based on the TeX macros described by Knuth in the
TeXbook, Dirty Tricks, pages 398--400.  It is  not tested beyond
some simple examples.   In particular, it has not been tested
properly in connection with even the simplest of environments, nor with
other floats.

(In fact, ordinary LaTeX footnotes sometimes do not work well
if they need splitting (e.g. producing blank pages,
or appearing in shufled form): but these
problems should not affect this style.
I --CR-- have sent in a Bug Report about some
of these problems.)

Be aware of Knuth's note on the limitations of this method of
doing the job:  the TeX stack is used four times per footnote,
and the stack is limited (TeXbook pp. 300--301).  So if you have
very many footnotes (in the hundreds) and encounter
  "! TeX capacity exceeded, sorry [... save size ...]"
errors, you may need to break your text into smaller sections.
Fortunately, this is very easy to do with LaTeX.  And the
footnote counter can be reset to make the joins seamless.

Chris Rowley
Office tel: (England) 01 794 0575
Janet: CA_ROWLEY@UK.AC.OPEN.ACS.VAX

Dominik Wujastyk
Office tel: (England) 01 387 4477 x 3013
Janet: Wujastyk@UK.AC.UCL.EUCLID


October 3, 1988
---------------------------
Modified 11/12/95
Updated with new copies of relevant definitions from base files, and
added definitions for paragraph footnotes inside minipages

Bradley Smith
(612) 624-1535
basmith@prometheus.chem.umn.edu

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.