diff options
Diffstat (limited to 'obsolete/macros/latex209/contrib/misc/fnpara.sty')
-rw-r--r-- | obsolete/macros/latex209/contrib/misc/fnpara.sty | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/obsolete/macros/latex209/contrib/misc/fnpara.sty b/obsolete/macros/latex209/contrib/misc/fnpara.sty new file mode 100644 index 0000000000..03e909b7e3 --- /dev/null +++ b/obsolete/macros/latex209/contrib/misc/fnpara.sty @@ -0,0 +1,138 @@ +% FNPARA.STY +% A LaTeX style to typeset footnotes in run-on paragraphs. +% See end of this file (after \endinput) for comments. +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% From LaTeX.tex : +\long\def\@footnotetext#1{\insert\footins{\footnotesize +%CCCC ---the next four lines are probably redundant, since: +% the paragraphing takes place later; +% and this style of footnote never gets split. + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox +%CCCC ---these two lines will need to be reproduced when doing the unboxing. + \hsize\columnwidth + \@parboxrestore +%CCCC + \floatingpenalty \@MM +\edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark} +%CCCC --- need to set each footnote in an hbox and apply +% the fudge factor here: + \setbox0=\hbox{% + \@makefntext +%CCCC --- this needs a parameter +% --- the rule should be moved to the beginning of the footnote +% paragraph: +% --- but the \ignorespaces should be left here. +% \rule{\z@}{\footnotesep} + {\ignorespaces + #1\strut +%CCCC --- penalty to help line breaking in footnote para goes here: +% value from TeXbook. + \penalty -10 + \hskip\footglue + } % end of parameter + } % end of \hbox + \dp0=0pt \ht0=\fudgefactor\wd0 \box0 + } % end of \footins + } % end of \def +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%CCCC --- from TeXbook +\newskip\footglue \footglue=1em plus.3em minus.3em +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Cut down from ARTICLE.TEX : +\long\def\@makefntext#1{{$^{\@thefnmark}$}\nobreak\hskip.5em\relax#1} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% From LaTeX.TEX: +\def\@makecol{\ifvoid\footins \setbox\@outputbox\box\@cclv + \else\setbox\@outputbox + \vbox{\boxmaxdepth \maxdepth + \unvbox\@cclv\vskip\skip\footins\footnoterule + \global\setbox1\vbox{\makefootnoteparagraph}\unvbox1}\fi + \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats + \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth + \@texttop\dimen128=\dp\@outputbox\unvbox\@outputbox + \vskip-\dimen128\@textbottom} + \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\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 |