Como contar o número total de siglas (\usepackage{acro} & \usepackage{xassoccnt})?

Como contar o número total de siglas (\usepackage{acro} & \usepackage{xassoccnt})?

Como contar o número total de siglas (\usepackage{acro} & \usepackage{xassoccnt})?

MWE:

\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}

O resultado que obtenho:

insira a descrição da imagem aqui

Resultado correto:

3siglas neste documento

Responder1

O patch \DeclareAcronymterá o efeito desejado no seu exemplo, mas presumo que o objetivo seja rastrear os acrônimos usados.

Você pode iterar todos os acrônimos \AcroAcronymsMape usar os comandos \acroifused<TF>/ \acroifsingle<TF>para filtrar conforme apropriado, por exemplo

\AcroAcronymsMap{
  \acroifusedT{#1}{
    \stepcounter{totacro}
  }
}

que operará no estado usado naquele ponto do documento. Se você estiver usando a singleopção, provavelmente desejará usá-la \acroifsingleFtambém.

Você pode refinar ainda mais isso para filtrar ou usar outras propriedades de acrônimos por meio das macros documentadas em "25.3. Comandos a serem usados ​​em definições de modelo" na documentação do pacote.

\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}

informação relacionada