如何在LaTeX寫作中管理參考文獻?

怎樣簡便高效的在latex腳本中插入欲引文獻?有哪些常用/好用/為天文口優化了的輔助工具?大神們在這方面的work flow一般是怎樣的?


題主表示,歡迎各行各業的大神來分享經驗;題主作為天文小學生,作為尤其歡迎天文口的大神分享涉及天文口的特殊技巧~


  • 2016-04-09 JabRef 文獻管理軟體簡要說明(見附錄第8條)
  • 2016-03-02 補充百度學術、必應學術引用提取(見附錄第7條)

怎樣簡便高效的在latex腳本中插入欲引文獻?有哪些常用/好用/為天文口優化了的輔助工具?大神們在這方面的work flow一般是怎樣的?

從工作流入手吧,其間會提到輔助工具,參考文獻直接通過 bib 文件引入。

一、工具和工作流

  1. 基礎準備(可能用到的工具)
    1. 【文獻引用工具】Sublime Text 編輯器,以及安裝插件 LaTeXTools(或者LaTeXing,由於兩個插件都裝了,不清楚是哪個插件提供了文獻插入的觸發功能) (快速插入文獻用)
    2. 【中、英文文獻】Google 學術可用 (快速查找文獻的 bibtex 引用格式)
    3. 【中文文獻】Zotero Zotero | Home,將 CNKI 搜索結果的文獻導出為 BibTeX 引用格式
    4. 【快速文獻檢索】Chrome 有個檢索 Google 學術文獻的擴展,Google Scholar Button,可以快速查找文獻,特別是下載文獻 PDF 比較方便。
  2. 文獻準備(新建一個 mybibtex.bib 文件)
    1. 【英文文獻】Google 學術檢索文獻 &>&> Cite(引用) &>&> BibTeX &>&> 複製粘貼到 mybibtex.bib 文件中。這篇裡面有講過 有哪些好的 LaTeX 編輯器? - 知乎用戶的回答。
    2. 【中文文獻】能用上面的方法儘可能採用上面的,比較簡單。如果用 CNKI,操作如下(以 firefox 為例):(確保安裝 Zotero 的 firefox 擴展 &>&>) CNKI 檢索文獻 &>&> 點擊一下 url 輸入框末尾的文件夾圖標 &>&> 選中要導出的文獻 &>&> 導出為 BibTeX 引用格式 &>&> 複製粘貼導出的 BibTeX 文獻到 mybibtex.bib 文件。
  3. 在文章中引用文獻(快速引用)
    1. 確保安裝了 Sublime Text 以及 LaTeXTools 插件
    2. latex 文檔後面加

      ibliography{mybibtex}

      (常規的,文獻準備之前就可以引入,一邊編輯,一邊引用文獻,這裡主要為了講解)

    3. 引用文獻,輸入 cite 時會有一個觸發,彈出 bib 文件中已有的文獻,輸入關鍵詞然後回車即可引用。備註:觸發得到的文獻是從 bib 文件得到,還是從 aux 文件得到,暫時沒研究過,如果沒有彈出文獻框,可以先編譯了生成了 aux 文件再試。
  4. 編譯(如果 bib 文件有變動的話,需要重新編譯)

    xelatex *.tex
    bibtex *.aux
    xelatex *.tex
    xelatex *.tex

二、附錄

  1. Google 學術文獻引用

  2. Google Scholar Button 文獻快速檢索(這個下載 PDF 最方便了)

  3. CNKI 文獻引用,這裡有提 QQ空間

  4. 文獻引用

  5. Sublime Text 及插件安裝,不細講
    1. Sublime Text Sublime Text: The text editor you"ll fall in love with。
    2. 安裝插件首先要安裝 Package Control,Installation。
    3. LaTeXTools,可以下載了本地安裝 SublimeText/LaTeXTools · GitHub。
    4. Sublime Text 其他插件,Package Control。
    5. 插件安裝方式分在線和本地安裝,前端學習日誌-Sublime Text 2安裝插件方法詳解。
  6. 文獻管理軟體 Mendeley Free reference manager and PDF organizer,它可以導入 bib 文獻格式,並且提供了 Word 的文獻插入插件,覺得 LaTeX 麻煩了的時候,也可以換用 Word,並繼續利用已有的 bib 文件,在 Word 插入文獻也很快。這裡有提到 QQ空間。

    (Mendeley的幾個特點:界面不算丑、提供word插件、提供多種格式導入、可以雲端存儲、提供文獻插入樣式)

  7. 必應學術(必應 學術 - 學無止境,術有乾坤)、百度學術(百度學術 - 保持學習的態度)。google 學術文獻應該比較齊全,但是,要提取引用,不一定能用上 Google 的服務,最近發現,百度和必應學術也都可以提取文獻。

    8. JabRef(JabRef reference manager)。之前有用過,同樣支持 bibtex,界面相對而言要樸素一些,英文環境下遇到過中文亂碼(能夠解決)。它有一個特點是可以導出 Word 支持的 XML 文獻格式。Mendeley目前不支持點擊引用跳轉到對應的文末的參考文獻處,用 Word 自帶的文獻引用方式就可以。


一、安裝正確的LaTeX的版本
最好裝官網下載的MiKTeX + Texmaker,體積小巧,定製靈活。如果你裝了來源不明的修改版,那下面的說明可能對你無效。

二、養成用JabRef管理文獻的好習慣
JabRef(官網可能被牆了,請自行搜索下載)是一個小巧的開源文獻管理軟體,用來管理BibTeX格式的文獻條目信息。JabRef功能非常強大,界面也很人性化,用它與LaTeX配合工作可以省去很多力氣。我們在網上下載文獻時要順便導出BibTeX格式的引用。(相信我,所有科學文獻網站都支持BibTeX導出!)BibTeX引用實際就是一段文本,比如下面的文獻網址:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.71.1980
在頁面右側就會看到這樣的一段BibTeX的代碼:

@INPROCEEDINGS{Ester96adensity-based,
author = {Martin Ester and Hans-peter Kriegel and J?rg S and Xiaowei Xu},
title = {A density-based algorithm for discovering clusters in large spatial databases with noise},
booktitle = {},
year = {1996},
pages = {226--231},
publisher = {AAAI Press}
}

其中INPROCEEDINGS表示這是一篇會議文章,如果是ARTICLE表示期刊文章,用得最多的就是這兩種;Ester96adensity-based是BibKey,用來唯一標識這個條目,你可以修改它,只要與你本地的條目不重就可以了;其它信息一看就懂,不羅嗦了。有些文獻檢索網站導出的是一個*.bib文件,此時用記事本之類的文本編輯器打開這個文件,就可以看到同樣的內容了。

三、如何將bib條目添加到JabRef中
在JabRef里新建一個database,其實也就是擁有多個文獻BibTeX條目的bib文件,並保存到你本地專門的一個文獻目錄中。一般來講為了方便本地查詢,一個研究領域建一個資料庫並放在專用的文件夾中是比較合理的。然後在JabRef的這個新database里新建一個Entry(按Ctrl+N,然後點任何類型都可以),再把文獻網站導出的BibTeX的代碼粘貼到新條目下方的「BibTeX source」里去,如下圖所示:

再點保存。注意,此時一定要把source里的相關信息整理規範(上圖所示為經過整理後的信息),最後讓JabRef 自動生成新條目的BibKey(Ctrl+G)就好了。

四、規範化條目信息
至於什麼叫「規範」各人理解不同,但毋庸置疑的是整理bib項越認真,後面改文章時越省事。我個人整理好的一個條目列表如下圖所示:

說明一下,這個列表中的Timestamp列是我下載此文獻的時間,Comment列是對該文獻的「一詞簡介」,Note列是文獻的來源(期刊名或會議名)。JabRef原先的Booktitle列和Journal列因為太占寬度,我把它們關閉了。這些列的設置可以在軟體的參數設置中調整(Options -&> Preference -&> Entry table columns)。上面Comment和Note的信息是我手動編輯的,費點事但可以極大的提高以後查閱文獻的速度。可能剛開始的時候整理會比較麻煩,多試一試,很快就熟能生巧了。

另外,要注意有些作者的人名含有帶注音的母音字母,如果不改成LaTeX的代碼的話,就會在LaTeX編譯中形成亂碼。比如B?hm要改成B"{o}hm。還有,不要出現任何中文字元,否則會導致你的tex文件編譯出錯。


五、與文獻的pdf文件關聯
在用JabRef重新生成每個文獻的BibTeXKey的基礎上,將每個文獻對應的pdf文件都重命名為BibTeXKey的名稱,然後把這些pdf都放到與bib資料庫相同的目錄下,就會得到這樣的文件列表:

然後在JabRef中右鍵點擊一個條目,點Attach File,選擇對應的pdf文件,這樣條目就和pdf文件關聯起來了。關聯了以後,在條目左邊的序號後面會點亮pdf的圖標,雙擊這個圖標就可以直接打開文獻閱讀,非常方便。

注意,整個文獻文件夾是可以移植的,複製到另一台裝有JabRef的機器上,雙擊bib文件就可以打開,所有的pdf關聯都不會有問題。


六、在LaTeX中添加參考文獻目錄
盡量把你的tex文件放到和這個文獻目錄距離不遠的文件夾下,這個距離不遠指得是方便通過相對路徑索引到bib文件。然後在你已經創建好的tex文件中「documentclass」一行的下面添加如下代碼:

usepackage[numbers]{natbib}
citestyle{IEEEtran}
ibliographystyle{IEEEtranN}

這裡是用IEEE Trans的樣式做了一個示例,當然你可以有自定義的樣式,一般要符合雜誌社或會議的官方要求。在文檔最後需要插入參考文獻塊的地方(不能放在end{document}之後)加上一行:

ibliography{相對路徑/bib文件名}

這裡要千萬注意,只要文件名,不要帶上擴展名「.bib」。在相對路徑中,../表示上一級目錄,例如bib文件的目錄為documents/reference/pdf/abc.bib,tex文件在documents/latex/paper/my.tex里,那從tex文件訪問bib文件的方式為:

ibliography{../../reference/pdf/abc}

前兩個點是索引到documents/latex/,後兩個點是索引到documents/。

七、在LaTeX中插入引用
So easy!在JabRef里右擊條目,點Copy cite{...},得到標準的LaTeX引用語法,例如:

cite{Kriegel2009}

把它粘貼到你的tex文檔里要引用的位置。編譯tex文件時先用BibTeX編譯一遍,再用PDFLaTeX編譯兩遍(如果還不行,請重複執行「BibTeX編譯-&>PDFLaTeX編譯」),漂亮的引用文獻就生成了:

八、僅在文獻目錄中顯示需要的信息
如果你使用了IEEETran樣式(或其它樣式)的文獻引用和目錄,那可能會在文獻的目錄中列出各文獻的網址及其它信息,包括手動編譯的comment和note等,但這些信息是我們不希望在文獻目錄中出現的。處理方法也很簡單,進入「MikTeX安裝目錄ibtexstase」目錄,用文本編輯器打開IEEETran.bst文件,查找「FUNCTION {format.url}」,會看到下面的代碼:

FUNCTION {format.url}
{ url empty$
{ "" }
{ this.to.prev.status
this.status.std
cap.yes "status.cap :=
name.url.prefix " " *
"url{" * url * "}" *
punct.no "this.status.punct :=
punct.period "prev.status.punct :=
space.normal "this.status.space :=
space.normal "prev.status.space :=
quote.no "this.status.quote :=
}
if$
}

把它改成這樣:

FUNCTION {format.url}
{ url empty$
{ "" }
{ "" }
if$
}

還有FUNCTION {format.note}以及FUNCTION {format.comment}等等,這些你不希望顯示的信息都做同樣的處理。之後重新編譯你的tex文件。

全過程就是這樣,應該沒有漏掉什麼。弄不出來的私信我。


texlive emacs zotero(加上插件better bibtex)爽的飛起,體驗比word+endnote好了十萬八千里


直接用bibtex就可以。
LaTeX編輯工具的話,一般Windows下使用TeXworks ,OS X下使用TeXShop 都是可以的。
導出bibtex也可以使用Endnote等,但過程比較複雜,一般直接從文獻的網站導出bibtex就可以了。
文獻管理軟體推薦Windows下的Zotero (Zotero | Home),OS X下Bookends (Downloads)

Step 1
新建一個文件citation.bib,然後參考文獻引用bibtex:

把生成的文本貼入.bib文件

那麼得到的citation.bib如下所示

@INPROCEEDINGS{4658486,
author={Chai Beng Seow and Gani, R. and Jeoti, V.},
booktitle={Intelligent and Advanced Systems, 2007. ICIAS 2007. International Conference on},
title={Wavelet-DCT based image coder for video coding applications},
year={2007},
month={Nov},
pages={748-752},
keywords={data compression;discrete cosine transforms;discrete wavelet transforms;video codecs;video coding;DCT block;MATLAB;SIMULINK model;discontinuous tone image;discrete cosine transform;discrete wavelet transform;interframe compression;intraframe compression;still-image compression;video coding;video source;wavelet-DCT based image coder;Diffusion tensor imaging;Discrete cosine transforms;Discrete wavelet transforms;Fast Fourier transforms;Image coding;Intelligent systems;Mathematical model;Signal processing algorithms;Video coding;Video compression;DCT;Wavelet-DCT;compression;difference image;threshloding},
doi={10.1109/ICIAS.2007.4658486},}

Step 2
新建示例sample.tex文檔

documentclass[11pt, oneside]{article}
usepackage{geometry}
geometry{letterpaper}
usepackage{amssymb}

itle{Brief Article}
author{The Author}

egin{document}
maketitle
%section{}
%subsection{}
Wavelet-DCT based image coder for video coding applicationscite{4658486}.
% "4658486" is the keyword of the reference for citation

ibliographystyle{IEEEtran}
ibliography{citation}

end{document}

Step 3
把sample.tex和citation.bib放在同一個文件夾下,並且設置編譯器的編譯規則(如OS X的TexShop調整到pdflatexmk模式),即可得到結果


推薦免費好用雲同步的文獻管理軟體Mendeley,裡面有生成bib文件的功能,可以很方便地插入latex。


一輩子只要維護好一個bib文件就行了


對於一個剛剛入門的科研狗,學會管理參考文獻越早越好。

我一般採用的方式為zotero+jabref+texlive+vim/texmaker

一般來說,我們會看很多的英文文獻,那麼在文獻的管理方面就會凸顯各種麻煩,不知道怎麼管理。首先說一下我的管理參考文獻的軟體zotero,個人使用的原因:

第一是它可以從網站上自動幫我獲取我需要的文章,並且配合插件之後,可以完成下載、命名、分類等一系列工作。

第二,對於我電腦裡面有的參考文獻,也可以拖入到軟體裡面,完成上傳伺服器,命名、分類等工作。

第三,因為有時候用ubuntu,有時候用windows,跨平台的zotero就滿足了我的需求。同時,zotero支持小組內共同維護一個參考文獻庫。

第四,配合插件,自動按照雜誌需要的格式輸出bib文件。其他優點還有很多,重要的是開源開源開源!有能力的話可以自己搗鼓。

如圖所示,右側的信息就是zotero自動尋找並且生成的,即便是有些文獻很冷門,也可以選用手動輸入的方式。

這是一個開源的文獻管理軟體,本來是firefox瀏覽器的一個插件,也有獨立版的,這個在zotero官網可以下載到。我一般都使用獨立版,建議在操作模式下選擇英文界面。

中文文獻的管理就不要用zotero了,可以嘗試其他的比如noteexpress,不過對於題主來說,剛需應該是英文文獻。

軟體的具體使用可以參考網友寫的使用說明,不過相對於高智商的人才,這個難度應該很小。這裡有相當多的插件供你選擇使用,讓zotero更強大,我這裡只介紹兩個比較重要的插件:

zotfile:可以再下載文獻,抓取信息後,按照想要的格式重命名pdf文章,我的是按照雜誌、年份、文章題目命名的,也可以自己設置改成其他的。

zotero-better-bibtex:幫助更好的輸出需要的或者不需要的bib的項目

如圖所示,我在輸出參考文獻的時候取消掉了timestamp,abstract等key。

zotero軟體有一個伺服器儲存空間儲存大小(好像初始是100M)的問題,可以付費擴展,如果有經費的話也可以直接擴展到G以上。如果不願意花錢擴展,也可以通過WebDAV藉助堅果雲,將文獻儲存到堅果雲,學習教程在這。

通過一段時間的文獻的閱讀和整理,你自己就會有一個小型的文獻庫。

假定文章的讀者已經有一點Latex的基礎,如果對latex不是很了解,可以參考一些教材或者網路資源。一般英文雜誌社都會提供論文模板以及參考文獻的bst文件,比如APS系列,IOP系列,區別在這篇文章里可以查閱到,下載地址在雜誌社官網均有。我們如果想在latex了引用參考文獻,我們需要給參考文獻做bibitem,而對於大量的參考文獻我們一般是輸出一個bib文件後用bibtex編譯生成bibitem。我們使用zotero對我們看過的文獻進行整理,當我們想要使用參考文獻時,使用zotero輸出bib文件。

例如這裡我使用的是Phys.Rev.A的格式進行輸出,當然這個你可以自己選擇,幾乎有所有雜誌的輸出方式這裡面都可以選擇。這裡我推薦使用better bibtex輸出,因為那樣可以去掉一些不需要的項目。

Jabref是一款管理參考文獻的軟體,而且可以方便的和tex編輯器進行交互,當我們需要在文章中添加參考文獻的時候,我們只需要將游標點鐘文章,後再bib中選中所要引用的參考文獻然後點擊jabref右上角的圖標,即可在該位置加入參考文獻。下面我們將兩種交互方式

(1)Jabref+texmaker

我們首先把Jabref和編輯器進行關聯,這裡可以關聯的編輯器有六種,基本涵蓋了主流編輯器,關聯的方式除了vim比較麻煩以外,其他的只是添加程序路徑。

假定我們已經關聯好了Jabref和texmaker。我們首先打開要編輯的文章,後打開參考文獻的bib文件。當我們需要在文章中添加參考文獻的時候,我們只需要將游標點鐘文章,後再bib中選中所要引用的參考文獻然後點擊Jabref右上角的圖標,即可在該位置假如參考文獻。該位置的圖標可以修改為其他的編輯器。

(2)Jabref+vim

可以參考,「JabRef 和 vim 關聯通信是使用 vim server 連通的,這要求這兩個軟體都使用同樣的 vim server 名稱。在 JabRef 一端,選項-&>首選項-&>外部程序-&>Vim的設置-&>Vim 路徑自填,伺服器名處你可以使用默認的 vim 伺服器名 vim,也可以修改成任意名字,比如 xxtexvim;在 vim 一端,編輯 LaTeX 文件時不要使用通常的命令啟動 vim,要加上 vim 伺服器名,比如 vim --servername xxtexvim --remote-silent xxx.tex,這條命令的意思就是使用 vim 連接到伺服器 xxtexvim 修改 xxx.tex 文件,當然如果該伺服器不存在,就創建它。啟動了 JabRef 和 Vim ,如果在編輯 tex 文件的時候想加入某條文獻的引用,只需要在 JabRef 界面上方的工具欄按鈕「推送選中記錄到……」中選擇為 Vim,選中某條文獻後然後再點擊該Vim圖標,在vim軟體中的游標所在位置就會自動加入該文獻的引用。」

當我們加入好了參考文獻之後剩下的就是 pdflatex+bibtex+pdflatex,大功告成!

enjoy!


全平台jabref或者osx下papers吧。文獻搜索自動生成.bib。圖形界面,一鍵生成LaTeX key。可以試一下哈。


沒有什麼特別的軟體無非是
ads+bibtex
在ads里查到文獻,下面有鏈接 bibtex entry for this abstract.
用這個建立自己的引用數據文件就可以了。
反正一個大領域裡,每次工作要引用的文獻差別不大。也就第一次費點事,後面就簡單了。


這裡有一個可能在有些大神看來有些問題,但是一定是最簡單 最簡單 最簡單的方法!!!

首先,使用Overleaf在線編輯器。免費,還可共享編輯,實時自動保存,非常好。

然後,使用Mendeley管理文獻。這是一個非常好用、強大、又免費的軟體。

最後,重點來了!!!!!

Overleaf可以連接到Mendeley的library。只需在Overleaf登錄Mendeley賬戶,其中的文獻信息都會以bibtex文件格式自動上傳到Overleaf。如圖下。

然後通過citep{}就可以引用了。完全不需要自己編輯.bib文件!也不用像什麼百度經驗寫的各種編譯什麼的!非常方便!!!


.bib 文件 外加 cite{}


推薦refworks+texstudio的組合。
只要用google scholar找到文獻,導入reworks,refworks可自動導出bibtex文件,在texstudio中直接引用就可以了


Mendeley存儲文獻,
對於一個項目,導到jabref里生成bib文件,
插文獻直接用jabref插


我用cite{}, 觸發了一次文獻索引,可是我仍然想在這個地方插入文獻,如何調出文獻索引?


我對所有看過的文獻建立一個bib文件,引用的時候從這裡找。最後在提交論文的時候自己寫一個腳本將所引用的bib內容抽取出來,變成獨立的bib文件即可。


建立自己的bib文獻庫,引用的時候可以根據自己的設置,latex會自動生成bbl文件。


推薦閱讀:

((??? ?????? ??)???)這種一堆符號擠在一起的組合是如何打出來的?
Arial Unicode MS 的中文用的是什麼字體?
為什麼很多人不使用 Word 中的自動編號功能?
中國大陸地區真的存在紙質出版物不得採用豎排的禁令嗎?
《知日ZHIJP》的排版設計與日式排版設計的差距在哪兒?

TAG:文本編輯器 | 排版 | LaTeX | 學術論文 | LaTeX排版與設計 |