如何在 bibtex/biblatex 中将“and”转义为列表分隔符?

如何在 bibtex/biblatex 中将“and”转义为列表分隔符?

在我的 BibLaTeX 手册中,它说道:

文字列表被解析并在分隔符处拆分为单个项目and,但不会进一步分解。文字列表可能会在 bib 文件中用关键字“and others”截断。有两种子类型:

严格意义上的文字列表的处理方式如上所述。各个项目只是按原样打印。此类文字列表的典型示例是出版商和地点。

因此,假设我想在列表字段中记录相关机构 - 我应该使用“and”作为分隔符。但是如何处理名称中包含“and”的机构(例如“圣多美和普林西比科学基金会”)?那么我必须写,例如

publisher = { Foundation of Science of São Tomé and Príncipe and Johnson and Johnson Fund for Scientific Research },

...现在我已经可以说解析器会崩溃,并给我一个该字段的错误机构列表。

那么,该如何解决这个问题呢?双引号是否会提示解析器不要使用引号内的“and”作为列表分隔符:

publisher = { "Foundation of Science of São Tomé and Príncipe" and "Johnson and Johnson Fund for Scientific Research" },

...或者,我已经\and在 Biblatex 中看到了命令——也许可以用来提示解析器,忽略其他非命令“and”作为列表分隔符(或相反——不将命令视为\and分隔符)?:

publisher = { Foundation of Science of São Tomé and Príncipe \and Johnson and Johnson Fund for Scientific Research },

我主要对将 BibLaTeX 与这些字段结合使用感兴趣 — — 但如果存在一种通用方法可以处理 BibTeX,那么我很想知道。

答案1

andBiber 和 BibTeX 都只能看到不在任何括号内的关键字,因此您可以像这样输入publisher字段(或任何其他用作and分隔符的字段):

publisher = {{Foundation of Science of São Tomé and Príncipe}
             and
             {Johnson and Johnson Fund for Scientific Research}}

甚至只是隐藏and括号内的文字:

publisher = {Foundation of Science of São Tomé {and} Príncipe
             and
             Johnson {and} Johnson Fund for Scientific Research}

Biber 允许您使用除默认字符串之外的其他字符串and来分隔列表和名称(请参阅§3.7 列表和名称分隔符)。为此,您可以使用--listsep--namesep命令行选项,例如:

biber --listsep='und' <document>

那么你的列表可以写成:

publisher = {Foundation of Science of São Tomé and Príncipe
             und
             Johnson and Johnson Fund for Scientific Research}

但是,此更改适用于整个.bib文件,并且由于 BibTeX 中无法更改分隔符,因此这会导致文件.bib不兼容。但无论如何,这都是一个选择。


仅供参考,moewe 指出了 BibLaTeX 手册中的部分(§2.3.4 文字列表第 34-35 页(v3.14)对此进行了解释:

字段 <code>institution</code>、<code>organization</code>、<code>publisher</code> 和 location 是 §[2.2](https://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf#subsection.2.2) 中的文字列表。这也适用于 <code>origlocation</code>、<code>origpublisher</code> 以及字段别名 <code>address</code> 和 <code>school</code>。所有这些字段都可能包含由关键字“and”分隔的项目列表。如果它们包含文字“<code>and</code>”,则必须将其括在括号中。<pre><code>publisher = {William Reid {and} Company},<br>institution = {Office of Information Management {and} Communications},<br>organization = {American Society for Photogrammetry {and} Remote Sensing<br> and<br> American Congress on Surveying {and} Mapping},</code></pre>请注意上述示例中文字“<code>{and></code>”和列表分隔符“<code>and</code>”之间的区别。您也可以将整个名称括在括号中。

BibTeX 手册texdoc bibtex)也暗示了这一特点:

本节的最后一项描述了 BibTeX 的名称(出现在 <code>author</code> 或 <code>editor</code> 字段中),比 LaTeX 手册附录 B 中出现的名称略微详细。在下文中,“名称”对应于一个人。(回想一下,在单个字段中,您使用单词“<code>and</code>”分隔多个名称,并用空格包围,而不是用括号括起来。此项涉​​及单个名称的结构。)

(强调“单词‘ and’被空格包围,但没有用括号括起来”)。

相关内容