coloque todas as palavras em letras maiúsculas em um acrônimo (comando \acl no pacote acro)

coloque todas as palavras em letras maiúsculas em um acrônimo (comando \acl no pacote acro)

Eu gostaria de ter um comando que colocasse cada palavra em maiúscula quando eu usasse um \aclcomando do pacote acro.

\DeclareAcronym{t}{short={t},long={this is a test}}
\capitalizingcommand{\acl{t}}

Minha saída desejada seria:

Isto é um teste

Pelo que eu sei, o pacote acro só suporta a capitalização da primeira palavra via \Acl{t}.

Até agora tentei o \ecapitalisewordscomando do mfirstuc-package, mas a expansão parece não funcionar e o latex tenta colocar o atalho em maiúscula, o que resulta em um erro.

Este é o meu exemplo funcional, ou melhor, não funcional.

\documentclass{article}
\usepackage{mfirstuc}
\usepackage{acro}

\DeclareAcronym{t}{short={t},long={this is a test}}
\begin{document}

\acl{t}
%\ecapitalisewords{\acl{t}}

\end{document}

Muito obrigado antecipadamente

Responder1

Você não pode fazer isso diretamente. No entanto, você pode definir uma macro que seja definida long-formatem \capitalisewordsum grupo:

\documentclass{article}
\usepackage{mfirstuc}
\usepackage{acro}

\DeclareAcronym{t}{short={t},long={this is a test}}

\newcommand*\accapitalizelong[1]{%
  \begingroup
    \acsetup{long-format=\capitalisewords}%
    #1%
  \endgroup  
}

\begin{document}

\acl{t}

\accapitalizelong{\acl{t}}

\acl{t}

\end{document}

insira a descrição da imagem aqui

Se você quiser alterar geralmente o comportamento de letras maiúsculas de todas as \Ac... macros, poderá definir a opção uc-cmd:

\documentclass{article}
\usepackage{mfirstuc}
\usepackage{acro}

\DeclareAcronym{t}{short={t},long={this is a test}}

\acsetup{uc-cmd=\capitalisewords}

\begin{document}

\acl{t}

\Acl{t}

\end{document}

Claro que você também pode definir um comando semelhante como na minha primeira sugestão para alterar localmente as letras maiúsculas. Ou até mesmo definir um \ACL:

\documentclass{article}
\usepackage{mfirstuc}
\usepackage{acro}

\DeclareAcronym{t}{short={t},long={this is a test}}

\NewDocumentCommand\ACL{sm}{%
  \begingroup
    \acsetup{uc-cmd=\capitalisewords}%
    \IfBooleanTF{#1}{\Acl*{#2}}{\Acl{#2}}%
  \endgroup
}


\begin{document}

\acl{t}

\Acl{t}

\ACL{t}

\end{document}

informação relacionada