> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-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` （默认值： **参考文献**）。如果文档类是 `book` 或 report，则会插入一个无编号的章标题，使用 `\bibname` （默认值： **书目**) is inserted instead. Each `\bibitem` 接受一个 *引用键* 作为其参数，你可以将其与 `\cite` 命令一起使用，后面跟上该参考条目本身的信息。因此，如果你现在写

```latex
\LaTeX{} \cite{lamport94} is a set of macros built atop \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`) and associated programs such as $$\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} is a set of macros built atop \TeX{} \cite{texbook}.
\bibliographystyle{plain} % We choose the "plain" reference style
\bibliography{refs} % Entries are in the refs.bib file
```

这会按照以下命令序列进行处理，假设我们的 $$\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{...}` 。完成这一步后，参考文献列表就会出现在输出 PDF 中，并按照所选的 `\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{...}` 才能正常工作——在后续文章中我们会看到如何在同一文档中创建多个参考文献列表。如果你一直收到“未定义的引用”警告，请检查你是否确实包含了这两个命令，以及名称拼写是否正确。通常不需要文件扩展名，但请记住 *文件名区分大小写* 在某些操作系统上也是如此——包括 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 文件

正如你可能早些时候注意到的，a `.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}
}
```

一般来说， *每个* 参考文献条目都应具有 `作者`, `年份` 和 `标题` 字段，不论其类型是什么。大约有 [十几种条目类型](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={纽约},
  chapter={7, 14}
}
```

* `@incollection` 用于书中的一个贡献章节，因此会有它自己的 `作者` 和 `标题`。整本书的实际标题写在 `booktitle` 字段中；很可能还会有一个 `编辑` 字段：

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

* `@misc` 用于不太符合其他任何条目类型的内容。它对网页尤其有用——通过写入 note = \url{http\://...} 或 url = {[http://...}：](https://ayakaleaf-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` 条目也应有一个 `作者`，一个 `年份` 以及一个 `标题` 字段：

```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” 还是 “Doe, John”），或者名字是否自动缩写为 “J. Doe” 或 “Doe, J.”，所有这些细节都由 `\bibliographystyle`.

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

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

要让 $$\mathrm{Bib\TeX}$$ LaTeX *忽略整个* 条目，你可以删除 `@` 条目类型前面的 @。一个有效的参考条目总是以 @ `@` 开头，后跟条目类型；没有 `@` @ $$\mathrm{Bib\TeX}$$ 字符，LaTeX 就会跳过这些行，直到遇到另一个 `@`.

## 我到底该如何/在哪里获得这些 .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` 文件中添加条目。使用 GUI 确实有助于减少在创建参考文献条目时的语法和拼写错误 $$\mathrm{Bib\TeX}$$ 文件中。如果你愿意，你可以在自己的机器上使用 JabRef、BibDesk 或其他工具准备你的 `.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 按钮，你会注意到一些选项：Import from Mendeley 和 Import from Zotero。如果你已经在使用这些参考库管理服务中的一个，Overleaf 现在可以连接这些服务提供的 Web 导出器 API，把 `.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)，请在应用或服务中查找“export to `.bib`”选项。一旦你有了一个 `.bib` 文件，就可以将它添加到你的 Overleaf 项目中。

### 我已经在 Microsoft Word/HTML/PDF 文件中有一份参考文献列表；我能否在不重新输入全部内容的情况下以某种方式重复利用这些数据？

过去你必须手动把每一行编码成一个 `\bibitem` 或一个 `@article{...}` 条目（或其他条目类型）在一个 `.bib` 文件中。你可以想象，这并不是很多人乐于做的任务。幸运的是，如今已经有一些工具可以帮助完成这件事。它们通常会取一个纯文本文件，例如

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

[2] ...
```

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

## 总结与进一步阅读

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