Ordenar las notas al pie alfabéticamente o por glosario por página

Ordenar las notas al pie alfabéticamente o por glosario por página

Me gustaría crear un documento donde las entradas del glosario estén en cada página de las notas al pie y he podido hacerlo (ver MWE a continuación), pero me gustaría que las glosas de las notas al pie estén ordenadas alfabéticamente, pero no No he podido encontrar una manera de ordenar las notas a pie de página. Por el contrario, ¿existe un glosario por página?

MWE:

\documentclass{book}
\usepackage[nonumberlist]{glossaries}
\usepackage{xifthen}
\usepackage{everypage}
\makeglossaries

% enable counting the words
\glsenableentrycount

% reset counts every page
\AddEverypageHook{\glsresetall}

% populate some entries
\newglossaryentry{uno}{name=uno,description=one}
\newglossaryentry{dos}{name=dos,description=two}
\newglossaryentry{tres}{name=tres,description=three}
\newglossaryentry{quatro}{name=quatro,description=four}
\newglossaryentry{cinco}{name=cinco,description=five}

% displaying glossary entries
\newcommand\glossdisplay[2]{%
    \ifthenelse{\glsentrycurrcount{\glslabel} = 0}{%
        % first time we've seen this word on this page so add a footnote
        #1\let\thefootnote\relax\footnote{\textbf{\glslabel} #2}%
    }{%
        % not the first definition on this page so just display the word
        #1%
    }%
}
\renewcommand\glsdisplayfirst[4]{\glossdisplay{#1}{#2}}
\renewcommand\glsdisplay[4]{\glossdisplay{#1}{#2}}
\newcommand\gloss[2][\relax]{\glsdisp{#1}{#2}}

\begin{document}
    Counting to three in Spanish, \gloss[uno]{uno}, \gloss[dos]{dos}, \gloss[tres]{tres}.
    Counting to five in Spanish, \gloss[uno]{uno}, \gloss[dos]{dos}, \gloss[tres]{tres}, \gloss[quatro]{quatro}, \gloss[cinco]{cinco}.\\

    Notice how \gloss[uno]{uno}, \gloss[dos]{dos}, and \gloss[tres]{tres} only appear once in the footnotes despite being glossed three times.
    Now the real question: \textit{How do I sort the per-page glossary alphabetically?}  Perhaps there is a per-page option for the glossaries package?
\end{document}

En el documento producido, las notas al pie/entradas del glosario están ordenadas

  • uno
  • dos
  • tres
  • cuarto
  • cinco

pero me gustaría ver

  • cinco
  • dos
  • cuarto
  • tres
  • uno

Además, si me ayuda, construí el documento con:

pdflatex repro.tex
makeindex -s repro.ist -o repro.gls repro.glo
pdflatex repro.tex

Respuesta1

Esto es lo más cerca que he podido estar. he usadoglossaries-extraque amplía el glossariespaquete y proporciona recuento por unidad además del glossariesrecuento de todo el documento del paquete. Esto hace que sea más fácil contar por página.

\documentclass{book}

\usepackage{everypage}
\usepackage{glossaries-extra}

\AddEverypageHook{%
 \gdef\entrylabellist{}%
}

\GlsXtrEnableEntryUnitCounting{general}{0}{page}

\newcommand*{\entrylabellist}{}

\makeatletter
\def\@glo@sortinghandler{\@glo@sorthandler@word}%
\newcommand*{\sortpageentries}{%
 \forglsentries{\thisentry}{%
   \ifnum\glsentryprevcount{\thisentry}>0\relax
     \expandafter\@glo@sortedinsert\expandafter\entrylabellist\expandafter
       {\thisentry}%
   \fi
 }%
}

\newcommand*{\glsxtrpostlinkgeneral}{%
 \ifnum\glsentrycurrcount{\glslabel}=1\relax
   \footnotemark[1]%
   \ifdefempty\entrylabellist
   {%
     \sortpageentries
     \footnotetext[1]{\@for\thisentry:=\entrylabellist\do{%
      \glsentryname{\thisentry} \glsentrydesc{\thisentry}. }}%
   }%
   {}%
 \fi
}
\makeatother

\newglossaryentry{uno}{name=uno,description=one}
\newglossaryentry{dos}{name=dos,description=two}
\newglossaryentry{tres}{name=tres,description=three}
\newglossaryentry{quatro}{name=quatro,description=four}
\newglossaryentry{cinco}{name=cinco,description=five}


\begin{document}

Counting to three in Spanish, \gls{uno}, \gls{dos},
\gls{tres}.  Counting to five in Spanish, \gls{uno},
\gls{dos}, \gls{tres}, \gls{quatro}, \gls{cinco}.

Notice how \gls{uno}, \gls{dos}, and \gls{tres} only appear once in
the footnotes despite being glossed three times.

\newpage

Test next page.

\gls{tres}, \gls{quatro} and \gls{cinco}.
And again:
\gls{tres}, \gls{quatro} and \gls{cinco}.

\end{document}

Esto requiere dos ejecuciones de LaTeX ya que utiliza el archivo auxiliar para almacenar el recuento total de la ejecución anterior, por lo que las notas al pie no aparecerán en la primera instancia. Esto no requiere makeindex/ xindya menos que desee además un glosario completo al principio o al final del documento. La clasificación se realiza mediante datatool-baselos comandos de inserción ordenados de , a los que se accede a través de \@glo@sortedinsert(proporcionados por glossaries). Es necesario \@glo@sortinghandlerconfigurarlo en el controlador de comparación apropiado ( \@glo@sorthandler@worden este caso).

El ejemplo anterior produce

imagen de la parte superior de la página 1 con marcadores de notas a pie de página después de las primeras instancias

en la parte superior de la primera página. La nota al pie al final de la página aparece como

1 cinco cinco. dos dos. cuarto cuatro. tres tres. uno uno.

El formato se puede ajustar editando las líneas.

     \footnotetext[1]{\@for\thisentry:=\entrylabellist\do{%
      \glsentryname{\thisentry} \glsentrydesc{\thisentry}. }}%

La parte superior de la segunda página aparece como

Pruebe la página siguiente. tres 1, quatro 1 y cinco 1. Y nuevamente: tres, quatro y cinco.

con la nota al pie

1 cinco cinco. cuarto cuatro. tres tres.

Advertencia:Debido a la rutina de salida asincrónica de TeX, es posible que esto no funcione correctamente para las entradas que ocurren al final de un párrafo que abarca un salto de página.

información relacionada