代码计算

1 概述

Quarto 支持在 Markdown 中编写代码, 渲染前先运行代码生成图表。 建议勾选 Render on Save 以便及时预览更改的内容 :

2 输出

默认情况下 代码 及其 输出 会一起显示在渲染后的文档中 :

通常文章希望隐藏全部源码 :

整个文章源码全部隐藏以后, 可以针对个别代码块设置 echo: true 显示源码 :

3 代码折叠

除了完全隐藏代码之外, 还可以折叠代码, 让读者按需自行展开查看。 通过 code-fold 选项来实现 :

配置文件支持设置工具, 提供代码全部展开功能 :

4 图形

设置 fig-width 和 fig-height 来调整图形的宽高, fig-cap 修改标题 label 修改交叉引用 :

5 多图

下面将两张图并排显示, 并给每张图加描述性的子标题, 用 column 选项让它们占据整个页面宽度, 而不是限制在文字列内 :

总图和子图都可以被交叉引用 :

6 数据框

可以使用 df-print 文档选项来控制数据框默认的打印方式。可用的选项包括 :

选项 说明
default 使用数据框的默认 S3 方法。
kable 使用 knitr::kable() 函数生成的 Markdown 表格
tibble 使用 tibble 包生成的纯文本表格
paged 带分页的 HTML 表格,用于处理行和列溢出(使用 rmarkdown::paged_table() 实现)

下面是不同的效果 :

7 行内代码

要在 Markdown 行内可以包含表达式, 将表达式用`{r}`包裹起来 :

如果表达式非常复杂, 建议将其放在代码块中并把结果赋值给一个对象。在行内引用该对象 :

8 围栏显示

如果在编写关于 Quarto 代码块的教程或文档, 需要在输出中包含围栏代码分隔符 ```{python}, 可以使用 echo: fenced 选项来实现 :

```{python}
#| echo: fenced
1 + 1
```

将被渲染为 :

```{python}
1 + 1
```
2

在演示代码块选项的用法时尤其有用。除了 echo: fenced 被隐藏, 其他所有 YAML 选项被保留 :

```{python}
#| echo: fenced
#| output: false
#| code-overflow: wrap
1 + 1
```

该代码块在渲染后的文档中显示为 :

```{python}
#| output: false
#| code-overflow: wrap
1 + 1
```

如果希望所有可执行代码块都包含围栏分隔符和 YAML 选项, 也可以在文档级别指定该行为 :

---
title: "My Document"
format: html
execute:
  echo: fenced
---

使用双花括号 {{ 可以将围栏代码块作为纯文本展示 :

```{{python}}
1 + 1
```

在文档中输出为 :

```{python}
1 + 1
```

如果想展示包含多个代码块和其他示例, 只需用 4 个反引号 ``````, 或更多将整个示例括起来, 并对内部的代码块使用双花括号语法 :

````
---
title: "My document"
---

Some markdown content.

```{{python}}
1 + 1
```

Some additional markdown content.
````

9 链接