Как подсчитать общее количество аббревиатур (\usepackage{acro} и \usepackage{xassoccnt})?
МВЭ:
\documentclass{article}
\usepackage{xassoccnt}
\setlength{\parindent}{0cm}
\usepackage{acro}
\acsetup{
% first-style=long-short,
first-style=footnote,
list/display=used,
format/short=\bf
}
%
\DeclareAcronym{usa}{
short=USA,
long=United States of America,
}
\DeclareAcronym{eu}{
short=EU,
long=European Union,
}
\DeclareAcronym{ussr}{
short=USSR,
long=Union of Soviet Socialist Republics,
}
%
\NewTotalDocumentCounter{totacro}
\preto\ac{%
\stepcounter{totacro}
}
%
\begin{document}
There are \TotalValue{totacro} acronyms in this document
\hrulefill
\ac{usa}, \ac{usa}
\ac{eu}, \ac{eu}
\ac{ussr}, \ac{ussr}
\hrulefill
\printacronyms[heading=none, sort]
\end{document}
Результат, который я получаю:
Правильный результат:
Есть3Сокращения в этом документе
решение1
В вашем примере исправление \DeclareAcronym
даст желаемый эффект, но я предполагаю, что цель — отследить используемые аббревиатуры.
Вы можете перебрать все аббревиатуры \AcroAcronymsMap
и использовать команды \acroifused<TF>
/ \acroifsingle<TF>
для фильтрации по мере необходимости, например
\AcroAcronymsMap{
\acroifusedT{#1}{
\stepcounter{totacro}
}
}
который будет работать с используемым состоянием в этой точке документа. Если вы используете опцию, single
вы, вероятно, захотите \acroifsingleF
также ограничить это.
Вы можете дополнительно уточнить это, чтобы отфильтровать или иным образом использовать другие свойства аббревиатуры с помощью макросов, описанных в разделе «25.3. Команды для использования в определениях шаблонов» в документации пакета.
\documentclass{article}
\usepackage{xassoccnt}
\NewTotalDocumentCounter{totacro}
\usepackage{acro}
\acsetup{
first-style=footnote,
list/display=used,
format/short=\bfseries,
}
\DeclareAcronym{usa}{
short=USA,
long=United States of America,
}
\DeclareAcronym{eu}{
short=EU,
long=European Union,
}
\DeclareAcronym{ussr}{
short=USSR,
long=Union of Soviet Socialist Republics,
}
\begin{document}
There are \TotalValue{totacro} acronyms in this document
\hrulefill
\ac{usa}, \ac{usa}
\ac{eu}, \ac{eu}
\ac{ussr}, \ac{ussr}
\hrulefill
\printacronyms[heading=none, sort]
\AcroAcronymsMap{
\acroifusedT{#1}{
\stepcounter{totacro}
}
}
\end{document}