LaTeX 如何用 .bib 插入参考文献:从入门到入土(含完整示例)
LaTeX 如何用 .bib 插入参考文献:从入门到入土(含完整示例)
1. 基本概念速览
.bib文件:参考文献数据库(纯文本),由一条条@article{...}、@book{...}等构成。- 引用命令:在正文中用
\cite{键}、\citep{键}、\citet{键}等调用。 - 样式:决定文末参考文献列表的格式(作者名、期刊名、年份等的排版)。
- 编译链:
- BibTeX 路线:
pdflatex → bibtex → pdflatex → pdflatex - biblatex 路线:
pdflatex → biber → pdflatex → pdflatex
- BibTeX 路线:
2. 路线 A:BibTeX(经典稳定,投稿友好)
2.1 目录与文件结构
project/ |
注:很多期刊会提供
.bst(样式)与.cls(文档类),放在同目录或 TEX 路径可见处即可。
2.2 .bib 文件示例(refs.bib)
@article{Willott1999, |
技巧:从 Google Scholar、ADS、Zotero、Mendeley 可直接导出 BibTeX。导入时注意清理字段(如多余的 html 标记)。
2.3 natbib + BibTeX 最小示例(main.tex)
\documentclass[11pt]{article} |
2.4 常用 natbib 引用命令
\citet{键}:作者名在句中(Author (Year))\citep{键}:括号引用((Author, Year))\citealp{键}:无括号外壳的引用(Author, Year)\citeyear{键}:只年份\citeauthor{键}:只作者
选择不同的
\bibliographystyle{...}(如plainnat、unsrtnat、apalike、期刊.bst)会改变最终格式。
2.5 编译步骤(本地 TeX Live/MiKTeX)
pdflatex main |
Overleaf:菜单选择 Compiler 为 pdfLaTeX,点击 Recompile;首次需要让 Overleaf 触发
bibtex,一般自动完成。
3. 路线 B:biblatex + biber(功能强、中文友好、Web 字段丰富)
3.1 .bib 文件可与上文相同(refs.bib)
3.2 最小示例(main.tex)
\documentclass[11pt]{article} |
3.3 常用 biblatex 引用命令
\parencite{键}:括号引用\textcite{键}:作者名融入正文\footcite{键}:脚注引用\citeauthor{键}、\citeyear{键}同理可用
3.4 编译步骤
pdflatex main |
Overleaf:菜单设置 Biber 为后端(Project → Settings → Compiler:pdfLaTeX;Biber enabled)。首次编译后 Overleaf 会自动运行 biber。
4. 选择哪条路线?
- 投稿/跟随期刊模版:通常用 BibTeX + 期刊
.bst;很多天文、物理期刊(AAS、MNRAS、A&A)传统上就是这个。 - 个人论文/讲义/中文环境更友好:推荐 biblatex + biber(可玩性强,字段更全,分组/过滤更灵活)。
- 已有大量老项目:继续用 BibTeX 也很好,稳定可靠。
5. 处理中文与编码
- 现代 TeX Live 下,建议用
xelatex或lualatex编译,并配合biblatex + biber:
\documentclass{article} |
- BibTeX 处理中文较麻烦,需要
gbt7714等样式或将中文转拼音排序;若需国标格式,可用\usepackage[backend=biber,style=gb7714-2015]{biblatex}(需安装biblatex-gb7714-2015套件)。
6. 常见条目类型与字段(速查)
@article:author,title,journal,year,volume,number,pages,doi,url@book:author/editor,title,publisher,year,edition@inproceedings:author,title,booktitle,year,pages@misc:万金油;可放howpublished,note,url,doi,eprint(arXiv)@phdthesis/@mastersthesis:author,title,school,year
arXiv:可用
eprint={arXiv:XXXX.XXXXX},archivePrefix={arXiv},primaryClass={astro-ph.GA}等字段(biblatex 对 eprint 支持更好)。
7. 批量管理文献的实用建议
- Zotero / Mendeley 管库 → 导出
.bib到项目目录。 - 给文献稳定的 citation key(如
AuthorYearTitleKey),避免与同名同年冲突(必要时加a,b,c)。 - 定期清理
.bib:去掉无用字段(abstract、file、urldate等,按需)。
8. 常见报错与排查
- “Citation
xxxundefined”- 键不存在/拼写错误;或忘记在
.tex中\bibliography{refs}/\addbibresource{refs.bib}。 - 没有按正确顺序多次编译(见第 2.5/3.4 步骤)。
- 键不存在/拼写错误;或忘记在
- 参考文献不显示/老版本
- 忘了运行
bibtex/biber;或.aux/.bbl/.bcf等中间文件残留导致。 - 解决:删中间文件重新编译,或按顺序完整跑一遍。
- 忘了运行
bibernot found / biblatex 报错- 本地没装
biber或 PATH 未配置;Overleaf 需在设置里启用 biber。
- 本地没装
- 中文乱码/问号
- 用
xelatex/lualatex+biblatex + biber;或检查.bib的 UTF-8 编码。
- 用
- 样式不合期刊要求
- 使用期刊提供的
.bst(BibTeX)或官方文档推荐的biblatex样式。 - 某些期刊仅接受 BibTeX 格式的
.bbl,按其要求生成即可。
- 使用期刊提供的
9. 进阶:同一文献多次引用、附加页码、前后缀
- natbib:
\citep[见][p.~12]{Willott1999}→ (见 Willott et al., 1999, p. 12)\citep[例如][]{Willott1999}、\citet[第2节]{Willott1999}
- biblatex:
\parencite[见][12]{Willott1999}\parencite[例如][]{Willott1999}\textcite[§2]{Willott1999}
10. 在博客中展示
- 用 Markdown 代码块粘贴
.tex、.bib示例(与本文相同做法)。 - 若博客支持渲染公式(KaTeX/MathJax),依然建议给出 可复制的源码,方便读者本地测试。
- 可附一张编译流程图或命令行片段(见上文编译命令)。
11. 完整可运行示例(两套各给一份)
11.1 BibTeX + natbib 版
main.tex
\documentclass[11pt]{article} |
refs.bib
@article{Willott1999, |
编译
pdflatex main |
11.2 biblatex + biber 版
main.tex
\documentclass[11pt]{article} |
refs.bib(同上)
编译
pdflatex main |
12. FAQ 快速解惑
Q:期刊要求提供
.bbl,怎么弄?
A:走 BibTeX 流程,编译后生成的main.bbl即可提交。biblatex 路线有时不被传统流程接受。Q:同一作者同一年多篇
[2019a, 2019b]如何自动添加 a/b?
A:natbib与biblatex都会自动区分;关键在于条目的year与作者相同,系统会追加字母。Q:如何显示 DOI/URL?
A:biblatex默认更友好;BibTeX 需样式支持(如plainurl、apalike的改款、或期刊.bst)。
在biblatex下,可\usepackage[doi=true,url=true]{biblatex}(或样式本身已开启)。Q:我需要 GB/T 7714 国标格式?
A:推荐biblatex-gb7714-2015:\usepackage[backend=biber,style=gb7714-2015]{biblatex}
13. 一键排错清单(贴墙用)
- 检查 citation key 是否一致(
\cite{键}与.bib中的@...{键, ...})。 - 跑对 编译顺序(BibTeX vs biber)。
- 删中间文件(
.aux .bbl .bcf .blg .run.xml等)后重编。 - 确认 Overleaf/本地 后端设置(biber 是否开启)。
- 确认 编码 为 UTF-8;中文建议用
xelatex+biblatex。







