¿Qué le hace manyfoot a multicol que no hace fnpara?

¿Qué le hace manyfoot a multicol que no hace fnpara?

Si uso el fnparapaquete para notas al pie de párrafo:

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}
\usepackage{fnpara}
\begin{document}
\begin{multicols}{2}
\lipsum[1]
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\footnote{This is a test.}\footnote{This is a test.}\footnote{This is a test.}
\lipsum[1-10]
\end{multicols}
\end{document}

entonces las notas a pie de página se superponen al pie de página. footmiscEl paquete sufre el mismo problema. Sin embargo, esto no sucede con manyfootel paquete.

\documentclass{article}
\usepackage{multicol}
\usepackage{lipsum}
\usepackage[para]{manyfoot}
\DeclareNewFootnote[para]{A}
\begin{document}
\begin{multicols}{2}
\lipsum[1]
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\footnoteA{This is a test.}\footnoteA{This is a test.}\footnoteA{This is a test.}
\lipsum[1-10]
\end{multicols}
\end{document}

¿Qué hace manyfootel paquete con multicollo fnparaque no? ¿Cómo se puede solucionar este problema con los paquetes fnparaand footmisc?

Respuesta1

fnpara y footmisc están usando el mismo algoritmo (más o menos) originalmente de un ejemplo de Don Knuth en el TeXbook. En algún momento, combinan todas las notas al pie recopiladas en la página y las desempaquetan en un párrafo (el comando que hace esto se llama \makefootnoteparagraph) El ancho de ese párrafo se establece explícitamente en la macro como

 \hsize=\columnwidth

Esto suele ser correcto en LaTeX, ya que en el modo de dos columnas desea que dicho párrafo tenga el ancho de la columna. Sin embargo, dentro de las columnas múltiples, la expectativa es que las notas a pie de página abarquen todas las columnas, por lo que en ese caso el párrafo debe establecerse en \textwidth.

Entonces, una posible solución es parchear ese comando para usarlo \textwidthen su lugar, es decir,

\usepackage{etoolbox}
\patchcmd{\makefootnoteparagraph}
   {\columnwidth}{\textwidth}
   {\typeout{Success}}{\typeout{patch failed}}

que funciona tanto para fnpara como para footmisc.

Pero tenga en cuenta que este no es un parche universal, es decir, sería incorrecto si no usara multicol, sino que usara \twocolumno la opción de dos columnas para la clase.

PD: no se ha comprobado cómo se hace en muchos pies. Ese paquete realiza manipulaciones mucho más elaboradas y probablemente utiliza un algoritmo diferente para obtener notas a pie de página de los párrafos y, por lo tanto, no se encuentra con el problema.

información relacionada