Movendo a margem inferior para abrir espaço para notas de rodapé

Movendo a margem inferior para abrir espaço para notas de rodapé

Vi muitas perguntas semelhantes, mas não vi nenhuma resposta. Quero que as notas de rodapé apareçam abaixo do corpo principal do texto, sem alterar o tamanho do corpo principal. Somente no caso de uma nota de rodapé muito grande (deve ter margem inferior própria, inferior à margem do texto principal), quero que ela mova o corpo principal do texto para cima. Aqui está uma ideia aproximada do que estou procurando (desculpe pelas minhas habilidades de pintura)O layout da página

Aqui está o mais próximo que cheguei até agora

\begin{luacode}
function enlarge_page()
  tex.print("\\enlargethispage{\\custom_distance}")
end
\end{luacode}

\let\oldfootnote\footnote
\renewcommand{\footnote}[1]{%
  \directlua{enlarge_page()} % Call the Lua function to enlarge the page
  \oldfootnote{#1}%
}

ou seja, não muito longe: a distância de deslocamento é incorreta, não leva em conta o número de linhas de uma nota de rodapé, a separação diferente entre a primeira nota de rodapé e o texto, e entre as próprias notas de rodapé. Qualquer tentativa de incluir mais detalhes resultou em uma mensagem de erro. Estou usando a classe de memórias. Existe alguma maneira de conseguir isso?

UPD: Eu não uso Lua em nenhum outro lugar, então se houver uma solução no XeLaTex, posso usá-la

UPD2: Aqui está aproximadamente a lógica que estou procurando:

if footnote in page : lower bottom margin by a specific constant amount
for every footnote in page : lower bottom margin by distance between footnotes + (footnote length/55)* line height 
% There are roughly 55 characters per line in the footnotes
if bottom margin < the lowest possible point: bottom margin = the lowest possible point.

Acho que isso deveria ser possível em Lua, considerando que consegui diminuir a margem de cada nota de rodapé.

informação relacionada