Gostaria de criar um documento onde as entradas do glossário estivessem em cada página das notas de rodapé e consegui fazer isso (veja MWE abaixo), mas gostaria que as glosas das notas de rodapé fossem classificadas em ordem alfabética, mas tenho não consegui encontrar uma maneira de classificar as notas de rodapé. Por outro lado, existe um glossário 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}
No documento produzido, as entradas de notas de rodapé/glossário são classificadas
- um
- dos
- tres
- quatro
- cinco
mas eu gostaria de ver
- cinco
- dos
- quatro
- tres
- um
Além disso, se ajudar, criei o documento com:
pdflatex repro.tex
makeindex -s repro.ist -o repro.gls repro.glo
pdflatex repro.tex
Responder1
Este é o mais próximo que consegui chegar. eu useiglossaries-extra
que amplia o glossaries
pacote e fornece contagem por unidade, além da glossaries
contagem de todo o documento do pacote. Isso torna mais 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}
Isso requer duas execuções do LaTeX, pois ele usa o arquivo auxiliar para armazenar a contagem total da execução anterior, de modo que as notas de rodapé não aparecerão na primeira instância. Isso não requer makeindex
/ xindy
a menos que você também queira um glossário completo no início ou no final do documento. A ordenação é feita através datatool-base
dos comandos de inserção ordenada do, que são acessados através de \@glo@sortedinsert
(fornecido por glossaries
). Isso requer \@glo@sortinghandler
ser definido para o manipulador de comparação apropriado ( \@glo@sorthandler@word
neste caso).
O exemplo acima produz
no topo da primeira página. A nota de rodapé na parte inferior da página aparece como
A formatação pode ser ajustada editando as linhas
\footnotetext[1]{\@for\thisentry:=\entrylabellist\do{%
\glsentryname{\thisentry} \glsentrydesc{\thisentry}. }}%
O topo da segunda página aparece como
com a nota de rodapé
Embargo:devido à rotina de saída assíncrona do TeX, isso pode não funcionar corretamente para entradas que ocorrem no final de um parágrafo que abrange uma quebra de página.