覆蓋 BibTeX 文件中的字段

覆蓋 BibTeX 文件中的字段

我將所有參考文獻保存在一個巨大的 BibTeX 文件中,其中恰好包含每一篇參考文獻的完整期刊名稱。我目前正在準備一份需要縮寫期刊名稱的手稿。

從我所做的研究(包括閱讀本網站上的相關問題)來看,似乎(i)沒有標準的自動方法可以做到這一點,但是(ii)有各種工具,例如biber和 ,jabref這將允許我預-.bib使用日誌名稱的全域搜尋和替換來文件。

然而,由於我的手稿只有一些參考文獻,因此手動輸入每個條目的新期刊名稱會更容易。有沒有辦法做到這一點?我正在尋找一種快速而骯髒的僅限 LaTeX 的解決方案,它不需要我安裝 TeX Live 中尚未包含的任何內容,因為我的日程安排很緊湊。我知道我可以編輯 .bib 檔案中的條目,但我不想這樣做,因為我喜歡將所有引用保留在同一個位置。

如果相關的話,我.bib使用 Mac 上的 BibDesk 維護我的文件,我正在使用natbib包,參考書目風格為apalike.

答案1

我認為您不安裝任何東西的限制使得簡單的解決方案變得困難,所以我將根據這個答案建議以下解決方案。

如何在引文中縮寫期刊名稱

  1. jabbrv從這裡下載軟體包:http://www.comholio.com/latex/jabbrv/

  2. jabbrv_apalike.bst從這裡下載:https://github.com/amunn/random-code/blob/main/jabbrv_apalike.bst.bst(我根據包中包含的其他文件創建了此文件。)

  3. 如果您真的很著急,請將jabbrv_apalike.bst文件添加到該jabbrv資料夾中,並將您的 TeX 文件也放入該資料夾中。 (這是不安裝任何東西的最快方法)。

如果您想正確安裝,您應該將軟體包安裝在本機texmf資料夾中的以下位置(您需要jabbrv自行建立資料夾)。在 Mac 上,<path-to-your-local-texmf>= ~/Library/texmf

  • 普丁*.bst<path-to-your-local-texmf>/bibtex/bst/jabbrv
  • 普丁 jabbrv.sty<path-to-your-local-texmf>/tex/latex/jabbrv
  • 普丁*.ldf<path-to-your-local-texmf>/tex/latex/jabbrv

在您的 TeX 文件中,將以下行新增至序言:

\usepackage[warnundef]{jabbrv}

並更改您的參考書目風格命令:

 \bibliographystyle{jabbrv_apalike}

檢查警告中是否有任何未縮寫的單詞,對於這些單詞,將如下行添加到序言中:

\DefineJournalAbbreviation{long name}{abbreviation} % No period at the end

我寫這個答案花了比獲取使用這個包的現有文件更長的時間。

答案2

標準化期刊(和出版商)名稱的一種方法是使用文件@String中的函數.bib。例如,

@String{j-CACM = "Communications of the ACM"}

會給你全名,同時

@String{j-CACM = "Comm. ACM"}

當需要縮寫時將被替換。

具體條目將包括

@Article{...,
  ...
  journal = j-CACM,
  ...,
}

(無引號)。然後可以根據需要替換完整標題或縮寫的並行集合。這也避免了在各個條目中輸入姓名不一致的可能問題。

nelson beebe 在 2004 年的實用 tex 會議上提出了這種方法以及有關 bibtex 資料庫維護的許多其他信息,並產生了關於該主題的廣泛文章。 (納爾遜比我認識的任何人都更了解 bibtex 參考書目,並且擁有更多的經驗。他的建議很可靠,非常值得研究。)

相關內容