Only print a footnote of a acronym once per page in the footnotes.- LaTeX

220 Views Asked by At

I want the acronym package to only print a footnote, if its not already printed on that specific page. And give the \acf{XX} the same number in the text. It should look like this:

Text
The USA¹ are country as well as the UAE², but the USA¹ are bigger.

___________________
1 United States of America, 2 United Arabic Emirates

Next page:

The UAE¹ are still a country.

___________________
1 United Arabic Emirates

But it looks like this:

Text
The USA¹ are country as well as the UAE², but the USA³ are bigger.

___________________
1 United States of America, 2 United Arabic Emirates, 3 United States of America

Next page:

The UAE¹ are still a country.

___________________
1 United Arabic Emirates

My code:

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[footnote]{acronym}
\usepackage{hyperref}
\usepackage{perpage}
\MakePerPage[1]{footnote} 



\begin{document}

\section*{Acronyms}
\begin{acronym}[ECU]
\acro{USA}{United States of America}
\acro{UAE}{United Arabic Emirates}
%[...]
\end{acronym}
\newpage

\section{Text}
The \acf{USA} are a country as well as the \acf{UAE}, but the \acf{USA} are bigger.
\newpage
The \acf{USA} are still a country.
\end{document}

I tried a lot but couldnt find out a Solution on my own - Maby someone here is better in LaTeX as me and could provide me some help.

Greetings Tristan.

1

There are 1 best solutions below

0
Robert On

When you use \acf you request a "full acronym", so you explicitly override what the package would normally do. If you use \af instead, you'll only get the footnote the first time.

As for "first time¨: the acronym package tracks whether it has spelled out the acronym already. You can reset this counter with \acresetall. This is independent of pages. In your example with the forced page break you could simply add \acresetall after \newpage. In larger documents you could add it to each \section or \chapter, or have it done automatically with the etoolbox package or look into this answer to hook it into a page break.