如何在 bibtex/biblatex 轉義“and”作為列表分隔符號?

如何在 bibtex/biblatex 轉義“and”作為列表分隔符號?

在我的 BibLaTeX 手冊中,它說:

文字清單被解析並在分隔符號處分成單獨的項目and,但不會進一步剖析。文字清單可能會在 bib 檔案中用關鍵字「and other」截斷。有兩種亞型:

嚴格意義上的文字列表的處理方式如上所述。各個項目只需原樣列印即可。此類文字清單的典型範例是出版商和位置。

因此,假設我想在清單欄位中記錄相關機構 - 我應該使用“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命令作為分隔符)?

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)的文字清單。 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>”,則必須用大括號括起來。 {和}通信},<br>組織={美國攝影測量學會{和}遙感<br>和<br>美國測量國會{和}製圖},</code></pre>注意之間的區別上面範例中的文字「<code>{and}</code>」和清單分隔符號「<code>and</code>」。您也可以將整個名稱括在大括號中。

BibTeX 的手冊( texdoc bibtex) 也暗示了這個特性:

本節的最後一項描述了 BibTeX 的名稱(出現在 <code>author</code> 或 <code>editor</code> 欄位),比 LaTeX 書中附錄 B 中的內容稍微詳細一些。在下文中,「名字」對應於一個人。 (回想一下,您可以使用單字「<code>and</code>」分隔單一欄位中的多個名稱,並用空格包圍,並且不用大括號括起來。本項涉及單一名稱的結構。)

(強調“單字‘ and’,被空格包圍,並且不包含在大括號中”)。

相關內容