引用

概述

Quarto 将使用 Pandoc 自动生成多种风格的引用和参考文献。要使用此功能,您需要:

  • 一个包含引用的 Quarto 文档(参见 引用标记)。

  • 一个书目数据源,例如 BibLaTeX(.bib)或 BibTeX(.bibtex)文件。

  • 可选地,一个 CSL 文件,用于指定生成引用和参考文献时使用的格式(当不使用 natbibbiblatex 生成参考文献时)。

Note

当使用 format: typst 时,默认情况下引用处理由 Typst 处理,而不是 Pandoc。有关更多详细信息,请参见下面的 Typst 部分。

参考文献文件

Quarto 支持多种格式的参考文献文件,包括 BibLaTeX 和 CSL。使用 bibliography YAML 元数据字段将参考文献添加到您的文档中。例如:

---
title: "我的文档"
bibliography: references.bib
---
Tip

如果您愿意,可以通过将 bibliography 字段的值设置为 YAML 数组来提供多个参考文献文件。

有关参考文献格式的更多信息,请参见 Pandoc 引用 文档。

引用语法

Quarto 使用标准的 Pandoc Markdown 表示法来表示引用(例如 [@citation])—— 引用放在方括号内,并用分号分隔。每个引用必须有一个键,由 @ + 数据库中的引用标识符组成,并且可以选择性地有一个前缀、一个定位器和一个后缀。引用键必须以字母、数字或 _ 开头,并且可以包含字母数字、_ 以及内部标点符号(:.#$%&-+?<>~/)。以下是一些示例:

Markdown 格式 输出(默认) 输出(csl: diabetologia.csl,参见 Section 4
Blah Blah [see @knuth1984, pp. 33-35;
also @wickham2015, chap. 1]
Blah Blah (see Knuth 1984, 33–35; also Wickham 2015, chap. 1) Blah Blah see [1], pp. 33-35; also [1], chap. 1
Blah Blah [@knuth1984, pp. 33-35,
38-39 and passim]
Blah Blah (Knuth 1984, 33–35, 38–39 and passim) Blah Blah [1], pp. 33-35, 38-39 and passim
Blah Blah [@wickham2015; @knuth1984].
Blah Blah (Wickham 2015; Knuth 1984). Blah Blah [1, 2].
Wickham says blah [-@wickham2015]
Wickham says blah (2015) Wickham says blah [1]

您也可以编写文内引用,如下所示:

Markdown 格式 输出(作者-日期格式) 输出(数字格式)
@knuth1984 says blah.
Knuth (1984) says blah. [1] says blah.
Knuth (1984, 33) says blah. | Knuth (1984, 33) says blah. | [1] [p. 33] says blah. |

有关引文语法的更多信息,请参阅Pandoc引文文档。

引文样式

Quarto使用Pandoc来格式化引文和参考文献。默认情况下,Pandoc将使用芝加哥手册的作者-日期格式,但您可以使用CSL(引文样式语言)指定自定义格式。要提供自定义引文样式表,请在文档的元数据中使用csl字段提供CSL文件的路径,例如:

---
title: "我的文档"
bibliography: references.bib
csl: nature.csl
---

您可以在CSL项目找到CSL文件或了解更多关于使用样式的信息。您可以浏览CSL项目的中央仓库或Zotero的样式仓库中超过8,500个Creative Commons CSL定义的列表。

CSL样式仅在cite-methodciteproc时可用(默认情况下即为如此)。如果您使用其他cite-method,您可以使用该方法提供的机制来控制参考文献的格式。

参考文献生成

默认情况下,如果样式要求,Pandoc将自动生成一个引用的作品列表并将其放置在文档中。如果存在id为refs的div,它将被放置在该div中:

### 参考文献

::: {#refs}
:::

如果没有找到这样的div,引用的作品列表将被放置在文档的末尾。

如果您的参考文献是使用BibLaTeX或natbib生成的(Section 7),参考文献将始终出现在文档的末尾,并且#refs div将被忽略。

Tip

您可以通过在文档元数据中包含suppress-bibliography: true选项来抑制参考文献的生成

以下是生成的参考文献示例:

Knuth, Donald E. 1984. “Literate Programming.” The Computer Journal 27 (2): 97–111.
Wickham, Hadley. 2015. R Packages. 1st ed. O’Reilly Media, Inc.

包含未引用的项目

如果您想在参考文献中包含项目而不在正文中实际引用它们,您可以定义一个虚拟的nocite元数据字段并将引文放在那里:

---
nocite: |
  @item1, @item2
---

@item3

在此示例中,文档将仅包含对item3的引用,但参考文献将包含item1item2item3的条目。

可以通过使用通配符创建包含所有引文的参考文献,无论它们是否出现在文档中:

---
nocite: |
  @*
---

LaTeX: 使用BibLaTeX或natbib

在创建PDF时,你可以选择使用基于citeproc的默认Pandoc 引用处理,或者选择使用natbibBibLaTeX。这可以通过cite-method选项来控制。例如:

format:
  pdf: 
    cite-method: biblatex

默认情况下使用citeproc(Pandoc内置的引用处理器)。

有关引用语法、可用参考文献格式等的更多详细信息,请参阅关于使用引用与Quarto的主文章。

选项

在使用natbib或biblatex时,你可以指定以下附加选项来影响参考文献的渲染方式:

选项 描述
biblatexoptions biblatex的选项列表
natbiboptions natbib的选项列表
biblio-title 参考文献的标题
biblio-style 参考文献的样式

Typst

Typst自带了用于参考文献的引用处理系统,使用format: typst时默认采用该系统。要使用Typst的系统指定参考文献样式,请使用bibliographystyle选项。提供一个来自Typst内置样式列表的字符串,例如:

bibliography: refs.bib
bibliographystyle: apa

或者,提供一个本地CSL文件的路径:

bibliography: refs.bib
bibliographystyle: my-csl-style.csl

如果你更倾向于使用Pandoc的引用处理,请在YAML头部明确设置citeproc: true

citeproc: true
bibliography: refs.bib
csl: https://www.zotero.org/styles/apa-with-abstract

要向Pandoc的引用处理系统提供引用样式文件,请使用csl选项,如引用样式中所述。