使用额外词汇表指定缩写的短形式和长形式冠词

使用额外词汇表指定缩写的短形式和长形式冠词

glossaries-extra有没有办法使用和为缩写的短形式和长形式指定不同的不定冠词bib2gls


我最近将我的项目从使用acronymglossaries-extra包转换为仅使用glossaries-extra。我用它bib2gls来编译我的词汇表,因此我在 .bib 文件中重新定义了我的首字母缩略词:

@abbreviation {MO,
    long = {\itshape modus operandi},
    short = {M.O.}
}
@abbreviation {HTML,
    long = {Hypertext Markup Language},
    short = {HTML}
}

使用acronym,我能够根据所用的长形式或短形式来指定不同的不定冠词:

\begin{acronym}
    \acro{MO}{\itshape modus operandi} \acroindefinite{MO}{an}{a}
    \acro{PM}{prime minister} % package defaults cause `\acroindefinite{PM}{a}{a}` to have no effect
    \acro{HTML}{Hypertext Markup Language} \acroindefinite{HTML}{an}{a}
\end{acronym}

然后,我就可以放心地在文档中书写,而不必担心是否使用了正确的不定冠词。例如,以下代码:

Oxford Languages defines \iac{MO} as "a particular way or method of doing something."
\Iac{MO}, in other words, is a habitual method of going about some task.
Jeff's \ac{MO} is...

\Ac{HTML} is a computer programming language that provides structure for webpages across the internet.
\Iac{HTML} document has the file name extension ``.html.''
\Ac{HTML} documents are quite ubiquitous, as they are used to...

将给出以下输出:

牛津语言定义了作案手法(MO)表示“做某事的一种特定方式或方法”。换句话说,MO 是完成某项任务的习惯方法。杰夫的 MO 是...

超文本标记语言 (HTML) 是一种计算机编程语言,为互联网上的网页提供结构。HTML 文档的文件扩展名为“.html”。HTML 文档非常普遍,因为它们用于...

使用时glossaries-extra,我引用的首字母缩略词如下:

Oxford Languages defines a \gls{MO} as "a particular way or method of doing something."
A \gls{MO}, in other words, is a habitual method of going about some task.
Jeff's \gls{MO} is...

结果如下:

牛津语言定义了作案手法(MO)表示“做某事的一种特定方式或方法”。换句话说,MO 是完成某项任务的习惯方法。杰夫的 MO 是...

效果很好。但是,如果我在文档前面引用首字母缩略词,那么一些文章就会变得混乱。此代码:

In this document, we will discuss the meaning of a \gls{MO}.

Oxford Languages defines a \gls{MO} as "a particular way or method of doing something."
A \gls{MO}, in other words, is a habitual method of going about some task.
Jeff's \gls{MO} is...

结果如下(重点添加):

在本文中,我们将讨论作案手法(莫)。

牛津语言定义一个MO作为“做某事的特定方式或方法”。换句话说,MO 是完成某项任务的习惯方法。杰夫的 MO 是...

有没有办法指定和引用我用来创建的缩写的不定冠词glossaries-extra例如,我可以在我的 .bib 文件中写这样的内容吗:

@abbreviation {MO,
    long = {\itshape modus operandi},
    short = {M.O.},
    indefiniteLong = {a},
    indefiniteShort = {an}
}

然后在我的文档中出现如下内容:

Use one gives ``\glsIndefinite{MO}''

Use two gives ``\glsIndefinite{MO}''

要得到:

使用一个给出“一个作案手法(MO)”

使用两个给出“MO”

答案1

有一个包可以实现这一点。它是其中的一部分,可以通过添加选项glossaries-extra来加载:prefix

\usepackage[prefix,abbreviations]{glossaries-extra}

使用 TeX 定义,您可以指定自定义前缀:

\newabbreviation[prefix={an\space},prefixfirst={a~}]{MO}{M.O.}{\itshape modus operandi}

请注意,由于我使用的是\newabbreviation,因此我还需要abbreviations选项。我还没有使用 .bib 文件测试过,但我猜它应该以相同的方式工作:

@abbreviation {MO,
  long = {\itshape modus operandi},
  short = {M.O.},
  prefixfirst = {a~},
  prefix = {an\space}
}

您可以在文本中插入缩写\pgls{MO},它会自动添加正确的前缀。

有关更多信息,请参阅glossaries文档:https://ctan.mirror.norbert-ruehl.de/macros/latex/contrib/glossaries/glossaries-user.html#sec:prefix

不久前,仅使用该glossaries软件包时也发布了一个类似的问题。您可以在那里找到另一种无需使用该glossaries-prefix软件包的解决方案:词汇表如何处理缩写前的冠词“a”或“an”?

相关内容