TransWikia.com

Capitalize the first letter in acronym list

TeX - LaTeX Asked by Torstein I. Bø on January 17, 2021

When using the acronym package I would like to capitalize the first letter in the acronym description (e.g., Direct current). But when used in text I would like to have the word in lower letters.

documentclass{article}
usepackage{acronym}

begin{document}
begin{acronym}
acro{DC}{direct current}
end{acronym}

Batteries run on ac{DC}.
end{document}

Output:

DC direct current

Batteries run on direct current (DC).

2 Answers

You can patch the AC@@acro macro that's responsible for printing the list of acronyms:

documentclass{article}
usepackage{acronym}
usepackage{etoolbox}
makeatletter
patchcmd{AC@@acro}{] #3}{] MakeUppercase #3}{}{}
patchcmd{AC@@acro}{] #3}{] MakeUppercase #3}{}{}
makeatother

%%% Alternative way (commented out because you may not have the package)
% usepackage{regexpatch}
% makeatletter
% xpatchcmd*{AC@@acro}{] #3}{] MakeUppercase #3}{}{}
% makeatother

begin{document}
begin{acronym}
acro{DC}{direct current}
end{acronym}

Batteries run on ac{DC}.
end{document}

Update

With the most recent (2020) release of acronym things have changed (and may also change in the future). The right patch, current as of December 2020 is

documentclass{article}
usepackage{acronym}
usepackage{etoolbox}
makeatletter
expandafterpatchcmdcsname AC@AC@prefix{}@acroendcsname{{#3}}{{MakeUppercase #3}}{}{}
expandafterpatchcmdcsname AC@AC@prefix{}@acroendcsname{{#3}}{{MakeUppercase #3}}{}{}
makeatother

begin{document}
begin{acronym}
acro{DC}{direct current}
end{acronym}

Batteries run on ac{DC}.
end{document}

enter image description here

Correct answer by egreg on January 17, 2021

A suggestion can be to define a new Command:

documentclass{article}
usepackage{acronym}

begin{document}
newcommand*FirstLetter[2]{#1}
begin{acronym}
acro{DC}{protectFirstLetter{D}{d}irect current}
end{acronym}
renewcommand*FirstLetter[2]{#2}

Batteries run on ac{DC}.
end{document}

Result:

DC Direct current

Batteries run on direct current (DC).

Do work without protect inside acronym you can make the definition with expl3:

ExplSyntaxOn
cs_new_protected:Npn FirstLetter #1#2 { #1 }
ExplSyntaxOff

ExplSyntaxOn
cs_set_protected:Npn FirstLetter #1#2 { #2 }
ExplSyntaxOff

Answered by Marco Daniel on January 17, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP