天天看點

基于bibtex的文獻管理(詳細)一、如何收集文獻二、bibtex的常用功能

本文參考https://www.overleaf.com/learn/latex/Bibliography_management_with_bibtex

一、如何收集文獻

正式論文

在dblp(CS專用的citation管理工具)上搜尋文獻(如果是比較古早的論文則在google直接搜尋後轉到jstor(Journal Storage,一個電子圖書館)的網址下載下傳bibtex)後對應到其發表的的第一個正式conference(排除corr(computing research repository),這個是arxiv的資料庫),然後下載下傳bibtex後用bib管理。

建議用endnote/記事本預先整理一個搜尋清單,然後最後寫完了再把bibtex一個個插進去。倒也不麻煩,隻是終端管理起來比較困難。主要是因為endnote自帶的bibtex整理會出現資料丢失的情況,是以最好不要轉格式。

有時候你隻知道一個文獻的文本引用格式(例如,[1] J. Smith, J. Doe and F. Bar (2001) A ground-breaking study. Journal of Amazing Research 5(11), pp. 29-34.),但是由于種種原因你找不到它的bib檔案,請考慮手寫一個bibtex引用或者使用一些小工具,如text2bib 和Edifix把它們轉換成bibtex的格式

文獻管理工具

類似endnote,常用的可視化管理.bib檔案的工具有JabRef 和BibDe. 你可以考慮在本地使用它們管理bib條目後再把輸出檔案加入latex編譯工具。特别的,如果你想建立一個“原項目”用于所有overleaf文章的寫作(包括bibtex的管理),參考this help article ;如果你使用Mendeley和Zotero管理文獻,還可以參考How to link your Overleaf account to Mendeley and Zotero.

非正式論文

在google scholar上随便弄一個看起來比較靠譜的cite,存儲為endnote格式,用endnote直接做文獻管理即可,其自帶大部分常用的文獻導出格式,如果沒有的話用編輯器自行建立一個也很友善。

二、bibtex的常用功能

bibtex是一種無格式文獻資訊存儲方式,目标是讓大規模的文獻引用管理變得友善快捷。這裡我們和natbib搭配食用,讓引用作者也能夠一鍵完成。

頭檔案:

\usepackage{cite}\usepackage{natbib} \setcitestyle{square,numbers,sort, authoryear,citesep={;},aysep={,},yysep={;}}

顯示:

在main檔案中插入指令

\bibliographystyle{plain} 設定參考文獻的顯示格式,一共有八種,這裡是plain

\bibliography{ref} 調用建立的引用檔案'ref.bib',如果ref.bib檔案在與main.tex檔案不同的目錄下,則必須使用完整位址引用ref.bib

的位置就是正文中顯示參考文獻的位置,一般插入在正文之後、附錄之前。

引用:

主要是使用\cite, \citeauthor, \citeauthor*三個指令。citeauthor是引用作者的名字,在大于等于兩個人的時候自動轉為et. al.;citeauthor*則是引用全部作者的名字。

這些指令的進階使用技巧參考Harvard釋出的natbib詳細指南

特性:
  1. bibtex檔案的組織結構是:若幹個entry(條目),每個entry由@{referencekey, info*}組成,其中info*是該文獻的資訊,以typename={xxx}的方式構成,中間用逗号隔開,例如:author={Dantzig}。typename是bibtex中内置的内容,有數十個關鍵字,如author, title, address等。
  2. 由于bibtex的目标是做文獻的存儲庫,是以,即使ref.bib中有一百條文獻,正文的引用清單裡也隻會顯示被引用過的那些文獻。利用這個特定,你可以搭建一個屬于自己的文獻庫ref.bib,在所有latex文檔中複用ref.bib,引用中隻會出現那些正文引用到的文獻。如果要關閉這個特性,在指令中插入

    \nocite{*}

  3. 實際顯示的引用清單是按照\bibliorgraphystyle的設定排序的,例如,plain按照第一個作者的姓名的字典序進行排序
  4. bibtex檔案的内部格式:最常用是兩種:

    @article:期刊文章

    @inproceedings:會議文章

    @book:書籍

    @phdthesis, @masterthesis:畢業論文

    @inbook:作者固定的書籍中的某一章/節/部分

    @incollection:各章節由不同作者分别撰寫的書籍中的某一章/節/部分

    @misc:其它

  5. bibtex沒有注釋功能,其注釋并不是latex常用的%。在其中加入注釋的思路是讓代碼無法被bibtex識别。例如,想要注釋掉一個entry,就把最前面的"@"去掉;想要注釋掉一個info,就把typename改成bibtex的關鍵字清單中沒有的名稱,如IGNOREauthor等等
常見問題:·
  1. 引用顯示不出來:可能是ref.bib檔案沒有放到和main.tex同一目錄下,導緻

    \bibliography{ref}

    指令找不到目标檔案
  2. 後面遇到新的問題繼續更新

繼續閱讀