本问答演示了如何在第一次出现时在首字母缩略词的长形式前加上“the”前缀。有什么方法可以控制前导“T”的大写吗?以下是不需要大写和需要大写的示例:
\documentclass[a4paper,12pt]{book}
\usepackage{acro}
\DeclareAcronym{cd}{
short = CD ,
long = compact disc
}
\DeclareAcronym{css}{
short = CSS ,
long = Centre for Spaghetti Studies
}
\NewAcroTemplate{long-short-the}{%
\acroiffirstTF{%
the %%%%%%%%%% No capital "T"
\acrowrite{long}%
\acspace(%
\acroifT{foreign}{\acrowrite{foreign}, }%
\acrowrite{short}%
\acroifT{alt}{ \acrotranslate{or} \acrowrite{alt}}%
\acrogroupcite
)%
}%
{\acrowrite{short}}%
}
\begin{document}
\textbf{Want no capital "T", as defined above}
Blah blah \ac[first-style=long-short-the]{cd}, \ac{css}.
Blah blah \ac[first-style=long-short-the]{cd}.
\vspace{\baselineskip}
\acresetall
\textbf{Want capital "T" but don't get it}
\Ac[first-style=long-short-the]{cd}, \ac{css}.
\end{document}
答案1
这个问题基本上在你之前的问题中得到了回答处理仅用于扩展首字母缩略词的“the”需求的最佳实践经过cgnieder 的回答但显然存在一些混淆,我认为我可以用这里的一些信息来有益地补充这些答案。
大致原理acro
(至少在我看来)是首字母缩略词模板指示要打印首字母缩略词的哪些属性:直接(short
, long
, alt
)或间接(short-long
, long-short
, single
),而首字母缩略词命令(\ac
, \Acs
, \acfp
)指定应与模板一起使用的任何其他上下文(例如复数)。然后,这些开关可以在适当的地方传播,例如\acfp{CD}
变为,并且可以在每个首字母缩略词的基础上进行修改(请参阅文档中的使用compact discs (CDs)
示例定义)。ufo
long-indefinite = an
acro
复数和不定冠词是结尾和冠词的内置实例,可以使用和来定义替代词\DeclareAcroEnding
。\DeclareAcroArticle
它们创建了一组属性,\DeclareAcronym
以及默认值和可在中使用的开关\NewAcroCommand
。不定冠词由设置,\DeclareAcroArticle{indefinite}{a}
创建了这样的键,可以根据需要short-indefinite
覆盖默认值。在本例中,我们将执行的操作不需要在s 中设置任何其他属性。a
\DeclareAcroArticle{definite}{the}
\DeclareAcronym
到目前为止,这只处理首字母缩略词属性,我们仍然需要创建必要的\ac
变体。执行此操作的自然方法如下(在定冠词变体前加上d
):
\dac
只是\ac
以定冠词开头的变体,因此我们需要\acrodefinite
在调用模板的同时进行切换first
,因此
\NewAcroCommand\dac{m}{\acrodefinite\UseAcroTemplate{first}{#1}}
为了创建一个大写变体,我们\acroupper
除了其他所有内容之外还插入
\NewAcroCommand\Dac{m}{\acroupper\acrodefinite\UseAcroTemplate{first}{#1}}
\dac
对于and的复数变体,\Dac
我们需要将其添加\acroplural
到普通版本和大写版本中
\NewAcroCommand\dacp{m}{\acrodefinite\acroplural\UseAcroTemplate{first}{#1}}
\NewAcroCommand\Dacp{m}{\acroupper\acrodefinite\acroplural\UseAcroTemplate{first}{#1}}
而要专门为该形式定义等效变体,short
我们需要再次复制以切换first
为short
\UseAcroTemplate
\NewAcroCommand\dacs{m}{\acrodefinite\UseAcroTemplate{short}{#1}}
\NewAcroCommand\Dacs{m}{\acroupper\acrodefinite\UseAcroTemplate{short}{#1}}
\NewAcroCommand\dacsp{m}{\acrodefinite\acroplural\UseAcroTemplate{short}{#1}}
\NewAcroCommand\Dacsp{m}{\acroupper\acrodefinite\acroplural\UseAcroTemplate{short}{#1}}
等等。遗憾的是,您需要的所有必要变体都必须以这种方式单独定义,但这应该定义一次以便多次使用。
话虽如此,由于“the”在英语中总是会被使用,我可能更喜欢明确地写出它,因为the \ac{cd}
定冠词不会根据使用首字母/短字母/长字母形式而改变。