LaTeX 參考文獻管理:BibTeX 與 biblatex 實操教學
參考文獻的「資料」和「顯示樣式」應分開管理。先遵循學校或期刊模板,再選擇手寫條目、經典 BibTeX 或 biblatex。本教學的示例條目都與正文中的引用鍵對應,不使用虛構 DOI。
三種方式怎麼選
| 方式 | 適合場景 | 主要配置 |
|---|---|---|
thebibliography | 少量、無需重複使用的條目 | \bibitem 和 \cite |
| BibTeX | 模板指定 .bst | \bibliographystyle 和 \bibliography |
| biblatex | 沒有特殊模板限制,需靈活樣式 | \addbibresource 和 \printbibliography |
手寫條目的完整例子如下。它不用 .bib,但參照編號仍由平台管理所需的編譯輪次:
\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:
@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,主檔案使用:
\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,使用其不含字尾的名字,並保留模板要求的套件:
\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 載入行,不能兩行一起載入:
\usepackage[backend=biber,style=numeric]{biblatex}\usepackage[backend=biber,style=authoryear]{biblatex}學校或期刊要求 GB/T 7714 時,可根據模板採用相應樣式。順序編碼與著者—年份同樣二選一:
\usepackage[backend=biber,style=gb7714-2015]{biblatex}\usepackage[backend=biber,style=gb7714-2015ay]{biblatex}樣式決定顯示方式,欄位決定可顯示的資訊。更換樣式後仍應核對引用順序、作者、日期、卷期、頁碼和 DOI,而不是隻看能否編譯。
常見問題
| 現象 | 檢查位置 | 處理 |
|---|---|---|
[?] 或引用鍵未解析 | 當前任務與文獻日誌 | 等待完整處理,核對文獻配置和鍵 |
Citation 'xxx' undefined | 正文與 .bib | 保持鍵的拼寫和大小寫一致 |
| 列表為空 | 引用指令與輸出指令 | 確認引用了條目,且輸出在 \end{document} 前 |
| 檔案找不到 | 檔案樹與路徑 | 核對 refs.bib 或模板 .bst 的位置 |
常見操作
少量條目可以繼續手寫;能正常工作的期刊模板不必只為換工具而遷移。用 \printbibliography[type=book] 可按型別過濾,按章節組織可研究 refsection,但應先完成一個最小可工作的專案。
需要檢查引用完整性時,參閱 正文與文獻庫雙向核對。