glossaries-extra
有没有办法使用和为缩写的短形式和长形式指定不同的不定冠词bib2gls
?
我最近将我的项目从使用acronym
和glossaries-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”?