Ok, so my solution. And also answer to @david-carlisle.
First, why I want to have not in only one side ? because it's for eledpar, which allow to typeset texte in // : original language in one said, translation in other said. So it could be useful to have notes for some side.
Second, we have to know that eledpar insert \newpage between each page. So the MWE which I will provide now try to imitate it. There are some problems if you do it with normal page breaking, but there is no reason to have this need with normal page breaking ;-).
So there is three problem.
- Print the footnote only on one side. A simple test is enough.
- Ensure that long footnote will not :
a. Shorten the page where they are not printed.
b. Overlap line number in the page where there are printed.
- Problem of last line of notes too close of previous. That was my question.
For point 2, what we do is, in the ouput routine, checking parity of the current page. If the next page should not have notes, we set the \footins count to 0 and the \footins skip to 0pt. In the next page should have notes, we reset these count and skip to default value.
The point 3 is the most problematic, and was my question.The problem is that TeX, when a \insert is too long for a page, add at less one line to the insert box at the begining of new page construction, even if the previous insert box was not void.
So in my case, I have one line too much. And this line has a bad glue with the previous line. The solution I have found is to split the \footins box in two : the first part, and the last line, the "too much" line. And print them after. I have some adjusting for skip between the two part to do, but is quite easy.
In an ideal situation, I will prevent this "too much line" but changing the \footins dimen . In this example, already complex I won't. But in eledpar, I will. I have made test. It's working.
So the final "MWE".
\documentclass{article}
\dimen\footins=\dimexpr\textheight - \baselineskip\relax
\usepackage[showframe]{geometry}
\usepackage{blindtext}
\makeatletter
\newif\iffootinsnotprinted
\gdef \@makecol {
\ifvoid\footins
\setbox\@outputbox \box\@cclv
\else
\setbox\@outputbox \vbox {%
\boxmaxdepth \@maxdepth
\unvbox \@cclv
\ifodd\c@page%
\vskip \skip\footins
\color@begingroup
\normalcolor
\splittopskip=0pt
\footnoterule%
\footnotesize
\iffootinsnotprinted
\setbox\footins=\vbox{
\vsplit\footins to \dimexpr\ht\footins-1pt\relax
\vskip \dimexpr-0.5\baselineskip-0.5\lineskip-0.5pt\relax
\unvbox\footins}
\global\footinsnotprintedfalse
\fi
\unvbox\footins
\color@endgroup
\else
\ifvoid\footins\else
\global\footinsnotprintedtrue
\fi
\fi%
}%
\fi
\let\@elt\relax
\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
\ifodd\c@page
\global\count\footins=0
\global\skip\footins=0pt%
\else
\global\count\footins=1000
\global\skip\footins=\footskip
\fi
}
\makeatother
\begin{document}
Here will be eledpar Right page\footnote{\blindtext[16]
\textbf{2}}
\newpage
even more After. In eledpar, here will be left page. even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page. even more After. In eledpar, here will be left page. even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page. even more After. In eledpar, here will be left page. even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page. even more After. In eledpar, here will be left page. even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After. In eledpar, here will be left page.even more After.
\newpage
Here will be eledpar Right page
\end{document}
And so the result
Of course, I don't think many people should use this type of construction. As I said in prelimary, there is two limits:
- one line to much in notes after the first output. That can be solved by changing the \footins dimen.
- \newpage is a necessity for setting right \count\footins. However, in my original problem, I have a new page. I don't think anyone would like to have not only for one side if not typessetting text in parallel. However, If someone would like, I thinks the problem could be solved by a false output routine (like
\output={\unvbox255 \penalty\outputpenalty}
mentionned in TeXBook p. 255).
\unvbox \footins
which looks unboxed to me.