% FNPARA.STY % A LaTeX style to typeset footnotes in run-on paragraphs. % See end of this file (after \endinput) for comments. % % Copyright 1988, 1995, 2012 Chris Rowley, Dominik Wujastyk, % and Bradley A. Smith. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % This work has the LPPL maintenance status `maintained'. % % The Current Maintainer of this work are the above copyright holders. % % This work consists of the file fnpara.sty. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 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 Dominik Wujastyk 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 - http://www.baysmith.com/ --------------------------- Modified 10 March 2012 Updated to be explicitly under the LPPL, per agreement of all authors. Web site for Bradley Smith contact.