¿Cómo restablecer el contador de notas al pie en cada página (peor de los casos)?

¿Cómo restablecer el contador de notas al pie en cada página (peor de los casos)?

La solución utilizada enesta preguntatiene varios inconvenientes. Sólo funciona con \footnotelayout{m}o \globalcounter{footnote}. Si el paralelo se divide en dos páginas, el contador no se reinicia hastatodolas columnas están vacías. Si un párrafo se divide en dos páginas, las notas a pie de página pensarán que están en la primera página.

\documentclass{article}
\usepackage{paracol}
\usepackage[nopar]{lipsum}

\usepackage{everypage}
\AddEverypageHook{\setcounter{footnote}{0}}

\begin{document}
\sloppy
\begin{paracol}{2}
  left column\footnote{a footnote}
  \switchcolumn%  
  right column\footnote{a footnote}

  \switchcolumn*% 
  \lipsum[1-3]\footnote{2nd footnote}
  \switchcolumn%      
  \lipsum[1-3]\footnote{2nd footnote}
\end{paracol} 
\end{document}

Aquí hay una captura de pantalla que demuestra el problema:

manifestación

Respuesta1

Esta solución modifica \footnotey \footnotemaek(renombrada por paracol) restablece el contador cuando la página cambia. Utiliza el contador lastfootnotepagepara comparar, ya que paracol mantiene contadores separados para cada columna.

El número de página de cada uno \footnotese \footnotemarkescribe en el archivo auxiliar, ya que esta es la única manera de obtener el número de página correcto para los párrafos divididos en dos páginas. Sin embargo, se necesitan dos ejecuciones para funcionar.

Resulta que paracol ya proporciona un índice para el número total de \footnotesys \footnotemarkhasta el momento.

\documentclass{article}
\usepackage{paracol}
\usepackage[nopar]{lipsum}

\newcounter{footnotepage}
%\globalcounter{footnotepage}% only use with \footnotelayout{m}

\makeatletter
\newcommand{\checkfootnotepage}{%
  \protected@write\@auxout{}{\string\newfootnotepage{\number\pcol@nfootnotes}{\thepage}}%
\bgroup
  \@ifundefined{footnotepage\number\pcol@nfootnotes}{\count1=\value{page}}%
    {\count1=\csname footnotepage\number\pcol@nfootnotes\endcsname\relax}%
  \ifnum\value{footnotepage}<\count1\relax
    \setcounter{footnotepage}{\count1}%
    \setcounter{footnote}{0}%
  \fi
\egroup}

\newcommand{\newfootnotepage}[2]% #1 = index, #2 = page
 {\expandafter\xdef\csname footnotepage#1\endcsname{#2}}

\def\pcol@@footnote{% footnote for paracol
  \@ifnextchar[\@xfootnote{\checkfootnotepage
    \stepcounter\@mpfn
    \protected@xdef\@thefnmark{\thempfn}%
    \@footnotemark\@footnotetext}}

\def\pcol@@footnotemark{% \footnotemark for paracol
  \@ifnextchar[\@xfootnotemark
    {\checkfootnotepage% added
    \stepcounter{footnote}%
    \protected@xdef\@thefnmark{\thefootnote}%
    \@footnotemark}}
\makeatother

\begin{document}
\sloppy
\begin{paracol}{2}
  left column\footnote{a footnote}
  \switchcolumn%  
  right column\footnote{a footnote}

  \switchcolumn*% 
  \lipsum[1-3]\footnote{2nd footnote}
  \switchcolumn%      
  \lipsum[1-3]\footnote{2nd footnote}
\end{paracol} 
\end{document}

manifestación

información relacionada