Как подсчитать общее количество аббревиатур (\usepackage{acro} и \usepackage{xassoccnt})?

Как подсчитать общее количество аббревиатур (\usepackage{acro} и \usepackage{xassoccnt})?

Как подсчитать общее количество аббревиатур (\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}

Связанный контент