LaTeX 中的參考文獻(.bib) BibTex 用法和解決LaTeX 中的參考文獻問號的問題

原文鏈接:http://blog.sina.com.cn/s/blog_607233f501013gc5.html

一、LaTeX參考文獻引用顯示?問號解決辦法

轉自:https://blog.csdn.net/qq_39662852/article/details/88878870

在使用Latex之前,我們一般會借用已有的論文模板,在模板基礎上加入我們自己的文章內容,隨後編譯成PDF文件,其基本流程就是:Latex->Bibtex->Latext->Latex。

1、第一步點擊Latex編譯,可以獲得*.aux文件、.dvi文件、.log文件以及*.gz文件;

2、第二步點擊Bibtex編譯,可以獲得*.blg(性能監視器文件)和*.bbl文件;

3、第三步再次點擊Latex編譯,獲得新的*.aux文件、.dvi文件、.log文件以及*.gz文件;

4、第四步再次點擊Latex編譯。

各種百度goggle搜出來的都是這玩意。一點鬼用都沒有!!!講下作爲菜雞的我修復經歷。敲黑板劃重點!!!
不管你用的LaTeX是CTeX還是MikTeX,只要參考文獻不生成出現問號,看這裏看這裏就可以解決。


一般我們用LaTeX寫論文都是拿別人的模板直接改的,紅線框住的3個文件是必須的依賴文件。

1 .sty和.cls都是一些你這個論文樣式的配置參數文件。
2 .bst文件纔是參考文獻必須依賴的文件!!


它長這個樣子,可以自己去網上下載,也可以自己設計生成,反正我不會設計。自己設計去這裏下包,按步驟生成
怎麼生成,可以看下這個人寫的博客:地址
反正自己去找一個.bst文件,下次把它放github上面,去下載吧。

  •     修復過程

然後,打開你的主文件,我這裏document.tex,
第一步,點擊XeLatex編譯,沒毛病進行下一步。
第二步,點擊BibTeX編譯,如果可以,再進行兩次XeLatex編譯後你的參考文獻就會出來,如果BibTeX這一步不能通過,那你的參考文獻一定不顯示,且是個?問號
怎麼辦呢,點擊BibTeX編譯之後看輸出窗口那裏的錯誤,一定是你參考文獻有問題。然後有人就會想,參考文獻是直接導出的BibTex格式,爲啥還會這樣,是的,真的會錯。


點擊顯示輸出面板,你就知道編譯BibTeX的時候出了幾個錯,哪裏出了錯。比如提示你這樣的錯誤:

老說你少個$符號,看着提示對應去找哪一行參考文獻出了問題。


比如你導出的參考文獻裏有特殊字符 下劃線、dollar符號之類的,但是它沒用 "\"進行轉譯,那就會導致整個參考文獻都沒法顯示。其實細想一下可以知道,這些特殊符號在LaTeX裏面是有特殊含義的,而你現在要把它當做正常的字符在正文中顯示出來,肯定是要轉譯的,一般導出來的Bibtex格式的參考文獻導出來後都不會對特殊字符進行轉譯,所以還得自己來手動去加。
你一個一個把參考文獻裏的東西調好之後,參考文獻就肯定沒問題了可以顯示。
其實正常模板都會自帶這些環境都是沒什麼問題的,別人能用你不能用,不就是自己的問題嗎?如果出現不能解決的錯誤還是從本身找下問題,正常情況模板的環境都不會有問題。
再附一個鏈接,裏面的各種模板,可以去裏面找.bst文件。北郵電博士論文模板



 

二、LaTex中的參考文獻

轉自:http://www.eefocus.com/sunshine/blog/09-08/175253_b0ef9.html

            http://blog.sina.com.cn/s/blog_607233f501013gc5.html
原題: 《LaTeX 中的參考文獻》

LaTeX 的對參考文獻的處理實在是非常的方便,我用過幾次,有些體會,寫出來供大家
參考。當然,自己的功力還不夠深,有些地方問題一解決就罷手了,沒有細究。

   LaTeX 對參考文獻的處理有這麼一些優點:

1. 可以維護一個 bib 文件,在你的整個研究生涯可以只維護這樣一個文件,就象一個數
據庫,每個參考文獻是一個記錄,由一個唯一的 ID (例如下面的 MartinDSP00)描述。
比如我的 myreference.bib 文件裏一條典型的文獻是這樣的:

@article{MartinDSP00,
    author = "A. Martin and M. Przybocki", 
    title = "The {NIST} 1999 speaker recognition evaluation --- an overview",

    journal = "Digital Signal Processing", 
    volume = "10", 
    pages = "1--18", 
    year = "2000",}
    
   其中 {NIST} 中的大括號不會被顯示,它的作用是保證將來的生成的參考文獻中 NIST
 四個字保持原樣,不會被小寫。

2. 需要引用文獻的時候,在正文里加入:

\bibliographystyle{ieeetr}
\bibliography{myreference}

   就可以用 \cite{} 來引用文獻庫中的論文了,如 \cite{MartinDSP00}。上面第一行是
控制文獻顯示格式的,這個後面再講。此時,myreference.bib 文件在正文 tex 文件的同
一目錄下,以保證 LaTeX 可以找到該 bib 文件。

3. 編譯正文之後,生成 aux 文件,然後用 bibtex 在當前目錄生成 bbl 文件,再編譯正
文兩次,完整的 dvi 就生成了。這樣,LaTeX 保證了所有用 \cite 引用到的文獻都已被
列出,並且自動編號。同時,如果沒有用 \nocite 命令,LaTeX 還保證所有列出的參考文
獻都在正文中得到了引用。

4. 關於 bib 文件
   前面提到 bib 文件的維護問題。我一般不對裏面的文獻排序,如果文獻比較多,需要
查找的話,可以通過查詢關鍵字來實現。bib 文件把 @ 所定義的 entry 之外的所有東西
看作是註釋。比如在上面 @article 的例子裏,如果我在大括號之外寫些東西的話,bibt
ex 是不會關心的,就當它不存在。所以我就把文獻的關鍵字寫在這裏,將來通過搜索關鍵
字來查找某些文獻。其實也可以搞一個臨時的 LaTeX 文件,使用 \nocite{*} 命令,然後
編譯成 dvi,這樣就得到了一個 bib 文件中所有參考文獻的列表,當然是可以按照作者名
字排序的。
   另外,很多 journal(學術期刊)或者 booktitle(國際會議)都是重複的,爲了規範
化,可以定義縮寫,如

@string(ICASSP = "Proc. of the International Conference on Acoustics, Speech, 
and Signal Processing (ICASSP)")

   然後
   
   @conference{QL.ICA98,
    author = "Qi Li and Biing-Hwang Juang",
    title  = "Speaker Verification Using Verbal Information Verification for A
utomatic Enrollment",
    booktitle = ICASSP,
    year = "1998",}

   這樣在執行 bibtex 之後,ICASSP 會被替換成它的全稱。

5. bib 中的中文文獻
   中文文獻和英文的格式不同,並且使用全角的標點符號,有一點難辦。我的解決辦法是
這樣的:

   @misc{Xie.1995,
    note = "謝錦輝,《隱 {Markov} 模型及其在語音處理中的應用》,華中理工大學出
版社,1995年4月",
    key = "Xie",}

   唯一的缺陷是參考文獻中最後是以英文的 "." 而不是 "。" 結束的。還好我的中文文
獻不多,無傷大雅,否則就手工修改一下 bbl 文件吧。

6. 關於參考文獻的顯示格式、排序,及其他
   前面提到參考文獻的排序問題,以及引用序號是 LaTeX 提供的 ID 還是數字的問題。
其實不止這些,參考文獻的顯示格式也是可以定製的。參考文獻以正文中引用順序排序,
還是以文獻第一作者的 last name 排序,是通過一些 bst 文件來控制的。而使用哪種 b
st 格式,可通過 bibliographystyle 命令控制。LaTeX 默認提供了這麼幾種格式,如:
plain、alpha、unsrt等。具體意義見相關文檔,這些 bst 在 texmf\bibtex\bst\base 可
被找到。
   bst 控制的格式非常細緻,除了上面講過的排序方式等,還有:作者名字是否用縮寫,
作者名字放在文獻的起始還是結束,文章 title 要不要大小寫(即 "Speaker Verificat
ion Using ..." 還是 "Speaker verification using "),title 用什麼區分(用不用引
號括起來,用不用斜體等),刊物名字的格式(要不要全部大寫,要不要粗體,要不要斜
體,要不要括起來),等等等等。打開 bst 文件看一下就知道,絕對是想要什麼形式,就
可以得到什麼形式。最關鍵的是,在文章定稿之後,完全可以用幾個命令重新定義參考文
獻的格式!
   
   給個例子:採用 IEEE 給出的 bst 格式(即 ieeetr.bst),聲明:

\bibliographystyle{ieeetr}

   就可以使用了。最終格式是這樣的(按正文引用順序排序):
   [4] D. A. Reynolds, "Comparison of background normalization 
       methods for text-independent speaker verication," in 
       EUROSPEECH, 1997.
       
7. 如何定製參考文獻的顯示格式
   其實 bst 文件有很多,總能找到自己需要的。如果這些還不能滿足,可以通過生成自
己的 bst 文件來定製。這有兩個方法,第一是手寫(反正我是寫不出來),第二是通過工
具。custom-bib 是一個定製 bst 文件的包,解壓縮後用 LaTeX 編譯其中的主 tex 文件
,便會進行交互式的 bst 定製過程,具體過程我就不講了。把生成的自定義的 bst 放到
 LaTeX 相應目錄下,刷新文件名數據庫就可以使用了。


二、其他出處材料

轉自:https://blog.csdn.net/Huihui_Lv/article/details/88664173

由於部分文章的參考文獻需要在正文引用時需要(作者,年份),故作如下處理(一)

(1)\usepackage{natbib}

(2)\bibliographystyle{model5-names}

(3)\biboptions{authoryear}      (若無這一句,默認顯示參考文獻編號,如【1】;加上這句後可變成引用作者加年份)

也可直接通過這種方處理(二)

(4)\usepackage[authoryear]{natbib}

(5)\bibliographystyle{plainnat}

具體引用過程如下

( \citeauthor{1}, \citeyear{1} )        (自己添加()括號,花括號{}內爲文獻的標籤)

最後一步是通用的

\biblography{mybibfile}          (mybibfile爲自己在WinEdit下新建的bib文件,內部可添加參考文獻,便於文獻集中管理,需編譯一下)

 

但是參考文獻好像不是按照作者姓名首字母排序的,這個暫時還未解決,希望會的小夥伴支支招


三、其他材料

 LaTeX 標準選項及其樣式共有以下8種:

plain,按字母的順序排列,比較次序爲作者、年度和標題.
unsrt,樣式同plain,只是按照引用的先後排序.
alpha,用作者名首字母+年份後兩位作標號,以字母順序排序.
abbrv,類似plain,將月份全拼改爲縮寫,更顯緊湊.
ieeetr,國際電氣電子工程師協會期刊樣式.
acm,美國計算機學會期刊樣式.
siam,美國工業和應用數學學會期刊樣式.
apalike,美國心理學學會期刊樣式.

LaTe模板:http://www.yxlunwen.com/lunwendaquan/latexcankaowensuoshunxu/

參考文獻模板製作:https://ctan.org/pkg/custom-bib

參考文獻模板製作指導:http://blog.sina.com.cn/s/blog_607233f501013gc5.html


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章