书籍交叉引用

概述

创建网站和书籍的一个重要区别在于,除了网页输出外,书籍还可以渲染为单一连续文档(例如PDF或MS Word文档)。书籍也可能以数字形式阅读(这意味着内部超链接可能可用也可能不可用)。

为了使书籍在所有这些媒介中都可读,创建指向其他章节或章节内部分的链接时应特别注意(不过,如果你的书籍仅针对HTML输出,你可以随意使用常规超链接)。

Quarto交叉引用为图表、表格、方程、章节、列表、定理和证明提供了自动编号和引用创建功能。在书籍中,交叉引用的功能相同,只是它们可以跨越章节。

如果你还不熟悉使用交叉引用,你可能希望在继续了解它们如何与书籍配合使用之前,先阅读关于交叉引用的文档。

创建引用

要引用图表、表格或其他可交叉引用的实体,请使用@语法(类似于引用)以及你要引用的实体的ID/标签:例如:

参见@fig-penginus-by-island按岛屿分类。

以这种方式创建的引用将自动在章节之间解析(包括引用中所需的章节编号)。

要使章节或部分可引用,请在其主标题前添加#sec前缀。例如:

# 引言 {#sec-introduction}
标签前缀

为了使章节可交叉引用,其标签必须以sec-前缀开头。

要引用一个章节,请使用我们在上述图表示例中使用的@标识符来包含对它的交叉引用:

参见@sec-introduction以获取更多讨论。

例如,这将渲染为:

参见第1章以获取更多讨论。

根据标题的级别,将自动添加适当的“章节”或“部分”前缀。要抑制前缀,请使用括号语法并在@前添加-。例如,[-@sec-introduction]将仅生成“1”,而不带“章节”前缀。

要提供自定义前缀,例如为章节标题的“章节”,请在括号语法中拼写出前缀。例如:

参见[章节 @sec-visualization]以获取更多关于可视化模型诊断的详细信息。

这可能会渲染为:

参见第1.2章以获取更多关于可视化模型诊断的详细信息。

章节编号

默认情况下,文档中的所有标题都会创建一个编号的章节。你可以使用number-depth选项自定义编号深度。例如,仅对章节级别下的章节进行编号,请使用以下内容:

number-depth: 2

请注意,toc-depthnumber-depth是独立的(即,如果它们被number-depth从编号中屏蔽,你可以在目录中拥有未编号的条目)。

章节编号

在书籍中,图表、表格和其他交叉引用目标自动包含章节编号。例如,以下位于书籍第3章的markdown:

如@fig-geo-comparison所示,西部各州的森林火灾发生率要高得多。

可能会渲染为:

图3.2所示,西部各州的森林火灾发生率要高得多。

请注意,虽然书籍支持未编号的章节,但你自然无法创建对没有编号的章节内容的交叉引用。

超链接

如果你正在创建仅限HTML的书籍(或你不期望会被打印的PDF/MS Word书籍),那么你可以随意使用普通超链接而不是章节交叉引用。

要在书籍内创建超链接,请将源文件作为链接目标提供。如果希望链接到文档中的特定章节,还可以在源文件中添加哈希标识符(#)。例如:

[关于](about.qmd)
[关于](about.qmd#section)

使用源文件作为链接目标可确保链接在HTML输出和生成单一文件的格式(例如PDF或MS Word)中都能正确解析。

请注意,如果你的书籍针对打印输出,你应该使用显式的交叉引用来引用其他章节和部分,而不是像上面所示的简单链接。这是因为打印输出中的链接不可导航,因此你需要为读者提供编号引用(例如“第5.3节”)而不是超链接。