调整 acro 3.8 中的 lof 样式(list-short-width 和 list-caps 选项已消失)

调整 acro 3.8 中的 lof 样式(list-short-width 和 list-caps 选项已消失)

我正在尝试编译最初使用 acro 1.x 设置的旧文档。该文档使用了以下设置:

\acsetup{
    first-long-format = \itshape,
    list-style = lof,
    list-short-width = 6.4em,
    list-caps = true,
    pages = first
}

在我当前的系统上,我只有 acro 3.8,它在编译时抛出了一堆错误。在阅读文档后,我找到了一些先前参数的等效项:

\acsetup{
    format/first-long = \itshape,
    list/template = lof,
    pages/display = first
}

然而似乎以下两个选项已经不存在了:

  1. 列表短宽度- 设置缩写列表中首字母缩略词列的宽度
  2. 列表大写- 使缩写列表中写出的首字母缩略词以大写字母开头。

不幸的是,我为寻找调整列宽的解决方案所做的所有尝试都让我遇到了一些老问题,其中的解决方案是使用list-short-width。根据文档,我也尝试过设置templates/colspec,但到目前为止我还没有找到可行的解决方案……

关于如何使用 aro 3.8 恢复以前的行为,您有什么想法吗?


最小示例:

% !TeX spellcheck = en_US
\documentclass[a4paper]{article}%
%
\usepackage{acro}%
%
\DeclareAcronym{ransac}{
    short=RANSAC,
    long=random sample consensus
}%
%
\DeclareAcronym{sift}{
    short=SIFT,
    long=scale invariant feature transform
}%
%
\acsetup{
    format/first-long = \itshape,
    list/template = lof,
    pages/display = first
    %list-caps = true,
    %list-short-width=6.4em,
}%
%
\begin{document}%
\section{Some Text}
\Ac{ransac} is a common approach to match features like \ac{sift}.

\section*{List of Abbreviations}
\printacronyms[heading=none]%

\end{document}%

电流输出:

输出

期望列表外观(原始文件):

输出到旧文档

答案1

就大写而言,list-caps键似乎有一个等效项,\acsetup{uppercase/list=true}但是这个键没有记录。\acsetup{format/list=\acroupper}可能不是预期的方法,但内部也可以正常工作和\acroupper之间的区别。\Ac\ac

该列表有几个具有不同依赖关系的选项。

  • lof可以通过使用进行修改tocloft如下所述cgnieder 的回答使用 LOF 样式列出首字母缩略词列表时,首字母缩略词与其描述之间的空格。这与提供的屏幕截图相当吻合,但lofacro附带。

  • 基于表格的列表 ( tabular/ longtable) 也与未经修改的屏幕截图大致匹配。由于默认的 ,这些默认为粗体短格式,templates/colspec=>{\bfseries}lp{.7\linewidth}可以使用 覆盖\acsetup{templates/colspec=lp{.7\linewidth}}。我们可以跨越整个页面宽度设置\acsetup{templates/colspec=p{6em}p{\linewidth-6em-3\tabcolsep}}(依赖于calc用于就地数学)。

  • tabularray也许也值得研究,因为它允许第一列l(不需要硬编码宽度)并且第二列将自动填充,但当前(3.8)acro模板如果不使用的话,定制起来有点尴尬\RenewAcroTemplate(在下面,我保留列为默认,并使用了一个非常黑客的本地设置来format/short=\normalfont覆盖内置的\bfseries),我也不确定标题后的额外垂直空间是从哪里来的。

\documentclass{article}
\usepackage{tocloft}% for lof - needs to be loaded before acro
\usepackage{array}% for tabular/longtable list templates
\usepackage{longtable}% for longtable list template
\usepackage{tabularray}% for tabularray list template
\usepackage{calc}% for easy calculations within colspec
\usepackage{acro}

\DeclareAcronym{ransac}{
    short=RANSAC,
    long=random sample consensus
}
\DeclareAcronym{sift}{
    short=SIFT,
    long=scale invariant feature transform
}

\acsetup{
    format/first-long = \itshape,
    pages/display = first,
    format/list = \acroupper
}

\SetupAcroTemplate[list]{lof}{
  \setlength\cftfignumwidth{6em}
}

\acsetup{templates/colspec=p{6em}p{\linewidth-6em-3\tabcolsep}}

\begin{document}%
\section{Some Text}
\Ac{ransac} is a common approach to match features like \ac{sift}.

\printacronyms[template=lof]%
\printacronyms[template=tabular]%
{
\acsetup{format/short=\normalfont}
\printacronyms[template=tabularray]
}

\end{document}

编译后的代码显示了适配的 lof、tabular 和 tabularray 列表

相关内容