Was macht Manyfoot mit Multicol, was Fnpara nicht macht?

Was macht Manyfoot mit Multicol, was Fnpara nicht macht?

Wenn ich das fnparaPaket für Absatzfußnoten verwende:

\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}

dann überlappen sich die Fußnoten mit dem Fuß. footmiscDas Paket leidet unter dem gleichen Problem. Dies passiert jedoch nicht mit manyfootdem Paket

\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}

Was macht manyfootdas Paket, multicolwas es fnparanicht macht? Wie kann dieses Problem mit fnparaund footmiscPaketen behoben werden?

Antwort1

fnpara und footmisc verwenden mehr oder weniger denselben Algorithmus, der ursprünglich aus einem Beispiel von Don Knuth im TeXbook stammt. An einem bestimmten Punkt kombinieren sie alle gesammelten Fußnoten auf der Seite und gliedern sie in einen Absatz (der Befehl dafür heißt \makefootnoteparagraph). Die Breite dieses Absatzes wird im Makro explizit festgelegt als

 \hsize=\columnwidth

Dies ist in LaTeX normalerweise richtig, da Sie im Zweispaltenmodus möchten, dass ein solcher Absatz die Breite der Spalte hat. Bei mehrspaltigem Modus wird jedoch erwartet, dass Fußnoten sich über alle Spalten erstrecken. In diesem Fall sollte der Absatz auf eingestellt werden \textwidth.

Eine mögliche Problemumgehung besteht darin, diesen Befehl so zu patchen, dass er \textwidthstattdessen verwendet wird, d. h.

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

das sowohl für fnpara als auch für footmisc funktioniert.

Beachten Sie jedoch, dass dies kein universeller Patch ist, d. h. es wäre falsch, wenn Sie nicht multicol, sondern stattdessen \twocolumndie Option twocolumn für die Klasse verwenden!

PS: Ich habe nicht überprüft, wie das in manyfoot gemacht wird. Dieses Paket nimmt viel aufwändigere Manipulationen vor und verwendet wahrscheinlich einen anderen Algorithmus, um Absatzfußnoten zu erhalten, und stößt daher nicht auf das Problem.

verwandte Informationen