LaTeX 參考文獻管理:BibTeX 與 biblatex 實操教學

說明中心EasyLaTeX 官方發布日期

參考文獻的「資料」和「顯示樣式」應分開管理。先遵循學校或期刊模板,再選擇手寫條目、經典 BibTeX 或 biblatex。本教學的示例條目都與正文中的引用鍵對應,不使用虛構 DOI。

三種方式怎麼選

方式適合場景主要配置
thebibliography少量、無需重複使用的條目\bibitem 和 \cite
BibTeX模板指定 .bst\bibliographystyle 和 \bibliography
biblatex沒有特殊模板限制,需靈活樣式\addbibresource 和 \printbibliography

手寫條目的完整例子如下。它不用 .bib,但參照編號仍由平台管理所需的編譯輪次:

LaTeX
\documentclass[UTF8,a4paper,11pt]{ctexart}\ctexset{contentsname={目錄},listfigurename={插圖目錄},listtablename={表格目錄},figurename={圖},tablename={表}}​\begin{document}For typesetting background, see~\cite{knuth1984}.\begin{thebibliography}{9}\bibitem{knuth1984} Donald E. Knuth. \emph{The TeXbook}. Addison-Wesley, 1984.\end{thebibliography}\end{document}

建立可重複使用的 refs.bib

在檔案樹中新增 refs.bib,放入以下兩條實際出版物。條目鍵分別為 knuth1984 和 lamport1994:

bibtex
@book{knuth1984,  author = {Donald E. Knuth},  title = {The TeXbook},  publisher = {Addison-Wesley},  year = {1984}}@book{lamport1994,  author = {Leslie Lamport},  title = {LaTeX: A Document Preparation System},  edition = {2},  publisher = {Addison-Wesley},  year = {1994}}

文獻資料可跨專案重複使用。遷移引用方式時,也要檢查所用欄位與樣式是否相容,不能假設所有特殊欄位都通用。

使用 biblatex 與 Biber

在專案根目錄儲存上述 refs.bib,主檔案使用:

LaTeX
\documentclass[UTF8,a4paper,11pt]{ctexart}\ctexset{contentsname={目錄},listfigurename={插圖目錄},listtablename={表格目錄},figurename={圖},tablename={表}}\usepackage[backend=biber,style=authoryear,maxcitenames=2]{biblatex}\addbibresource{refs.bib}\usepackage{hyperref}\begin{document}Background on typesetting is given in~\parencite{knuth1984}.\textcite{lamport1994} describes document preparation with LaTeX.\printbibliography\end{document}
  • backend=biber 指定文獻處理後端。
  • style=authoryear 使用作者—年份形式。
  • maxcitenames=2 控制正文顯示的作者數量。
  • \addbibresource{refs.bib} 寫完整的 .bib 檔名。
  • \parencite 是括號引用,\textcite 把作者放入句子,\printbibliography 輸出列表。

在編輯器設定中選擇 XeLaTeX,點選編譯並等待整個任務結束。平台會處理 LaTeX 與 Biber 的依賴輪次;有 [?] 時檢查本次日誌、引用鍵和檔案路徑。

模板提供 .bst 時使用 BibTeX

下面以 plainnat 為例;如果模板提供自己的 .bst,使用其不含字尾的名字,並保留模板要求的套件:

LaTeX
\documentclass[UTF8,a4paper,11pt]{ctexart}\ctexset{contentsname={目錄},listfigurename={插圖目錄},listtablename={表格目錄},figurename={圖},tablename={表}}\usepackage{natbib}\begin{document}For typesetting background, see~\citep{knuth1984}.\bibliographystyle{plainnat}\bibliography{refs}\end{document}

\bibliography{refs} 使用傳統 BibTeX 的資料庫名寫法。不要將這套指令與 biblatex 的輸出指令混在同一份配置裡。

如何調整樣式

以下是兩種互斥的示例,選擇一行替換原來的 biblatex 載入行,不能兩行一起載入:

LaTeX
\usepackage[backend=biber,style=numeric]{biblatex}
LaTeX
\usepackage[backend=biber,style=authoryear]{biblatex}

學校或期刊要求 GB/T 7714 時,可根據模板採用相應樣式。順序編碼與著者—年份同樣二選一:

LaTeX
\usepackage[backend=biber,style=gb7714-2015]{biblatex}
LaTeX
\usepackage[backend=biber,style=gb7714-2015ay]{biblatex}

樣式決定顯示方式,欄位決定可顯示的資訊。更換樣式後仍應核對引用順序、作者、日期、卷期、頁碼和 DOI,而不是隻看能否編譯。

常見問題

現象檢查位置處理
[?] 或引用鍵未解析當前任務與文獻日誌等待完整處理,核對文獻配置和鍵
Citation 'xxx' undefined正文與 .bib保持鍵的拼寫和大小寫一致
列表為空引用指令與輸出指令確認引用了條目,且輸出在 \end{document} 前
檔案找不到檔案樹與路徑核對 refs.bib 或模板 .bst 的位置

常見操作

少量條目可以繼續手寫;能正常工作的期刊模板不必只為換工具而遷移。用 \printbibliography[type=book] 可按型別過濾,按章節組織可研究 refsection,但應先完成一個最小可工作的專案。

需要檢查引用完整性時,參閱 正文與文獻庫雙向核對。