将首字母缩略词列表中的首字母大写

将首字母缩略词列表中的首字母大写

当使用该acronym包时,我希望将首字母缩写描述中的首字母大写(例如,直流电)。但在文本中使用时,我希望将单词以小写字母表示。

\documentclass{article}
\usepackage{acronym}

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

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

输出:

DC 直流电

电池采用直流电 (DC) 供电。

答案1

您可以修补\AC@@acro负责打印首字母缩略词列表的宏:

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

更新

随着最新版本 (2020) 的发布,acronym情况发生了变化(未来也可能会发生变化)。截至 2020 年 12 月的正确补丁是

\documentclass{article}
\usepackage{acronym}
\usepackage{etoolbox}
\makeatletter
\expandafter\patchcmd\csname AC@\AC@prefix{}@acro\endcsname{{#3}}{{\MakeUppercase #3}}{}{}
\expandafter\patchcmd\csname AC@\AC@prefix{}@acro\endcsname{{#3}}{{\MakeUppercase #3}}{}{}
\makeatother

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

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

在此处输入图片描述

答案2

建议可以定义一个新的命令:

\documentclass{article}
\usepackage{acronym}

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

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

结果:

DC Direct current

Batteries run on direct current (DC).

\protect无需内部操作\acronym即可进行定义expl3

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

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

相关内容