Eu gostaria de ter um comando que colocasse cada palavra em maiúscula quando eu usasse um \acl
comando 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 \ecapitalisewords
comando 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-format
em \capitalisewords
um 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}
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}