Мне бы хотелось иметь команду, которая бы делала каждое слово заглавным, когда я использую \acl
команду acro-пакета.
\DeclareAcronym{t}{short={t},long={this is a test}}
\capitalizingcommand{\acl{t}}
Мой желаемый результат будет таким:
Это проверка
Насколько мне известно, acro-пакет поддерживает только заглавные буквы в первом слове через \Acl{t}
.
До сих пор я пробовал \ecapitalisewords
команду из mfirstuc
-package, но расширение, похоже, не работает, и latex пытается сделать сокращение заглавным, что приводит к ошибке.
Это мой рабочий или, скорее, нерабочий пример.
\documentclass{article}
\usepackage{mfirstuc}
\usepackage{acro}
\DeclareAcronym{t}{short={t},long={this is a test}}
\begin{document}
\acl{t}
%\ecapitalisewords{\acl{t}}
\end{document}
Заранее большое спасибо
решение1
Напрямую это сделать нельзя. Однако можно определить макрос, который устанавливает long-format
в \capitalisewords
группе:
\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}
Если вместо этого вы хотите изменить поведение заглавных букв во всех макросах, \Ac...
вы можете установить следующую опцию 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}
Конечно, вы также можете определить похожую команду, как в моем первом предложении, чтобы локально изменить верхний регистр. Или даже определить \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}