Acro 包:如何在缩写列表中仅打印一种形式(短或长)?如何在打印列表中交换长格式和短格式?

Acro 包:如何在缩写列表中仅打印一种形式(短或长)?如何在打印列表中交换长格式和短格式?

对于我的论文(中世纪研究),我想创建一个提及的人员列表和一个提及的手稿列表(严格意义上来说,它们通常只有签名,但没有名字)。为此,我使用了 acro 包,它以某种方式工作……但我有两个问题:

  1. 在手稿列表中,我想打印短格式(或长格式。这无所谓,因为这些对于手稿来说是相同的!)而不是短格式和长格式。使用 acro 包是否可以只打印一种格式?

  2. 在人员列表中,我想交换短格式和长格式的顺序(即先是长格式,然后是短格式)。可以吗?

\documentclass{scrbook}

\usepackage{acro}

\acsetup{
    pages / display = all
}

\DeclareAcronym{john}{
    short =     {Johnny},
    long =      {John Example},
    long-post = {\space (1900--1980)},
    extra =     {1900--1980, poet},
    tag={person}
}

\DeclareAcronym{abc_123}{
    short =     {ABC~123},
    long =      {ABC~123},
    long-post = {\space (20th century)},
    extra = {20th century, paper manuscript},
    tag={manuscript},
}

\begin{document}
    
    \acl{john} wrote \acs{abc_123}. 

    \printacronyms[include=person, name=Persons, preamble={Something about people.}]
    \printacronyms[include=manuscript, name=Manuscripts, preamble={Something about manuscripts.}]   
    
\end{document}

我已经研究了 acro-manual 好一阵子了,也用谷歌搜索过,还看过这里。我可能只是瞎了眼……如果有人能帮助我,我将不胜感激。我对 LaTeX 还是个新手。非常感谢。

答案1

我的第一个想法是,nomencl或者glossaries对于人员列表和手稿列表来说这将是一个更好的工具,但您绝对可以根据要求biblatex自定义首字母缩略词列表。acro

文档的相关部分是III 25 Templates,默认列表模板是

\NewAcroTemplate[list]{description}{%
  \acroheading
  \acropreamble
  \begin{description}
    \acronymsmapF{%
      \item[\acrowrite{short}\acroifT{alt}{/\acrowrite{alt}}]
        \acrowrite{list}%
        \acroifanyT{foreign,extra}{ (}%
        \acroifT{foreign}{\acrowrite{foreign}\acroifT{extra}{, }}%
        \acroifT{extra}{\acrowrite{extra}}%
        \acroifanyT{foreign,extra}{)}%
        \acropagefill
        \acropages
          {\acrotranslate{page}\nobreakspace}
          {\acrotranslate{pages}\nobreakspace}%
      }
      {\item\AcroRerun}
  \end{description}
}

对于手稿列表,我会将 替换\acrowrite{short}\acrowrite{list}(默认情况下为long,但可以用 覆盖list),并修改 的打印,extra使其出现在括号外面,但保持foreign键的外观不变。

\NewAcroTemplate[list]{manuscripts}{%
  \acroheading
  \acropreamble
  \begin{description}
    \acronymsmapF{%
      \item[\acrowrite{list}\acroifT{alt}{/\acrowrite{alt}}]
        \acrowrite{extra}%
        \acroifT{foreign}{ (%
        \acrowrite{foreign}%
        )}%
        \acropagefill
        \acropages
          {\acrotranslate{page}\nobreakspace}
          {\acrotranslate{pages}\nobreakspace}%
      }
      {\item\AcroRerun}
  \end{description}
}

编译后的代码显示了手稿列表模板的结果

对于人员,我们只需交换\acrowrite{short}\acrowrite{list}密钥,其他方面保持不变

\NewAcroTemplate[list]{persons}{%
  \acroheading
  \acropreamble
  \begin{description}
    \acronymsmapF{%
      \item[\acrowrite{list}\acroifT{alt}{/\acrowrite{alt}}]
        \acrowrite{short}%
        \acroifanyT{foreign,extra}{ (}%
        \acroifT{foreign}{\acrowrite{foreign}\acroifT{extra}{, }}%
        \acroifT{extra}{\acrowrite{extra}}%
        \acroifanyT{foreign,extra}{)}%
        \acropagefill
        \acropages
          {\acrotranslate{page}\nobreakspace}
          {\acrotranslate{pages}\nobreakspace}%
      }
      {\item\AcroRerun}
  \end{description}
}

编译后的代码显示了人员列表模板的结果

相关内容