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)
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é.