
在回答中bibtex 與 biber 和 biblatex 與 natbibnatbib
解釋了 Biber 與 BibTeX(以及 Biblatex)的優缺點。然而,有一點被忽略了:BibTeX 和biblatex
.
使用 BibTeX 一段時間後,您將獲得 BibTeX 風格的參考書目集合。此外,許多期刊在其主頁上提供 BibTeX 條目以供引用。很多參考書目管理程式要麼支援 BibTeX 匯出,要麼直接管理 BibTeX 檔案。此外,Emacs 等高級編輯器對 BibTeX 參考書目有特殊支援。
簡而言之,有用於創建和管理 BibTeX 參考書目目的龐大基礎設施以及大量現有參考書目。此外,正如在另一個問題中指出的,您不能將 Biber 與 一起使用natbib
,而 Biber 已被相當多的期刊使用。
因此,出現了以下問題:Biber 的參考書目格式與 BibTeX 的參考書目格式相容嗎?或者如果沒有,至少有一個自動轉換工具嗎?
請注意,這兩個方向都很有趣:如果Biber 無法使用現有的BibTeX 參考書目,這意味著您必須轉換所有現有的BibTeX 參考書目,並且也對期刊中的BibTeX 條目執行此操作(除非他們也提供Biber,但通常只是BibTeX 和EndNote )和從書目管理程式匯出的書目。另一方面,如果 Biber 檔案不能用於 BibTeX 且不存在轉換,則表示任何 Biber 參考書目對於使用 的期刊來說都是無用的natbib
,並且任何直接解釋BibTeX 參考書目文件的程式都不能再使用(包括編輯器支援)。
另外,如果 Biber 可以讀取 BibTeX 文件,但反之則不然:如果文件僅限於與 BibTeX 相容的文件,Biber 是否仍然比 BibTeX 有優勢?
答案1
為了解析 BibTeX 格式文件,Biber 使用名為「btparse」的 C 函式庫,無論出於何種意圖和目的,該函式庫與 BibTeX 99.9% 相容。因此,使用 Biber 作為 BibTeX 的直接替代品應該很少會遇到問題。正如其他人所提到的,問題在於biblatex
與 BibTeX 中的資料模型相比略有不同的資料模型。
因此,您的問題實際上與普通 BibTeX 和 BibLaTeX 之間的資料模型差異有關,無論您是否使用 Biber 作為biblatex
後端。請注意,在未來,BibLaTeX 2.x 左右,將不再支援 BibTeX 作為biblatex
後端,因為它有太多限制。當然,BibTeX 格式的資料檔案將始終受到支援。
正如您所提到的,更重要的問題是,即使您不使用任何資料模型細節,Biber 的優勢可能是什麼biblatex
。以下是 Biber 在這方面的一些優勢(您可以透過在手冊中搜尋「Biber only」字串來了解biblatex
),省略需要更改資料來源的功能:
- 支援
.bib
(目前 RIS、Zotero RDF/XML、Endnote XML)以外的資料來源 - 支援遠端資料來源(
.bib
可透過 ftp 或 http 取得檔案) - 支援其他輸出格式(在 0.9.8 中它將支援 GraphViz .dot 輸出以進行資料視覺化並轉換為計劃的 biblateXML 格式)
- 完整的 Unicode 6.0 支援(包括檔案名稱和引用鍵)
- 我認為這種排序機制可能與任何商業產品一樣好甚至更好 - 完整的 Unicode、多字段、每個字段的大小寫和方向、CLDR 感知以及完全用戶可配置。 BibTeX 在這方面還差得遠。
- 自動姓名和姓名清單消歧。我認為這是一個非常令人印象深刻的功能。請參閱手冊第 4.11.4 節,
biblatex
透過範例對此進行了很好的解釋。 - 完全可自訂的交叉引用繼承規則。 BibTeX 僅有非常基本的靜態規則。
- 自動編碼和解碼,包括 UTF-8 <-> LaTeX 宏
- 非常靈活的設定檔「sourcemap」選項,可用於更改
.bib
Biber 讀取的數據,而無需更改實際資料來源本身。您
可以使用它來執行各種操作,例如刪除某些欄位、新增欄位、有條件地刪除/新增欄位、使用完整 Perl 5.14 正規表示式變更欄位(請參閱拜伯手冊第 3.1.2 節)。
最後一個功能對您來說特別有趣,因為您可以在 Biber 讀取純 BibTeX 檔案時將它們動態映射.bib
到模型中,但無需更改檔案。它對於刪除經常由於 LaTeX 保留字元而引起麻煩的biblatex
欄位也非常有用。abstract
Biber 中也實作了一些其他功能,這些功能在 BibLaTeX 2.x 中可用:
- 可自訂標籤
- 同一參考文獻中的多個參考書目具有自己的排序/過濾
- 「相關」條目 - 解決所有這些「轉載為」、「翻譯為」等要求的問題。
我忘了提及 Biber 自動套用文件中提到的 BibLaTeX 欄位和條目類型對應(位址 -> 位置等)。它透過實作一些驅動程式級來源映射來實現這一點(請參閱\DeclareSourcemap
biblatex 文件中的及其變體)。
答案2
原則是:您越利用biblatex
/Biber 的優勢,就越難回到傳統的 BibTeX 工作流程。
如果您自備 BibTeX 資料庫並希望將其與biblatex
/Biber 一起使用,則只需調整幾個區域:biblatex
手冊的第 2.3 章列出了以下幾點:
- 條目類型@inbook。詳情請參閱第 2.1.1 節和第 2.3.1 節。
- 此欄位為機構、組織和出版商以及別名地址和學校。詳細資訊請參閱§§ 2.2.2、2.2.5、2.3.4。
- 某些類型標題的處理。詳細資訊請參閱第 2.3.5 節。
- 田野系列。詳情請參閱第 2.2.2 節和第 2.3.7 節。
- 年和月字段。詳情請參閱第 2.2.2、2.3.8、2.3.9 條。
- 田野版。詳細資訊請參閱第 2.2.2 節。
- 字段鍵。詳細資訊請參閱第 2.3.2 節。
並非所有變更都可能引起您的關注,也並非所有變更都會真正導致不相容。
當然,你越深入研究biblatex
,越多利用它獨特的類型、領域和功能,就越難回頭。兩者之間的整個轉換問題實際上變得毫無意義,因為這實際上並不是不同格式的問題,而是biblatex
簡單地提供了 BibTeX 無法提供的許多東西。
舉一個對我來說很重要的例子:傳統的 BibTeX 沒有一個bookauthor
在某些人文學科領域會破壞交易的欄位。擁有這個領域的事實biblatex
是我最初轉向的主要原因之一biblatex
。現在,由於 BibTeX 不了解該字段,因此沒有明智的方法在兩者之間進行有用的轉換。對於許多其他領域也是如此。所以去biblatex
是一種在你穿過某個點之後的單行道。
答案3
當您詢問 Biber 與 BibTeX 時(即,二進制驅動程式用於處理由 LaTeX 產生的關於引文的.bcf
相應文件)我假設您正在使用參考書目包,因為 Biber 不支援任何其他參考書目包(舊式 BibTeX,)。.aux
biblatex
natbib
關於參考書目資料庫:AFAIK Biber 是大多與 BibTeX 相容。然而,對於格式良好的條目更加挑剔,因此很可能有些東西「不起作用」。如果您不想立即解決所有這些問題,biblatex
那麼與 一起使用bibtex8 -W
通常是一個很好的解決方法。您不必為了使用而立即切換到 Biber biblatex
。
一個更嚴重的問題是舊式 BibTeX 與biblatex
資料庫條目不百分百相容。實際上,biblatex
它消除了舊式 BibTeX 資料庫格式的許多特性:
例如,在舊式 BibTeX 中,有兩個欄位來指示地址:address
出版商的地址,用於所有條目類型,但@inproceedings
.對於@inproceedings
參賽作品,必須提供location
場地名稱;address
不得給出出版商的 (BibTeX 對此發出警告並忽略它) 。
對於biblatex
,兩者都是「發布地點」的同義詞,這更有意義,因為從理論上講,您永遠不會在同一個條目中使用兩者。然而,@inproceedings
人們在網路上找到的許多條目(ACM、IEEE...)都包含兩個都,儘管這在技術上是不正確的。當您將這些條目匯入您的個人.bib
文件並與 一起使用時biblatex
,address
(發布者的)有時會覆蓋location
地點的 ,從而導致錯誤訊息。
答案4
我發現的一個問題是,表單的註釋
@COMMENT text
適用於 BibTex 的 .bib 文件,但不適用於 Biber。
這裡有更多討論: biblatex 檔案中的程式碼註釋