問題:更新bib文件之后,編譯tex文件輸出的PDF文件沒有相應的更新。
原理:
bbl文件才是引文的信息,bib文件只是用於生成bbl文件的一個“數據集”而已。
一般來說,LaTeX在編譯tex文件的時候會編譯對應的bib文件,但是當bib文件出錯時LaTeX通常不返回錯誤信息,這導致問題變得很難尋找。正常情況下,bib被編譯時產生bbl文件,自動覆蓋原有bbl文件,實現引文的更新。當bib文件中出現語法錯誤時,bib文件將不會被編譯,那么bbl文件也不會被創建。此時,如果原來成功編譯過bib文件,則原來的bbl文件不會被覆蓋,於是表現為得到的PDF沒有更新;如果原來沒有成功編譯過bib文件,或者bbl文件被刪除,則表現為沒有參考文獻(甚至“參考文獻”欄目也消失)。
解決方案:
bbl文件才是引文的信息,因此每次更新bib文件之后應該重新編譯該文件,這也有助於對bib文件語法錯誤的定位和解決。
具體解決方法如下:
1.刪除所有的編譯臨時文件;
2.bib文件名改為和tex文件同名;
3.在tex文件中對引用的bib文件名進行對應的修改;
4.編譯tex文件,產生aux文件;
5.編譯bib文件,生成正確的引文信息bbl文件;
6.再次編譯tex文件,將會使用bbl文件對tex文件中的引文進行對應。此時將會生成正確的pdf文件。