> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/zh-cn/can-kao-wen-xian-he-yin-yong/01-bibliography-management-with-bibtex.md).

# 使用 bibtex 进行参考文献管理

## 提示说明

如果你从零开始，我们建议使用 [biblatex](/latex/zh-cn/geng-duo-zhu-ti/05-bibliography-management-in-latex.md) 因为该宏包提供多种语言的本地化支持，而且仍在积极开发中，并且能让参考文献管理更轻松、更灵活。

## 引言

许多 [教程](https://www.overleaf.com/latex/learn/free-online-introduction-to-latex-part-2) 已经写过很多关于……是什么以及 $$\mathrm{Bib\TeX}$$ 是什么以及 [如何使用它](https://www.overleaf.com/help/97-how-to-include-a-bibliography-using-bibtex)。然而，根据我们为 Overleaf 用户提供支持的经验，这仍然是许多刚接触……的新手最感困惑的话题之一 $$\mathrm{\LaTeX}$$ 觉得很复杂——尤其是当事情不太顺利时；例如：引文没有显示；作者姓名有问题；没有按要求的顺序排序；参考文献列表中没有显示 URL，等等。

在本文中，我们将把与引文、参考文献和书目有关的各个要点，以及 Overleaf 和相关工具如何帮助用户管理这些内容，汇总起来。

我们先快速回顾一下……如何 $$\mathrm{Bib\TeX}$$ 以及参考文献数据库（`.bib`）文件如何工作，并看看一些准备 `.bib` 文件。当然，这难免会重复许多在线教程中的部分内容，但未来的文章会扩展我们的介绍，涵盖参考文献样式和 `biblatex`——替代性的宏包和参考文献处理程序。

## 参考文献：其实就是一份 \bibitems 列表

我们先从“幕后”快速看一看，了解一个 $$\mathrm{\LaTeX}$$ 参考文献列表由什么组成——请 *不要* 这样开始编写你的参考文献列表，因为在本文后面我们会介绍其他更方便的方法来实现这一点。

参考文献列表其实只是一个 `thebibliography` 的列表 `\bibitems`:

```latex
\begin{thebibliography}{9}
\bibitem{texbook}
Donald E. Knuth（1986）\emph{The \TeX{} Book}，Addison-Wesley Professional。

\bibitem{lamport94}
Leslie Lamport（1994）\emph{\LaTeX: a document preparation system}，Addison
Wesley，马萨诸塞州，第 2 版。
\end{thebibliography}
```

默认情况下，这个 `thebibliography` 环境是一个带编号的列表，标签为 `[1]`, `[2]` 等等。如果所使用的文档类是 `article`, `\begin{thebibliography}` 会自动插入一个无编号节标题，标题使用 `\refname` （默认值： **References**）。如果文档类是 `book` 或 report，那么会插入一个无编号章标题，标题使用 `\bibname` （默认值： **Bibliography**）代替。每个 `\bibitem` 接受一个 *引用键* 作为参数，你可以将其与 `\cite` 命令一起使用，后面跟着该参考条目的信息。因此，如果你现在写

```latex
\LaTeX{} \cite{lamport94} 是建立在 \TeX{} \cite{texbook} 之上的一组宏。
```

连同前面的 `thebibliography` 代码块一起，这就是你运行 $$\mathrm{\LaTeX}$$ 处理程序（即以下任一程序： `latex`, `pdflatex`, `xelatex` 或 `lualatex`）处理源文件时在 PDF 中呈现出来的内容：

![从 thebibliography 列表中引用条目](/files/193d931d8ffced4bdd7a7ee51114c013f0162ea4)

**图 1：** 从一个……中引用条目 `thebibliography` 列表。

注意每个 `\bibitem` 都会自动编号，以及 `\cite` 然后插入相应的数字标签。

`\begin{thebibliography}` 需要一个数字参数：列表中预期的最宽标签。在这个例子中我们只有两个条目，所以 `9` 就足够了。不过，如果你有超过十个条目，你可能会注意到列表中的数字标签开始对不齐：

![标签过短的 thebibliography](/files/66003c07048a0334cd3677c34e1859aa2c47709d)

**图 2：** `thebibliography` 标签过短。

我们必须把它改成 `\begin{thebibliography}{99}` ，这样最长的标签就足够宽，可以容纳更长的标签，如下所示：

![标签宽度更大的 thebibliography](/files/4a06b24d94c8ce54993ec520e2e032c3faaf0559)

**图 3：** `thebibliography` 标签宽度更大。

如果你在本地计算机上编译这个示例代码片段，你可能会注意到，在 *第一次* 运行 `pdflatex` （或另一个 $$\mathrm{\LaTeX}$$ 处理程序）时，参考文献列表会按预期出现在 PDF 中，但 `\cite` 命令却只显示为问号 **\[?]**.

这是因为在第一次 $$\mathrm{\LaTeX}$$ 运行后，每个条目的引用键 `\bibitem` (`texbook`, `lamport94`）会写入 `.aux` 文件中，此时还不能被 `\cite` 命令读取。只有在第二次运行 `pdflatex` 时， `\cite` 命令才能从 `.aux` 文件中查找每个引用键并插入相应的标签（`[1]`, `[2]`）到输出中。

不过在 Overleaf 中，你不必担心自己重新运行 `pdflatex` 。这是因为 Overleaf 使用 [`latexmk` 构建工具](/latex/zh-cn/zhi-shi-ku/064-how-does-overleaf-compile-my-project.md)，它会自动重新运行 `pdflatex` （以及某些其他处理程序）所需的次数，以解决 `\cite` 输出。这也适用于其他交叉引用命令，例如 `\ref` 和 `\tableofcontents`.

### 关于编译时间的一点说明

处理 $$\mathrm{\LaTeX}$$ 参考文献列表或其他形式的交叉引用，例如索引，需要软件多次运行——包括 $$\mathrm{\TeX}$$ 引擎（例如， `pdflatex`）以及相关程序，例如 $$\mathrm{Bib\TeX}$$, `makeindex`，等等。如上所述，Overleaf 会自动处理所有这些多次运行，所以你无需担心。因此，当 Overleaf 上的预览正在刷新、而文档包含参考文献（或其他交叉引用），或者文档包含大型图像文件时（另见单独讨论 [这里](/latex/zh-cn/zhi-shi-ku/113-optimising-very-large-image-files.md)），这些必要的编译步骤有时会让预览刷新看起来比在你自己的机器上花更长时间。我们当然会尽量把它保持得尽可能短！如果你觉得文档的编译时间比预期更长，下面有一些 [进一步的提示](/latex/zh-cn/zhi-shi-ku/038-fixing-and-preventing-compile-timeouts.md) 可能会有帮助。

## 输入 $$\mathrm{Bib\TeX}$$

当然，手动准备……也有一些不便： `thebibliography` 列表：

* 需要你自己准确地格式化每一条 `\bibitem` ，依据所要求使用的参考文献样式——哪些部分应该加粗或斜体？年份应紧跟在作者后面，还是放在条目末尾？名字在前，还是姓氏在前？
* 如果你要按照某种参考文献样式写作，而该样式要求参考文献列表按第一作者的姓氏排序，那么你就需要自己排序这些 `\bibitem`条目。
* 对于使用不同参考文献样式的不同手稿或文档，你需要重写每条参考文献的 `\bibitem` 内容。

这就是 $$\mathrm{Bib\TeX}$$ 和 *参考文献数据库文件* (`.bib` 文件）非常有用的地方，这也是大多数期刊和论文中管理引文与参考文献的推荐方法。另一种 `biblatex` 方法略有不同，而且正在流行起来，也同样需要一个 `.bib` 文件，不过我们会在未来的文章中讨论 `biblatex` 它。

我们不再把已引用的参考条目格式化成一个 `thebibliography` 列表，而是维护一个参考文献数据库文件（我们把它命名为 `refs.bib` 作为示例），其中包含 *与格式无关的* 参考文献信息。因此，我们的 `refs.bib` 文件可能如下所示：

```latex
@book{texbook,
  author = {Donald E. Knuth},
  year = {1986},
  title = {The {\TeX} Book},
  publisher = {Addison-Wesley Professional}
}

@book{latex:companion,
  author = {Frank Mittelbach and Michel Gossens
            and Johannes Braams and David Carlisle
            and Chris Rowley},
  year = {2004},
  title = {The {\LaTeX} Companion},
  publisher = {Addison-Wesley Professional},
  edition = {2}
}

@book{latex2e,
  author = {Leslie Lamport},
  year = {1994},
  title = {{\LaTeX}: a Document Preparation System},
  publisher = {Addison Wesley},
  address = {Massachusetts},
  edition = {2}
}

@article{knuth:1984,
  title={Literate Programming},
  author={Donald E. Knuth},
  journal={The Computer Journal},
  volume={27},
  number={2},
  pages={97--111},
  year={1984},
  publisher={Oxford University Press}
}

@inproceedings{lesk:1977,
  title={Computer Typesetting of Technical Journals on {UNIX}},
  author={Michael Lesk and Brian Kernighan},
  booktitle={Proceedings of American Federation of
             Information Processing Societies: 1977
             National Computer Conference},
  pages={879--888},
  year={1977},
  address={Dallas, Texas}
}
```

你可以找到更多关于其他 $$\mathrm{Bib\TeX}$$ 参考条目类型和字段 [这里](https://en.wikibooks.org/wiki/LaTeX/Bibliography_Management#BibTeX)——有一张很大的表格，展示了每种条目类型支持哪些字段。我们将在后面的部分更多讨论如何准备 `.bib` 文件。

现在我们可以使用 `\cite` 和之前一样的引用键，但现在我们 *将* `thebibliography` 替换 `为一个 \bibliographystyle{...}` 来选择参考文献样式，以及 `\bibliography{...}` 来指向 $$\mathrm{Bib\TeX}$$ 存放已引用参考文献的 `.bib` 文件。

```latex
\LaTeX{} \cite{latex2e} 是建立在 \TeX{} \cite{texbook} 之上的一组宏。
\bibliographystyle{plain} % 我们选择“plain”参考文献样式
\bibliography{refs} % 条目位于 refs.bib 文件中
```

这将按照以下命令序列处理，假设我们的 $$\mathrm{\LaTeX}$$ 文档位于名为 `main.tex` （并且我们正在使用 `pdflatex`):

1. `pdflatex main`
2. `bibtex main`
3. `pdflatex main`
4. `pdflatex main`

然后会得到如下输出：

![使用 plain 参考文献样式的 BibTeX 输出](/files/c97278e632533c3a8db04a13b8a4086b59a52282)

**图 4：** $$\mathrm{Bib\TeX}$$ 使用……样式得到的输出 `plain` 参考文献样式。

哇！这里发生了什么，为什么需要那些（重复的）处理过程？下面是发生的情况。

1. 在第一次 *第一次* `pdflatex` 运行期间，所有 `pdflatex` 看到的只是一个 `为一个 \bibliographystyle{...}` 以及一个 `\bibliography{...}` 来自 `main.tex`。它并不知道所有的 `\cite{...}` 命令是做什么的！因此，在输出 PDF 中，所有的 `\cite{...}` 命令暂时都会简单地显示为 \[?]，而且还不会出现参考文献列表。不过 `pdflatex` 会把关于参考文献样式和 `.bib` 文件的信息，以及所有出现的 `\cite{...}`，写入到文件 `main.aux`.
2. 实际上 `main.aux` 真正 $$\mathrm{Bib\TeX}$$ 感兴趣的是！它会记下 `.bib` 由……指定的文件 `\bibliography{...}`，然后查找所有键与……匹配的条目 `\cite{...}` 命令所使用的 `.tex` 文件。 $$\mathrm{Bib\TeX}$$ 然后使用由……指定的样式 `为一个 \bibliographystyle{...}` 来格式化被引用的条目，并将格式化后的 `thebibliography` 列表写入文件 `main.bbl`。生成 `.bbl` 文件就是这一步完成的全部工作；输出 PDF 不会有任何变化。
3. 当 `pdflatex` 再次运行时，它现在会看到一个 `main.bbl` 文件可用了！于是它会插入 `main.bbl` 即 `\begin{thebibliography}....\end{thebibliography}` 到 $$\mathrm{\LaTeX}$$ 源文件中，也就是 `\bibliography{...}` 的位置。完成这一步后，参考文献列表就会按照所选的 `为一个 \bibliographystyle{...}`，但文中的引用仍然是 \[?]。
4. `pdflatex` 再次运行，这次 `\cite{...}` 命令会在输出 PDF 中替换为相应的数字标签！

和之前一样， [`latexmk` 构建工具](/latex/zh-cn/zhi-shi-ku/064-how-does-overleaf-compile-my-project.md) 会负责触发并重新运行 `pdflatex` 和 `bibtex` ，必要时会自动进行，因此你不必担心这一部分。

### 关于使用……的一些说明 $$\mathrm{Bib\TeX}$$ 和 .bib 文件

关于使用 $$\mathrm{Bib\TeX}$$ 和 `.bib 文件`:

* 你可能已经注意到，虽然 `refs.bib` 包含了五个 $$\mathrm{Bib\TeX}$$ 参考条目，但输出 PDF 中的参考文献列表只包含了两个。这是关于……的一个重要点 $$\mathrm{Bib\TeX}$$： `.bib` 文件的作用是存储书目记录，只有通过 `\cite{...}`在 `.tex` 文件中被引用过的条目才会出现在参考文献列表中。这类似于在 Microsoft Word 文档中，EndNote 数据库里只有被引用过的条目才会显示在参考文献列表中。如果你 *确实* 想包含所有条目——即显示出来但不真正引用它们——你可以写 `\nocite{*}`。这也意味着你可以重复使用同一个 `.bib` 文件用于你所有的 $$\mathrm{\LaTeX}$$ 项目：在某篇手稿或报告中未被引用的条目将不会出现在该文档的参考文献列表中。
* $$\mathrm{Bib\TeX}$$ 需要一个 `为一个 \bibliographystyle{...}` 和一个 `\bibliography{...}` 才能正常工作——在未来的文章中，我们将看到如何在同一文档中创建多个参考文献。如果你总是收到“undefined citation”警告，请检查你是否确实包含了这两个命令，以及名称拼写是否正确。通常不需要文件扩展名，但请记住 *文件名区分大小写* 在某些操作系统上——包括 Overleaf！因此，如果你输入了 `\bibliographystyle{IEEetran}` （注意拼写错误：“e”）而不是 `\bibliographystyle{IEEEtran}`，或者写成了 `\bibliography{refs}` 而实际文件名是 `Refs.bib`，你就会得到可怕的 **\[?]** 作为引文。
* 同样地，请始终将引用键视为区分大小写。请在你的 `\cite{...}` 中使用与……完全相同的大小写或拼写 `.bib` 文件。
* 参考文献的顺序在 `.bib` 文件中的排列方式，不会影响输出 PDF 中参考文献列表的排序： *参考文献列表的排序顺序由* `为一个 \bibliographystyle{...}`决定。例如，一些读者可能已经注意到，在我前面的示例中，正文中的第一处引用 `latex2e` 编号为 \[2]，而正文中的第二处引用（`texbook`）编号为 \[1]！难道 $$\mathrm{\LaTeX}$$ 和 $$\mathrm{Bib\TeX}$$ 看糊涂了？一点也不：这其实是因为 `plain` 样式会按第一作者的字母顺序对参考文献列表排序，也就是按其 *姓氏*。如果你更喜欢那种在全文中按顺序编号数字引用标签的方案，你就必须选择一种实现这种方式的参考文献样式。例如，如果我们在那个示例中改用 `\bibliographystyle{IEEEtran}` 那个示例，我们就会得到如下输出。还请注意，参考文献列表中每个被引用条目的格式也会自动更新以符合 IEEE 的样式：

![IEEEtran 文献样式输出](/files/59fb826cea932cb4f65c651600ef27d20acfd3ce)

**图 5：** `IEEEtran` 文献样式输出。

我们将在未来的文章中更详细地讨论不同的参考文献样式，包括作者—年份引文方案。现在，让我们把注意力转向 `.bib` 文件内容，以及我们如何使准备……这一任务更容易 `.bib` 文件变得稍微容易一些。

## 再次看看 .bib 文件

正如你之前可能已经注意到的， `.bib` 文件包含 $$\mathrm{Bib\TeX}$$ 以一个……开头的参考文献条目 *条目类型* 以前缀为一个 `@`. $$\mathrm{Bib\TeX}$$ *字段*，放在一对花括号（`{...}`）。该 *引用键* 是这些花括号内提供的第一条信息，并且条目中的每个字段 *都必须用逗号分隔*:

```latex
@article{knuth:1984,
  title={Literate Programming},
  author={Donald E. Knuth},
  journal={The Computer Journal},
  volume={27},
  number={2},
  pages={97--111},
  year={1984},
  publisher={Oxford University Press}
}
```

一般来说， *每个* 参考文献条目都应包含一个 `author`, `year` 和 `title` 字段，无论类型为何。大约有 [十几种条目类型](https://en.wikibooks.org/wiki/LaTeX/Bibliography_Management#BibTeX) 不过某些参考文献样式可能会识别/定义更多；然而，你最常使用的很可能是以下条目类型：

* `@article` 用于期刊文章（见上面的示例）。
* `@inproceedings` 用于会议论文：

```latex
@inproceedings{FosterEtAl:2003,
  author = {George Foster and Simona Gandrabur and Philippe Langlais and Pierre
    Plamondon and Graham Russell and Michel Simard},
  title = {统计机器翻译：在有限资源下的快速开发},
  booktitle = {MT Summit IX 论文集},
  year = {2003},
  pages = {110--119},
  address = {美国新奥尔良},
}
```

* `@book` 用于书籍（见上面的示例）。
* `@phdthesis`, `@masterthesis` 用于学位论文和硕士论文：

```latex
@phdthesis{Alsolami:2012,
    title    = {对击键动态的考察
                用于连续用户认证},
    school   = {昆士兰科技大学},
    author   = {Eesa Alsolami},
    year     = {2012}
}
```

* `@inbook` 用于书中的章节，其中 *整本书* 由同一位作者（们）撰写：相关章节通过章节号标识：

```latex
@inbook{peyret2012:ch7,
  title={流体流动的计算方法},
  edition={2},
  author={Peyret, Roger and Taylor, Thomas D},
  year={1983},
  publisher={Springer-Verlag},
  address={New York},
  chapter={7, 14}
}
```

* `@incollection` 用于书中的投稿章节，因此会有自己的 `author` 和 `title`。整本书的实际标题给在 `booktitle` 字段中；通常还会有一个 `editor` 字段：

```latex
@incollection{Mihalcea:2006,
  author = {Rada Mihalcea},
  title = {基于知识的 {WSD} 方法},
  booktitle = {词义消歧：算法
               与应用},
  publisher = {Springer},
  year = {2006},
  editor = {Eneko Agirre and Philip Edmonds},
  pages = {107--132},
  address = {荷兰多德雷赫特}
}
```

* `@misc` 用于不完全符合其他任何条目类型的内容。它对于网页特别有用——通过写入 note = \url{http\://...} 或 url = {[http://...}：](https://overleaf-pro.ayaka.space/latex/zh-cn/can-kao-wen-xian-he-yin-yong/http:/...}：)
  * 你通常会发现添加 `\usepackage{url}` 或 `\usepackage{hyperref}` 到你的 `.tex` 文件的导言区（以便更稳健地处理 URL）；
  * 并非所有参考文献样式都支持 `url` 字段： `plain` 不支持，但 `IEEEtran` 支持。所有样式都支持 `note`。关于这一点，我们将在未来的文章中进一步说明；
  * 你应当注意，即使是网页和 `@misc` 条目也应有一个 `author`，一个 `year` 以及一个 `title` 字段：

```latex
@misc{web:lang:stats,
  author = {W3Techs},
  title = {网站内容语言的使用统计
           用于网站},
  year = {2017},
  note = {最后访问于 2017 年 9 月 16 日},
  url = {http://w3techs.com/technologies/overview/content_language/all}
}
```

### 多个作者在 $$\mathrm{Bib\TeX}$$

在一个 `.bib` 文件中，逗号只用于将作者的姓与名分开——如果姓写在前面的话。各作者姓名之间用 `和`。因此，以下写法都是正确的：

```latex
author = {Jane Doe and John Goodenough and Foo Bar}
```

或

```latex
author = {Doe, Jane and Goodenough, John and Bar, Foo}
```

但是 *以下写法都不能正常工作*——你会得到奇怪的输出，甚至来自 $$\mathrm{Bib\TeX}$$的错误消息！所以，如果你是从论文或网页复制作者姓名，请格外小心。

```latex
author = {Jand Doe, John Goodneough, Foo Bar}
author = {Jand Doe, John Goodneough and Foo Bar}
author = {Jand Doe, John Goodneough, and Foo Bar}
```

### 多词姓氏

如果作者的姓是由空格分隔的多个单词组成，或者它实际上是一个机构，请在姓氏外再加一对花括号，使得 $$\mathrm{Bib\TeX}$$ 会将这些分组后的词识别为姓氏：

```latex
author = {{World Health Organisation}}
author = {Geert {Van der Plas} and John Doe}
```

或者，你也可以使用 `Lastname, Firstname` 格式；有些用户觉得这样更清晰、更易读：

```latex
author = {Van der Plas, Geert and Doe, John}
```

**请记住：** 无论输出中是先显示名还是姓（“John Doe” vs “Doe, John”），还是名字是否会自动缩写为“J. Doe”或“Doe, J.” vs “John Doe” “J. Doe”），所有这些细节都由 `\bibliographystyle`.

### 我试着用 % 注释掉 .bib 文件中的一些行或条目，但结果却出现了很多错误消息？

`%` 实际上并不是……中的注释字符 `.bib` 文件！因此，插入一个 `%` 在 `.bib` .bib 文件不仅无法将该行注释掉，还会导致一些 $$\mathrm{Bib\TeX}$$ 错误。为了让 $$\mathrm{Bib\TeX}$$ 忽略某个特定字段，我们只需将该字段重命名为某个 $$\mathrm{Bib\TeX}$$ 无法识别的名字。例如，如果你想保留一个 `date` 字段，但希望它被忽略（也许因为你想 $$\mathrm{Bib\TeX}$$ 使用 `year` 字段代替它），可以写 `Tdate = {...}` 或者更易读的 `IGNOREdate = {...}`.

为了让 $$\mathrm{Bib\TeX}$$ 忽略整个 *条目* 你可以去掉 `@` 条目类型前面的符号。一个有效的参考条目总是以一个 `@` 开头，后接条目类型；如果没有 `@` 字符 $$\mathrm{Bib\TeX}$$ 会跳过这些行，直到遇到另一个 `@`.

## 我究竟该如何/在哪里获取那些 .bib 文件？

### 将 .bib 文件作为纯文本编辑

因为 `.bib` .bib 文件是纯文本，你当然可以手动编写——只要你熟悉 $$\mathrm{Bib\TeX}$$所需的语法。只需确保你将其保存为带有 `.bib` 扩展名，并且你的编辑器不会偷偷添加一个 `.txt` 或其他后缀。在 Overleaf 中，你可以点击文件列表面板顶部的“Files…”链接，然后点击“Add blank file”来创建一个新的 `.bib` 文件进行编辑。

> **小贴士：** 你知道吗，Google Scholar 的搜索结果可以导出为一个 $$\mathrm{Bib\TeX}$$ 条目？点击每个搜索结果下方的 “Cite” 链接，然后点击“$$\mathrm{Bib\TeX}$$” 选项。然后你就可以复制生成的 $$\mathrm{Bib\TeX}$$ 条目。这里有一个 [视频](/latex/zh-cn/wen-da/49-how-to-include-a-bibliography-using-bibtex.md) 演示该过程。请注意，你应始终仔细核对条目中显示的字段，因为自动填充的信息并不总是完整或准确！

### 来自基于 GUI 的 .bib 编辑器的帮助

许多用户更喜欢使用专门的 $$\mathrm{Bib\TeX}$$ 参考文献数据库编辑器/管理器，例如 [JabRef](http://www.jabref.org) 或 [BibDesk](http://bibdesk.sourceforge.net/) 来维护、编辑并添加条目到他们的 `.bib` .bib 文件中。使用 GUI 确实有助于在创建参考文献条目时减少语法和拼写错误， $$\mathrm{Bib\TeX}$$ .bib 文件。如果你愿意，你可以在自己的电脑上使用 JabRef、BibDesk 或其他工具准备你的 `.bib` .bib 文件，然后将其上传到你的 Overleaf。

> **小贴士：** 如果你想在多个 Overleaf 项目中使用同一个 `.bib` ，请看看 [这篇帮助文章](/latex/zh-cn/zhi-shi-ku/009-can-i-share-files-e.g.-.bib-and-some-graphics-across-my-projects.md) 来设置一个“主项目”，或者 [这篇](/latex/zh-cn/zhi-shi-ku/051-how-can-i-upload-files-from-google-drive.md) 用于从 Google Drive 共享文件（这些说明同样适用于其他基于云的存储方案，例如 Dropbox）。

### 从参考文献库服务导出

如果你点击文件列表面板上方的 Upload files 按钮，你会注意到一些选项：从 Mendeley 导入，以及从 Zotero 导入。如果你已经在使用这些参考文献库管理服务之一，Overleaf 现在可以接入这些服务提供的网页导出 API，以导入 `.bib` 从你的文献库生成的 .bib 文件到你的 Overleaf 项目中。更多信息请参见 Overleaf 文章 [如何将你的 Overleaf 账户链接到 Mendeley 和 Zotero](/latex/zh-cn/zhi-shi-ku/073-how-to-link-zotero-to-your-overleaf-account.md).

对于其他没有公开 API，或者尚未与 Overleaf 直接集成的参考文献库服务，例如 [EndNote](/latex/zh-cn/zhi-shi-ku/016-can-i-use-overleaf-with-endnote.md) 或 [Paperpile](/latex/zh-cn/zhi-shi-ku/017-can-i-use-overleaf-with-paperpile.md)，请查找“导出为 `.bib`” 选项。只要你有了一个 `.bib` .bib 文件，就可以将其添加到你的 Overleaf 项目中。

### 我已经有一个 Microsoft Word/HTML/PDF 文件中的参考文献列表；能否在不重新输入所有内容的情况下重复使用这些数据？

过去，你不得不把每一行手动编码到一个 `\bibitem` 或一个 `@article{...}` 条目（或其他条目类型）到一个 `.bib` .bib 文件中。你可以想象，这并不是一项很多人期待去做的任务。幸运的是，如今已有一些工具可以提供帮助。它们通常接受一个纯文本文件，例如

```latex
[1] J. Smith, J. Doe 和 F. Bar (2001) 一项开创性研究。
《Journal of Amazing Research》5(11), 第 29-34 页。

[2] ...
```

并尝试解析这些行，将其转换为结构化参考文献，作为一个 $$\mathrm{Bib\TeX}$$ `.bib` .bib 文件。例如，看看 [text2bib](https://text2bib.org) 或 [Edifix](https://www.overleaf.com/blog/446-edifix-converts-unstructured-bibliographies-to-bibtex)。务必仔细浏览这些工具的选项，以便它们能很好地与你现有的纯文本非结构化参考文献配合工作。

## 总结与延伸阅读

我们快速看了一下 $$\mathrm{Bib\TeX}$$ 如何处理一个 `.bib` 参考文献数据库文件，以解析 `\cite` 命令并生成格式化的参考文献列表，以及如何准备 `.bib` .bib 文件。

祝你 $$\mathrm{Bib\TeX}$$愉快地使用！

### 进一步阅读

更多信息请参见：

* [BibTeX 文献样式](/latex/zh-cn/can-kao-wen-xian-he-yin-yong/04-bibtex-bibliography-styles.md)
* [使用 natbib 进行文献管理](/latex/zh-cn/can-kao-wen-xian-he-yin-yong/02-bibliography-management-with-natbib.md)
* [使用 biblatex 进行文献管理](/latex/zh-cn/can-kao-wen-xian-he-yin-yong/03-bibliography-management-with-biblatex.md)
* [CTAN 网站上的 BibTeX 文档](http://www.ctan.org/tex-archive/biblio/bibtex/contrib/doc/)
* [tocbind 宏包文档](http://www.ctan.org//tex-archive/macros/latex/contrib/tocbibind/tocbibind.pdf)
* [目录](/latex/zh-cn/wen-dang-jie-gou/02-table-of-contents.md)
* [大型项目中的管理](/latex/zh-cn/wen-dang-jie-gou/07-management-in-a-large-project.md)
* [多文件 LaTeX 项目](/latex/zh-cn/wen-dang-jie-gou/08-multi-file-latex-projects.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/zh-cn/can-kao-wen-xian-he-yin-yong/01-bibliography-management-with-bibtex.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
