How does \footnotesep work anyway?
Apart from similar code for minipage footnotes, the only use of \footnotesep
in the standard format version of footnotes is its two occurrences in the definition of \foonotetext
packages such as footmisc
will have similar code, depending on options used.
\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
\@makefntext{%
\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}%
% %%%%%%%%%%%
\color@endgroup}}%
the first use locally sets \splittopskip
so that if a footnote is split over a page the baseline of the section carried over is \footnotesep
from the top of the insertion box.
The second use is for the spacing at the start of each footnote where a rule with zero depth and width and height \footnotesep
is inserted. Also at the end of each footnote a rule with zero height and width and the depth of a \strut
is inserted.
There is no particular rule that says either \footnotesep
or the height of a \strut should be 70% of the \baselineskip
each of these lengths can be set interdependently.
In your case if you add \showoutput
you will see each line of footnote text is
.\hbox(10.425+4.08003)x369.88582, glue set 265.5038fil
So the height of the box is coming from \footnotesep
and the depth coming from \dp\strutbox
adding up to a little over 14.404pt so slightly more than your grid spacing. You need to set the strutbox to be of a size suitable for your baseline, and set \footnotesep
to \ht\strutbox
in order to get exact spacing here. (Or at least set \footnotesep
to \dimexpr\baselineskip-\dp\strutbox
)
The problem is that you use \small
with a \baselineskip
of 14.5pt. \small
itself uses a \baselineskip
of 13.6pt. This means that the \strut
of \small
has a depth of 0.3*13.6pt = 4.08pt, whereas with a \baselineskip
of 14.5pt
that would normally be 0.3*14.5pt = 4.35pt. As setting \baselineskip
does not alter the \strut
you run with the \strut
of \small
, thus you miss 4.35-4.08=0.27pt. You have to compensate this by adding that to \footnotesep
, which means that the correct value is 10.15+0.27=10.42pt, slightly smaller than your estimated value.