LaTeX acro包中如何让缩写列表内小写全称首字母大写?
问题原因与解决方法
问题根源
acro包的format/list配置项仅支持无参数的格式命令,你定义的\aclistformat是带参数的命令,直接赋值给format/list时,acro无法将缩写全称作为参数传递给它,导致\capitalisewords没有收到需要处理的文本,因此格式失效。而单独调用\aclistformat{test}是手动传递了参数,所以能正常生效。
解决方法
方法一:使用acro专用命令定义列表格式(推荐)
利用acro提供的\DeclareAcroListFormat定义无参数的格式标识,内部封装首字母大写逻辑:
\documentclass{article} \usepackage{acro} \usepackage{mfirstuc} % 定义首字母大写的列表格式 \DeclareAcroListFormat{capitalise}{% \capitalisewords{#1}% #1会自动接收缩写全称 } \acsetup{ list/display = all, format/list = capitalise % 调用定义好的格式标识 } \DeclareAcronym{acro1}{ short = short, long = really long lowercase name } \begin{document} \printacronyms \end{document}
方法二:重定义列表项输出钩子
直接修改acro生成列表项的命令,对全称强制应用首字母大写:
\documentclass{article} \usepackage{acro} \usepackage{mfirstuc} \acsetup{ list/display = all, } % 重定义列表项的输出逻辑,对全称应用\capitalisewords \renewcommand{\acrolistentry}[2]{% \item \aclabelfont{#1} & \capitalisewords{#2} \\% } \DeclareAcronym{acro1}{ short = short, long = really long lowercase name } \begin{document} \printacronyms \end{document}
内容的提问来源于stack exchange,提问作者MachineLeon
相关产品推荐
相关产品推荐

