You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 08:17:37