5

The TeXbook proposes, p. 398sq, a system to obtain paragraphed note.

That is, instead to obtain

  1. Footnote.
  2. Footnote.
  3. Footnote

obtain :

  1. Footnote 2. Footnote 3. Footnote.

In the same paragraph.

This system is used by some package like footmisc and eledmac. As maintener of the last, I am abutting on a problem.

This system (provided by the great Knuth himself !), needs hboxes to work. Consquently, with a long note, while "normal" footnote will be splitted by TeX, paragraphed footnote can't be splitted, because, it use \hbox.

As I can reproduce in this MWE, in plainTeX.

%% This file try to reconstruct a MWE example for paragraphed not from the TeXBook  
% p. 398/399
% Specific output routine, which call \makefootnoteparagraph
\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi
        \unvbox255
        \ifvoid\footins\else % footnote info is present
          \vskip\skip\footins \footnoterule \makefootnoteparagraph\fi
        }

% Here, some code for the ouput
\def\makefootnoteparagraph{\unvbox\footins \makehboxofhboxes
  \setbox0=\hbox{\unhbox0 \removehboxes}
  \baselineskip=\footnotebaselineskip\noindent\unhbox0\par}
\def\makehboxofhboxes{\setbox0=\hbox{}
  \loop\setbox2=\lastbox \ifhbox2 \setbox0=\hbox{\box2\unhbox0}\repeat}
\def\removehboxes{\setbox0=\lastbox
  \ifhbox0{\removehboxes}\unhbox0 \fi}

% Here, the code for \getfactor
{\catcode`p=12 \catcode`t=12
          \csname expandafter\endcsname\gdef
          \csname getfactor\endcsname#1pt{#1}
}
% Here, some setting for paragraphed footnote
\newskip\footglue \footglue=1.5em plus.3em minus.3em
              \newdimen\footnotebaselineskip \footnotebaselineskip=10pt
              \dimen0=\footnotebaselineskip \multiply\dimen0 by 1024
              \divide \dimen0 by \hsize \multiply\dimen0 by 64
\xdef\fudgefactor{\expandafter\getfactor\the\dimen0 }


% Here the \footnote redefined (for this MWE, I don't need any marks)
\def\footnote#1{%
  \insert\footins{\floatingpenalty=20000
                \setbox0=\hbox{%
  #1\penalty-10\hskip\footglue} \dp0=0pt \ht0=\fudgefactor\wd0 \box0}
}
\footnote{s}\footnote{s}
\footnote{Long note Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lobortis, nibh quis luctus porttitor, metus metus accumsan erat, ac commodo ante lorem tempus velit. Nulla ut ex mi. Curabitur magna tortor, egestas quis convallis nec, venenatis non nibh. Aenean et lacinia elit. Aenean ornare fermentum tincidunt. Etiam sed metus ipsum. Nulla accumsan non justo at tincidunt. Integer sed est est. Nullam non velit diam. Proin ut ante risus. Fusce ac enim libero. Proin ac risus nec nisi semper viverra eu ut ligula. Nulla orci ligula, elementum vel auctor eu, suscipit ac mi. Duis in hendrerit nunc, vitae efficitur lectus. Nam tristique eros a lacus posuere, quis placerat sapien venenatis.
Nulla facilisi. Vivamus dapibus nunc neque, eget maximus neque accumsan nec. Fusce suscipit, sapien id pellentesque vestibulum, orci tortor efficitur felis, eget tempus ex augue euismod tortor. Praesent lobortis diam non orci accumsan, sit amet condimentum eros semper. Mauris vel quam non nulla egestas aliquet ornare eu ligula. Sed tristique ultrices sem imperdiet placerat. Maecenas rhoncus, magna sit amet efficitur tristique, elit odio semper magna, ut aliquet magna odio nec lectus. Nullam tristique dolor id purus lobortis placerat.
Etiam sit amet rhoncus nunc. Pellentesque fermentum mi elit, et posuere augue ultricies nec. Curabitur vulputate, purus id molestie lacinia, nisl massa feugiat nunc, non consectetur mi nisi non mauris. Morbi blandit, odio a efficitur fringilla, nulla libero fermentum lectus, vel finibus odio felis eu sem. Nullam sit amet condimentum ligula. Nulla rutrum lacus eget ipsum laoreet elementum. Curabitur in molestie felis. Nunc ut malesuada orci.
Suspendisse tempor ligula in elementum dignissim. Sed vehicula feugiat hendrerit. Curabitur ultricies massa eget dapibus laoreet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed blandit eleifend nulla, vel feugiat lorem elementum at. Sed a magna sollicitudin, hendrerit lacus vitae, malesuada nibh. Sed commodo, justo vitae varius auctor, nisl purus lacinia enim, ut rutrum libero nisl ut odio. Phasellus vel massa diam. Nulla facilisi. Ut sagittis blandit volutpat.
Morbi lobortis sollicitudin felis, at accumsan eros blandit eget. Donec venenatis, dolor eu tristique sagittis, diam arcu dignissim ligula, eget sagittis nulla arcu scelerisque nisl. Etiam ac lacus leo. Donec consequat diam quis risus venenatis sodales. Duis tempus nibh quis mi fermentum, eget dapibus diam elementum. Nunc eu ultrices odio. Vivamus in ipsum sapien. Aliquam erat volutpat. Nunc euismod eros volutpat massa ultrices porttitor. Ut scelerisque sit amet mi a tincidunt. Sed nec porta urna. Proin eu arcu eget felis euismod ultrices. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lobortis, nibh quis luctus porttitor, metus metus accumsan erat, ac commodo ante lorem tempus velit. Nulla ut ex mi. Curabitur magna tortor, egestas quis convallis nec, venenatis non nibh. Aenean et lacinia elit. Aenean ornare fermentum tincidunt. Etiam sed metus ipsum. Nulla accumsan non justo at tincidunt. Integer sed est est. Nullam non velit diam. Proin ut ante risus. Fusce ac enim libero. Proin ac risus nec nisi semper viverra eu ut ligula. Nulla orci ligula, elementum vel auctor eu, suscipit ac mi. Duis in hendrerit nunc, vitae efficitur lectus. Nam tristique eros a lacus posuere, quis placerat sapien venenatis.
Nulla facilisi. Vivamus dapibus nunc neque, eget maximus neque accumsan nec. Fusce suscipit, sapien id pellentesque vestibulum, orci tortor efficitur felis, eget tempus ex augue euismod tortor. Praesent lobortis diam non orci accumsan, sit amet condimentum eros semper. Mauris vel quam non nulla egestas aliquet ornare eu ligula. Sed tristique ultrices sem imperdiet placerat. Maecenas rhoncus, magna sit amet efficitur tristique, elit odio semper magna, ut aliquet magna odio nec lectus. Nullam tristique dolor id purus lobortis placerat.
Etiam sit amet rhoncus nunc. Pellentesque fermentum mi elit, et posuere augue ultricies nec. Curabitur vulputate, purus id molestie lacinia, nisl massa feugiat nunc, non consectetur mi nisi non mauris. Morbi blandit, odio a efficitur fringilla, nulla libero fermentum lectus, vel finibus odio felis eu sem. Nullam sit amet condimentum ligula. Nulla rutrum lacus eget ipsum laoreet elementum. Curabitur in molestie felis. Nunc ut malesuada orci.
Suspendisse tempor ligula in elementum dignissim. Sed vehicula feugiat hendrerit. Curabitur ultricies massa eget dapibus laoreet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed blandit eleifend nulla, vel feugiat lorem elementum at. Sed a magna sollicitudin, hendrerit lacus vitae, malesuada nibh. Sed commodo, justo vitae varius auctor, nisl purus lacinia enim, ut rutrum libero nisl ut odio. Phasellus vel massa diam. Nulla facilisi. Ut sagittis blandit volutpat.
Morbi lobortis sollicitudin felis, at accumsan eros blandit eget. Donec venenatis, dolor eu tristique sagittis, diam arcu dignissim ligula, eget sagittis nulla arcu scelerisque nisl. Etiam ac lacus leo. Donec consequat diam quis risus venenatis sodales. Duis tempus nibh quis mi fermentum, eget dapibus diam elementum. Nunc eu ultrices odio. Vivamus in ipsum sapien. Aliquam erat volutpat. Nunc euismod eros volutpat massa ultrices porttitor. Ut scelerisque sit amet mi a tincidunt. Sed nec porta urna. Proin eu arcu eget felis euismod ultrices.
 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi lobortis, nibh quis luctus porttitor, metus metus accumsan erat, ac commodo ante lorem tempus velit. Nulla ut ex mi. Curabitur magna tortor, egestas quis convallis nec, venenatis non nibh. Aenean et lacinia elit. Aenean ornare fermentum tincidunt. Etiam sed metus ipsum. Nulla accumsan non justo at tincidunt. Integer sed est est. Nullam non velit diam. Proin ut ante risus. Fusce ac enim libero. Proin ac risus nec nisi semper viverra eu ut ligula. Nulla orci ligula, elementum vel auctor eu, suscipit ac mi. Duis in hendrerit nunc, vitae efficitur lectus. Nam tristique eros a lacus posuere, quis placerat sapien venenatis.
Nulla facilisi. Vivamus dapibus nunc neque, eget maximus neque accumsan nec. Fusce suscipit, sapien id pellentesque vestibulum, orci tortor efficitur felis, eget tempus ex augue euismod tortor. Praesent lobortis diam non orci accumsan, sit amet condimentum eros semper. Mauris vel quam non nulla egestas aliquet ornare eu ligula. Sed tristique ultrices sem imperdiet placerat. Maecenas rhoncus, magna sit amet efficitur tristique, elit odio semper magna, ut aliquet magna odio nec lectus. Nullam tristique dolor id purus lobortis placerat.
Etiam sit amet rhoncus nunc. Pellentesque fermentum mi elit, et posuere augue ultricies nec. Curabitur vulputate, purus id molestie lacinia, nisl massa feugiat nunc, non consectetur mi nisi non mauris. Morbi blandit, odio a efficitur fringilla, nulla libero fermentum lectus, vel finibus odio felis eu sem. Nullam sit amet condimentum ligula. Nulla rutrum lacus eget ipsum laoreet elementum. Curabitur in molestie felis. Nunc ut malesuada orci.
Suspendisse tempor ligula in elementum dignissim. Sed vehicula feugiat hendrerit. Curabitur ultricies massa eget dapibus laoreet. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed blandit eleifend nulla, vel feugiat lorem elementum at. Sed a magna sollicitudin, hendrerit lacus vitae, malesuada nibh. Sed commodo, justo vitae varius auctor, nisl purus lacinia enim, ut rutrum libero nisl ut odio. Phasellus vel massa diam. Nulla facilisi. Ut sagittis blandit volutpat.
Morbi lobortis sollicitudin felis, at accumsan eros blandit eget. Donec venenatis, dolor eu tristique sagittis, diam arcu dignissim ligula, eget sagittis nulla arcu scelerisque nisl. Etiam ac lacus leo. Donec consequat diam quis risus venenatis sodales. Duis tempus nibh quis mi fermentum, eget dapibus diam elementum. Nunc eu ultrices odio. Vivamus in ipsum sapien. Aliquam erat volutpat. Nunc euismod eros volutpat massa ultrices porttitor. Ut scelerisque sit amet mi a tincidunt. Sed nec porta urna. Proin eu arcu eget felis euismod ultrices.
}\footnote{s}
s

\bye

And so, TeX can't split the long paragraphed notes, because it using hbox.

Any idea of an alternative way to produce similar paragraphed notes without hboxes?. The contrainst are :

  1. Not manually split the long note to the footnote (but some TeX algorithme could do it).
  2. Produce paragraphed footnote.
3
  • Using a \vbox? Commented Feb 15, 2015 at 18:59
  • no, if I use a \vbox, I lost the parapgraphed not (or I dind't find the good way to use it).
    – Maïeul
    Commented Feb 15, 2015 at 19:00
  • I have found a way. I can't provide MWE for plain TeX, but it's working for eledmac. The explanation is here. github.com/maieul/ledmac/commit/…
    – Maïeul
    Commented Mar 15, 2015 at 11:17

1 Answer 1

3

OK, you wrote that you solved the problem in a different way, but you kept the question open; so I assume that you are interested in a second solution.

First a remark: your MWE is not valid TeX code as you access \wd0 for a hbox whose width is larger than \maxdimen. TeX shall be compiled with a check for arithmetic overflow. See, for example, section 9 of tex.web and Knuth repeats that sometimes; see here (p.234).

Of course, the solution by Knuth is meant for short footnotes only as he wrote on page 395 of the TeXbook:

And now for our next trick, let's consider an application to short footnotes.

You may know this already as in the text you linked in the comment the footnote length is limited to \maxdimen.

Knuth suggests on page 398 of the TeXbook:

It would be possible to take the contents of \box\footins shown previously and to reformat everything into a paragraph, but such an operation would be needlessly complicated.

I choose a different path for my solution. It uses a hbox only for individual lines and places the footnotes in a vbox so there should be no limit on the length of the footnote.

This is my idea: Save the last line of a footnote in a hbox and each time a new footnote is written use this hbox as a kind of prefix. In the moment the footnotes are output check if the last line has to be appended.

I change the default plain TeX macros and adapt and extend your example. I use \insertpenalties to detect split footnote insertions.

\dimen\footins=\vsize                                % changed
\newbox\fnlastline                                   % new
\newskip\footglue \footglue=1.5em plus.3em minus.3em % from DEK's solution

\catcode`@=11
\def\vfootnote#1{\insert\footins\bgroup
  \interlinepenalty\interfootnotelinepenalty
  \splittopskip\ht\strutbox
  \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
  \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
  \setbox0=\vbox\bgroup\noindent            % new
     \ifvoid\fnlastline                     % new
     \else\unhbox\fnlastline\hskip\footglue % new
     \fi                                    % new
     #1\thinspace                           % changed
     \futurelet\next\fo@t}
\def\@foot{\egroup                     % changed
  \unvbox0\global\setbox0=\lastbox     % new
  \global\setbox\fnlastline=\hbox      % new
     {\unhbox0\unskip\unskip\unpenalty}% new
  \egroup}                             % new
\def\plainoutput{\ifnum\outputpenalty>-\@MM                         % new
     \ifnum\insertpenalties>0                                       % new
     \else\ifvoid\fnlastline                                        % new
          \else\setbox\footins=\vbox{\unvbox\footins\box\fnlastline}% new
          \fi                                                       % new
     \fi                                                            % new
  \else\ifvoid\fnlastline                                           % new
       \else\setbox\footins=\vbox{\unvbox\footins\box\fnlastline}%    new
       \fi                                                          % new
  \fi                                                               % new
  \shipout\vbox{\makeheadline\pagebody\makefootline}%
  \advancepageno
  \ifnum\outputpenalty>-\@MM \else\dosupereject\fi}
\catcode`@=12

one\footnote\dag{one} two\footnote\ddag{two} three\footnote\dag{three
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Morbi lobortis, nibh quis luctus porttitor, metus metus accumsan erat,
ac commodo ante lorem tempus velit. Nulla ut ex mi. Curabitur magna
tortor, egestas quis convallis nec, venenatis non nibh.  Aenean et
lacinia elit. Aenean ornare fermentum tincidunt.  Etiam sed metus
ipsum. Nulla accumsan non justo at tincidunt.  Integer sed est
est. Nullam non velit diam. Proin ut ante risus. Fusce ac enim libero.
Proin ac risus nec nisi semper viverra eu ut ligula.  Nulla orci
ligula, elementum vel auctor eu, suscipit ac mi.  Duis in hendrerit
nunc, vitae efficitur lectus.  Nam tristique eros a lacus posuere,
quis placerat sapien venenatis.  Nulla facilisi. Vivamus dapibus nunc
neque, eget maximus neque accumsan nec. Fusce suscipit, sapien id
pellentesque vestibulum, orci tortor efficitur felis, eget tempus ex
augue euismod tortor. Praesent lobortis diam non orci accumsan, sit
amet condimentum eros semper. Mauris vel quam non nulla egestas
aliquet ornare eu ligula. Sed tristique ultrices sem imperdiet
placerat. Maecenas rhoncus, magna sit amet efficitur tristique, elit
odio semper magna, ut aliquet magna odio nec lectus. Nullam tristique
dolor id purus lobortis placerat.  Etiam sit amet rhoncus
nunc. Pellentesque fermentum mi elit, et posuere augue ultricies
nec. Curabitur vulputate, purus id molestie lacinia, nisl massa
feugiat nunc, non consectetur mi nisi non mauris. Morbi blandit, odio
a efficitur fringilla, nulla libero fermentum lectus, vel finibus odio
felis eu sem. Nullam sit amet condimentum ligula. Nulla rutrum lacus
eget ipsum laoreet elementum. Curabitur in molestie felis. Nunc ut
malesuada orci.  Suspendisse tempor ligula in elementum dignissim. Sed
vehicula feugiat hendrerit. Curabitur ultricies massa eget dapibus
laoreet. Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Sed blandit eleifend nulla, vel
feugiat lorem elementum at. Sed a magna sollicitudin, hendrerit lacus
vitae, malesuada nibh. Sed commodo, justo vitae varius auctor, nisl
purus lacinia enim, ut rutrum libero nisl ut odio. Phasellus vel massa
diam. Nulla facilisi. Ut sagittis blandit volutpat.  Morbi lobortis
sollicitudin felis, at accumsan eros blandit eget. Donec venenatis,
dolor eu tristique sagittis, diam arcu dignissim ligula, eget sagittis
nulla arcu scelerisque nisl. Etiam ac lacus leo. Donec consequat diam
quis risus venenatis sodales. Duis tempus nibh quis mi fermentum, eget
dapibus diam elementum. Nunc eu ultrices odio. Vivamus in ipsum
sapien. Aliquam erat volutpat. Nunc euismod eros volutpat massa
ultrices porttitor. Ut scelerisque sit amet mi a tincidunt. Sed nec
porta urna. Proin eu arcu eget felis euismod ultrices. Lorem ipsum
dolor sit amet, consectetur adipiscing elit. Morbi lobortis, nibh quis
luctus porttitor, metus metus accumsan erat, ac commodo ante lorem
tempus velit. Nulla ut ex mi. Curabitur magna tortor, egestas quis
convallis nec, venenatis non nibh. Aenean et lacinia elit. Aenean
ornare fermentum tincidunt. Etiam sed metus ipsum. Nulla accumsan non
justo at tincidunt. Integer sed est est. Nullam non velit diam. Proin
ut ante risus. Fusce ac enim libero. Proin ac risus nec nisi semper
viverra eu ut ligula. Nulla orci ligula, elementum vel auctor eu,
suscipit ac mi. Duis in hendrerit nunc, vitae efficitur lectus. Nam
tristique eros a lacus posuere, quis placerat sapien venenatis.  Nulla
facilisi. Vivamus dapibus nunc neque, eget maximus neque accumsan
nec. Fusce suscipit, sapien id pellentesque vestibulum, orci tortor
efficitur felis, eget tempus ex augue euismod tortor. Praesent
lobortis diam non orci accumsan, sit amet condimentum eros
semper. Mauris vel quam non nulla egestas aliquet ornare eu
ligula. Sed tristique ultrices sem imperdiet placerat. Maecenas
rhoncus, magna sit amet efficitur tristique, elit odio semper magna,
ut aliquet magna odio nec lectus. Nullam tristique dolor id purus
lobortis placerat.  Etiam sit amet rhoncus nunc. Pellentesque
fermentum mi elit, et posuere augue ultricies nec. Curabitur
vulputate, purus id molestie lacinia, nisl massa feugiat nunc, non
consectetur mi nisi non mauris. Morbi blandit, odio a efficitur
fringilla, nulla libero fermentum lectus, vel finibus odio felis eu
sem. Nullam sit amet condimentum ligula. Nulla rutrum lacus eget ipsum
laoreet elementum. Curabitur in molestie felis. Nunc ut malesuada
orci.  Suspendisse tempor ligula in elementum dignissim. Sed vehicula
feugiat hendrerit. Curabitur ultricies massa eget dapibus
laoreet. Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Sed blandit eleifend nulla, vel
feugiat lorem elementum at. Sed a magna sollicitudin, hendrerit lacus
vitae, malesuada nibh. Sed commodo, justo vitae varius auctor, nisl
purus lacinia enim, ut rutrum libero nisl ut odio. Phasellus vel massa
diam. Nulla facilisi. Ut sagittis blandit volutpat.  Morbi lobortis
sollicitudin felis, at accumsan eros blandit eget. Donec venenatis,
dolor eu tristique sagittis, diam arcu dignissim ligula, eget sagittis
nulla arcu scelerisque nisl. Etiam ac lacus leo. Donec consequat diam
quis risus venenatis sodales. Duis tempus nibh quis mi fermentum, eget
dapibus diam elementum. Nunc eu ultrices odio. Vivamus in ipsum
sapien. Aliquam erat volutpat. Nunc euismod eros volutpat massa
ultrices porttitor. Ut scelerisque sit amet mi a tincidunt. Sed nec
porta urna. Proin eu arcu eget felis euismod ultrices.  Lorem ipsum
dolor sit amet, consectetur adipiscing elit. Morbi lobortis, nibh quis
luctus porttitor, metus metus accumsan erat, ac commodo ante lorem
tempus velit. Nulla ut ex mi. Curabitur magna tortor, egestas quis
convallis nec, venenatis non nibh. Aenean et lacinia elit. Aenean
ornare fermentum tincidunt. Etiam sed metus ipsum. Nulla accumsan non
justo at tincidunt. Integer sed est est. Nullam non velit diam. Proin
ut ante risus. Fusce ac enim libero. Proin ac risus nec nisi semper
viverra eu ut ligula. Nulla orci ligula, elementum vel auctor eu,
suscipit ac mi. Duis in hendrerit nunc, vitae efficitur lectus. Nam
tristique eros a lacus posuere, quis placerat sapien venenatis.  Nulla
facilisi. Vivamus dapibus nunc neque, eget maximus neque accumsan
nec. Fusce suscipit, sapien id pellentesque vestibulum, orci tortor
efficitur felis, eget tempus ex augue euismod tortor. Praesent
lobortis diam non orci accumsan, sit amet condimentum eros
semper. Mauris vel quam non nulla egestas aliquet ornare eu
ligula. Sed tristique ultrices sem imperdiet placerat. Maecenas
rhoncus, magna sit amet efficitur tristique, elit odio semper magna,
ut aliquet magna odio nec lectus. Nullam tristique dolor id purus
lobortis placerat.  Etiam sit amet rhoncus nunc. Pellentesque
fermentum mi elit, et posuere augue ultricies nec. Curabitur
vulputate, purus id molestie lacinia, nisl massa feugiat nunc, non
consectetur mi nisi non mauris. Morbi blandit, odio a efficitur
fringilla, nulla libero fermentum lectus, vel finibus odio felis eu
sem. Nullam sit amet condimentum ligula. Nulla rutrum lacus eget ipsum
laoreet elementum. Curabitur in molestie felis. Nunc ut malesuada
orci.  Suspendisse tempor ligula in elementum dignissim. Sed vehicula
feugiat hendrerit. Curabitur ultricies massa eget dapibus laoreet. }
four\footnote\ddag{four} Lorem ipsum dolor sit amet, consectetur
adipiscing elit.  Morbi lobortis, nibh quis luctus porttitor, metus
metus accumsan erat, ac commodo ante lorem tempus velit. Nulla ut ex
mi. Curabitur magna tortor, egestas quis convallis nec, venenatis non
nibh.  Aenean et lacinia elit. Aenean ornare fermentum tincidunt.
Etiam sed metus ipsum. Nulla accumsan non justo at tincidunt.  Integer
sed est est. Nullam non velit diam. Proin ut ante risus. Fusce ac enim
libero.  Proin ac risus nec nisi semper viverra eu ut ligula.  Nulla
orci ligula, elementum vel auctor eu, suscipit ac mi.  Duis in
hendrerit nunc, vitae efficitur lectus.  Nam tristique eros a lacus
posuere, quis placerat sapien venenatis.  Nulla facilisi. Vivamus
dapibus nunc neque, eget maximus neque accumsan nec. Fusce suscipit,
sapien id pellentesque vestibulum, orci tortor efficitur felis, eget
tempus ex augue euismod tortor. Praesent lobortis diam non orci
accumsan, sit amet condimentum eros semper. Mauris vel quam non nulla
egestas aliquet ornare eu ligula. Sed tristique ultrices sem imperdiet
placerat. Maecenas rhoncus, magna sit amet efficitur tristique, elit
odio semper magna, ut aliquet magna odio nec lectus. Nullam tristique
dolor id purus lobortis placerat.  Etiam sit amet rhoncus
nunc. Pellentesque fermentum mi elit, et posuere augue ultricies
nec. Curabitur vulputate, purus id molestie lacinia, nisl massa
feugiat nunc, non consectetur mi nisi non mauris. Morbi blandit, odio
a efficitur fringilla, nulla libero fermentum lectus, vel finibus odio
felis eu sem. Nullam sit amet condimentum ligula. Nulla rutrum lacus
eget ipsum laoreet elementum. Curabitur in molestie felis. Nunc ut
malesuada orci.  Suspendisse tempor ligula in elementum dignissim. Sed
vehicula feugiat hendrerit. Curabitur ultricies massa eget dapibus
laoreet. Pellentesque habitant morbi tristique senectus et netus et
malesuada fames ac turpis egestas. Sed blandit eleifend nulla, vel
feugiat lorem elementum at. Sed a magna sollicitudin, hendrerit lacus
vitae, malesuada nibh. Sed commodo, justo vitae varius auctor, nisl
purus lacinia enim, ut rutrum libero nisl ut odio. Phasellus vel massa
diam. Nulla facilisi. Ut sagittis blandit volutpat.  Morbi lobortis
sollicitudin felis, at accumsan eros blandit eget. Donec venenatis,
dolor eu tristique sagittis, diam arcu dignissim ligula, eget sagittis
nulla arcu scelerisque nisl. Etiam ac lacus leo. Donec consequat diam
quis risus venenatis sodales. Duis tempus nibh quis mi fermentum, eget
dapibus diam elementum. Nunc eu ultrices odio. Vivamus in ipsum
sapien. Aliquam erat volutpat. Nunc euismod eros volutpat massa
ultrices porttitor. Ut scelerisque sit amet mi a tincidunt. Sed nec
porta urna. Proin eu arcu eget felis euismod ultrices.  Lorem ipsum
dolor sit amet, consectetur adipiscing elit. Morbi lobortis, nibh quis
luctus porttitor, metus metus accumsan erat, ac commodo ante lorem
tempus velit. Nulla ut ex mi. Curabitur magna tortor, egestas quis
convallis nec, venenatis non nibh. Aenean et lacinia elit. Aenean
ornare fermentum tincidunt. Etiam sed metus ipsum. Nulla accumsan non
justo at tincidunt. Integer sed est est. Nullam non velit diam. Proin
ut ante risus. Fusce ac enim libero. Proin ac risus nec nisi semper
viverra eu ut ligula. Nulla orci ligula, elementum vel auctor eu,
suscipit ac mi. Duis in hendrerit nunc, vitae efficitur lectus. Nam
tristique eros a lacus posuere, quis placerat sapien venenatis.  Nulla
facilisi. Vivamus dapibus nunc neque, eget maximus neque accumsan
nec. Fusce suscipit, sapien id pellentesque vestibulum, orci tortor
efficitur felis, eget tempus ex augue euismod tortor. Praesent
lobortis diam non orci accumsan, sit amet condimentum eros
semper. Mauris vel quam non nulla egestas aliquet ornare eu
ligula. Sed tristique ultrices sem imperdiet
placerat. Maecenas rhoncus, magna sit amet efficitur tristique, elit
odio semper magna, ut aliquet magna odio nec lectus. Nullam tristique
dolor id purus lobortis placerat.  Etiam sit amet rhoncus
nunc. Pellentesque fermentum mi elit, et posuere augue ultricies
nec.
\par five\footnote\dag{five}

\vfil\eject

six\footnote\dag{six} seven\footnote\ddag{seven}
eight\footnote\dag{\vtop{\hbox{eight}\hbox{eight}}}
nine\footnote\dag{\vbox{\hbox{nine}\hbox{nine}}}
ten\footnote\ddag{ten}

\bye

I programmed the solution but have not used it myself except in the above example. So the code might need some additional changes to get the flexibility for a production environment. For example, the \par in front of "five" is needed as otherwise the next footnote is printed earlier than its reference; of course, the output routine has to be called once in a while.

1
  • my solution didnt work in practice. Mayn thanks for your explanation. I won't have time to look for it before… I don't know when.
    – Maïeul
    Commented Apr 30, 2017 at 8:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .