使用LaTeX按IEEE模板寫論文時的參考文獻管理方法(BibTeX使用小結)


之前用LaTeX寫論文時,參考文獻都是手動添加管理的,真是讓人很抓狂。所以這次趁着假期,簡單看了一下怎么使用BibTeX對參考文獻進行管理,這里以IEEE的最新模板為例。

首先說明,我之前用的是MiKTeXTeXnicCenter,用這兩個組合,按照網上教程搞了半天,發現TeXnicCenter中如果選擇BibTeX編譯就會報錯:“bibtex.exe: GUI framework cannot be initialized.” 實在不知道怎么回事,就將LaTeX安裝包換成TeX Live(需要將之前安裝的MikTex卸載)。說實話TeX Live也實在不智能,其ISO文件可以在CTEX的Mirror下載到:http://ftp.ctex.org/mirrors/CTAN/systems/texlive/Images/,但是郁悶的是把iso下載下來運行時,會報“perl.exe 已停止工作”,最后還是按照這里:http://www.tug.org/texlive/acquire-netinstall.html的在線安裝包安裝好的(其間也是斷斷續續弄了好幾遍)。按照微博上大家的推薦,這次改用了Texmaker這個工具,發現安裝很簡單,可以自動識別大部分TeX Live的組件。

下面以IEEE的最新模板為例,說說怎么樣生成符合其格式要求的參考文獻:

在這個頁面:http://www.ieee.org/conferences_events/conferences/publishing/templates.html下載Windows版本的兩個壓縮包。(其實這些模板最官方的版本還是在CTAN上,但是前面這個頁面是壓縮包,下載起來更方便些)

IEEEtranBST2.zip這個壓縮包是和BibTeX相關的,具體我也不解釋了,講講需要做的事情:將這個壓縮包中的IEEEtran.bst和IEEEtranS.bst拷貝至下面的目錄:

%TeX Live安裝目錄%\texmf-local\bibtex\bst (這里需要注意的是,TeX Live大部分文件都被推薦安裝到如2012這樣年份代表的目錄下,但是texmf-local這個目錄是一些和用戶設置相關的內容,這樣可以保證重裝或完全升級TeX Live后保留所有的用戶數據),第二個文件中的S表示參考文獻按照作者名等排序(大部分情況不用,因為IEEE很多要求是無序參考文獻,就是說按照參考文獻在文中出現的順序編號)

其次,將上面壓縮包中的IEEEabrv.bib和IEEEfull.bib拷貝至下面的目錄:

%TeX Live安裝目錄%\texmf-local\bibtex\bib。

我們以windows_latex_template.zip壓縮包中的bare_conf.tex為例,在這個文件的\end{document} 之前添加這兩條語句:

1
2
\bibliographystyle{IEEEtran}
\bibliography{IEEEabrv,IEEEexample}

這里其實就告訴編譯器,我們將用到IEEEabrv.bib和IEEEexample.bib這兩個文件。前者我們已經設置好了。后者就拷貝到和bare_conf.tex在同一文件夾中。那么我們在正文中加入:

1
\cite{IEEEexample:articleetal}

其實就表示在上面兩個文件中查找ID為IEEEexample:articleetal的BibTeX記錄,我們看看這個記錄在IEEEexample.bib中長什么樣子:

1
2
3
4
5
6
7
8
9
10
@article{IEEEexample:articleetal,
  author        = "F. Delorme and others",
  title         = "Butt-jointed {DBR} Laser With 15 {nm} Tunability Grown
                   in Three {MOVPE} Steps",
  journal       = "Electron. Lett.",
  volume        = "31",
  number        = "15",
  year          = "1995",
  pages         = "1244-1245"
}

其實具體含義一看便知,接下來我們需要對上面的tex文件編譯。首先在Texmaker中選擇XeLaTeX,編譯生成aux文件(此時一般會報錯,不用管),再用BibTeX編譯一遍,生成bbl文件,再重新用XeLaTeX編譯兩遍,兩次生成dvi文件(因為它第一遍需要解決參考文獻的問題)。然后我們再用PDF查看,就可以看到在文中生成正確的參考文獻引用了。

下面還有一個主要問題需要解決,如果同時引用好幾篇,那么這是在文中是分開的,如[2], [3]這個樣子,一種最簡單的解決方式是在

1
\documentclass[conference]{IEEEtran}

的后面加入:

1
\usepackage[numbers,sort&compress]{natbib}

在引用時,需要把多篇引用寫在同一個cite中,如:

1
\cite{ZongweiGligor-335,WheeldonCounsell-331}

這樣就可以實現諸如[2, 3]這樣的形式了。

最后一個需要解決的問題,怎樣整理正確的BibTeX應用,很多教程中提到了JabRef,但是我安裝之后發現很郁悶,我點擊其Search——web search時,這個軟件沒有一點反應。我又試了試NoteExpress,EndNote等軟件,都存在一些問題:用NoteExpress(2.7.1版本)導出的bib文件有問題,EndNote(X4版本)不能在線搜索IEEE數據庫。所以又對比了一下通過IEEEACM和Google Scholar以及CiteULike導出的BibTeX文件,嚴格意義上來說,生成的BibTeX文件都不符合要求。例如,在剛才IEEEexample.bib文件中給出的會議論文的booktitle字段應該長這個樣子:

1
2
booktitle     = "Proc. {IEEE} International Workshop on
                 Microelectromechanical Systems ({MEMS}'97)"

但是所有的自動生成BibTeX記錄都不是縮寫的Proc而是如Proceedings of the 20XX IEEE Symposium on,或者干脆沒有Proc或Proceedings of。個人認為,其實並不一定要完全符合要求,對比了很多TOP的會議,很多論文的參考文獻格式也是大致符合,只要保證在一篇文章中風格一致即可。整體來說,IEEE和Google Scholar生成的文件比較准確。如果實在要求嚴格,可以在最后出版時再手動調整。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM