交叉引用 Div 语法
人工智能与机器学习
概述
人工智能(AI)和机器学习(ML)是当今科技领域最热门的话题之一。AI是指计算机系统能够执行通常需要人类智能的任务,如视觉识别、语音识别和决策制定。ML是AI的一个子集,专注于开发能够从数据中学习的算法。
关键技术
深度学习
深度学习是ML的一个分支,使用多层神经网络来处理复杂的数据模式。它在图像和语音识别方面取得了显著的成果。
强化学习
强化学习是一种通过试错来学习的ML方法。它通常用于游戏和机器人控制等领域。
应用领域
医疗保健
AI和ML在医疗诊断、药物发现和个性化治疗方面有广泛应用。
金融
在金融领域,AI用于风险管理、欺诈检测和算法交易。
挑战
数据隐私
随着AI和ML的发展,数据隐私成为一个重要问题。如何在不侵犯个人隐私的情况下利用数据是一个挑战。
伦理问题
AI系统的决策过程可能不透明,这引发了关于伦理和责任的讨论。
未来展望
AI和ML的未来充满希望,但也伴随着挑战。随着技术的进步,我们期待看到更多创新的应用和解决方案。
概览
可交叉引用的图表、表格和代码列表被称为浮动交叉引用。浮动元素可以出现在渲染文档中的其他位置,而不是它们定义的地方,即它们是浮动的,并且通常带有标题。
除了最常见的交叉引用紧凑语法外,Quarto 还提供了一种更通用的 div 语法来声明可以交叉引用的浮动元素。要声明一个可交叉引用的浮动元素,请将内容放在带有引用标识符属性的围栏 div 中。围栏 div 中的最后一个段落将被视为标题。例如:
::: {#fig-example}
内容
标题
:::
要被识别为交叉引用,标识符必须以内置的浮动引用类型之一开头(图表 (fig-
)、表格 (tbl-
) 和列表 (lst-
)),或者被定义为自定义浮动交叉引用类型。
然后,您可以像往常一样使用 @
语法引用该元素,例如:
@fig-example 展示了...
内容可以是任何 Quarto Markdown。例如,Figure 1 是一个被视为图表的 Markdown 表格:
::: {#fig-table}
| A | B |
|---|---|
| C | D |
一个被视为图表的表格
:::
A | B |
---|---|
C | D |
Table 1 是一个被视为表格的图像:
::: {#tbl-table}
![](table.png)
一个被视为表格的图像
:::
Figure 2 是一个被视为图表的代码单元格:
::: {#fig-code}
```r
library(tidyverse)
|>
starwars ggplot(aes(height, mass)) +
geom_point()
```
一个被视为图表的代码单元格。
:::
图表
要使用div语法创建指向图表的交叉引用,请创建一个以fig-
开头的id的围栏div,并在div内包含图像和标题:
::: {#fig-elephant}
![](elephant.png)
一头大象 :::
您可以通过将代码单元格作为内容包含进来,交叉引用由可执行代码单元格创建的图表:
::: {#fig-line-plot}
```{python}
import matplotlib.pyplot as plt
plt.plot([1,23,2,4])
plt.show()
```
一条折线图 :::
在上面的例子中,您可以使用 @fig-line-plot
引用图表,但不能引用代码,代码会内联显示。如果您还希望引用代码,可以通过代码块选项而不是 div 语法来实现,详细信息请参见可执行代码块的交叉引用。
表格
要使用div语法创建指向表格的交叉引用,请创建一个带有以tbl-
开头的id的围栏div,并在div内包含表格及其标题:
::: {#tbl-letters}
| Col1 | Col2 | Col3 |
|------|------|------|
| A | B | C |
| E | F | G |
| A | G | G |
我的标题
:::
如果表格是由可执行代码单元格生成的,请将单元格放在 div 中作为内容,例如:
::: {#tbl-planets}
```{python}
from IPython.display import Markdown
from tabulate import tabulate
table = [["Sun","696,000",1.989e30],
["Earth","6,371",5.972e24],
["Moon","1,737",7.34e22],
["Mars","3,390",6.39e23]]
Markdown(tabulate(
table,
headers=["Astronomical object","R (km)", "mass (kg)"]
))
```
天文对象
:::
在上面的例子中,您可以使用 @tbl-planets
引用表格,但不能引用代码,代码会内联显示。如果您还希望引用代码,可以通过代码块选项而不是 div 语法来实现,详细信息请参见可执行代码块的交叉引用。
列表
要使用 div 语法创建指向代码列表的交叉引用,请创建一个带有以 lst-
开头的 id 的 fenced div,在 div 内包含代码单元格,后跟标题:
::: {#lst-customers}
```{.sql}
SELECT * FROM Customers
```
Customers Query
:::
这也适用于不产生输出的可执行代码单元格:
::: {#lst-assign}
```{r}
x <- 1
```
R 中的赋值
:::
然而,如果产生了任何输出,假定输出应该是交叉引用的内容,代码会被提取并内联放置。例如,这里的代码单元格产生了输出:
::: {#lst-assign-output}
```{r}
x <- 1
x
```
R 中的赋值
:::
@lst-assign-output
渲染时,上述结果会使输出成为列表的内容,代码出现在列表之前:
如果您需要引用代码及其输出,请结合使用显示块和带有代码单元格选项 echo: false
的代码块:
::: {#lst-assign-both}
```r
<- 1
x x
```{r}
#| echo: false
x <- 1
x
```
R 中的赋值
:::
当输出是图表或表格时,您可以通过使用代码单元选项来分别引用代码和输出,而不是使用 div 语法,如[可执行代码块的交叉引用](cross-references.qmd#code-listings)中所述。
## 图表
要使用 div 语法创建指向图表的交叉引用,可以将其视为一个图形。例如,@fig-simple 是通过以下方式创建的:
````markdown
::: {#fig-simple}
```{dot}
graph {
A -- B
}
```
这是一个简单的 graphviz 图表
:::
如果你更倾向于为图表分配一个与图形不同的标签和计数器,可以考虑定义 自定义交叉引用类型。
视频
要为视频添加交叉引用,请使用交叉引用 div 语法,并将其视为一个图形。例如:
::: {#fig-cern}
{{< video https://www.youtube.com/embed/wo9vZccmqwc >}}
视频 "CERN: The Journey of Discovery"
:::
在 @fig-cern...
渲染效果如下:
如果你希望为视频分配一个不同于图形的标签和计数器,请考虑定义自定义交叉引用类型。
子引用
交叉引用 div 可以嵌套以创建带有子引用的元素。例如,这里的最外层 div 定义了 fig-subrefs
引用及其主标题,而内部的 div 分别定义了 fig-first
和 fig-second
及其各自的标题:
:::: {#fig-subrefs}
::: {#fig-first}
内容 1
第一个标题
:::
::: {#fig-second}
内容 2
第二个标题
:::
主标题 ::::
这将呈现为:
内容 1
内容 2
主元素和子元素都可以在文本中直接引用,例如:
@fig-subrefs, @fig-first, @fig-second
这将呈现为:Figure 4, Figure 4 (a), Figure 4 (b)。
结合布局属性,您可以创建混合内容的复杂布局,每个元素都可以被引用。例如:
[1, 1], [1]]"}
:::: {#fig-complex layout="[
::: {#fig-elephant}
![](images/elephant.jpg)
一张图片文件
:::
::: {#fig-scatterplot}
```{r}
#| echo: false
plot(1:10)
```
一个计算图表
:::
::: {#fig-diagram}
```{dot}
//| fig-height: 2
digraph {
rankdir = "LR";
Transform -> Visualize
}
```
一个图表
:::
结合不同类型内容的示例图表 ::::
这将呈现为:
计算标题
如果您想在标题中包含计算值,请使用交叉引用 div 语法,并结合内联代码表达式。例如:
::: {#fig-box}
```{python}
#| echo: false
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 10]
p = plt.boxplot(x)
plt.show()
```
`{python} len(x)` 个观测值。
该数据集有
:::
::: {#fig-box}
```{r}
#| echo: false
x <- c(1, 2, 3, 4, 5, 10)
boxplot(x)
```
`{r} length(x)` 个观测值。
该数据集有
:::
条件内容
结合交叉引用 div 语法和条件内容,可以使您的引用内容根据格式变化。例如,您可能希望在 HTML 格式下生成基于 JavaScript 的交互式图表,否则生成静态图表:
::: {#fig-scatterplot}
:::: {.content-visible when-format="html"}
```{r}
# 生成基于 JavaScript 图表的代码
```
::::
:::: {.content-visible unless-format="html"}
```{r}
# 生成静态图表的代码
```
::::
散点图
:::
@fig-scatterplot