RStudio IDE
概述
RStudio v2022.07 及更高版本支持编辑和预览 Quarto 文档(以下文档假设您使用的是此版本或更高版本)。
如果您在 RStudio 中使用 Quarto,强烈建议您使用 最新版本 的 RStudio(v2023.12)。
您可以从 https://posit.co/download/rstudio-desktop/ 下载 RStudio v2023.12。
创建文档
使用 文件 : 新建文件 : Quarto 文档… 命令创建新的 Quarto 文档:
渲染和预览
使用 渲染 按钮在编辑时预览文档:
如果您希望在保存时自动渲染,可以在编辑器工具栏中勾选 保存时渲染 选项。
预览将显示在编辑器旁边:
每当您重新渲染文档时,预览都会更新。并排预览适用于 HTML 和 PDF 输出。
项目
如果您想为 Quarto 文档或一组文档创建一个新项目,请使用 文件 : 新建项目… 命令,指定 新建目录,然后选择 Quarto 项目:
可视化编辑器
RStudio IDE 包含一个用于 Quarto Markdown 的可视化编辑器,支持表格、引用、交叉引用、脚注、div/span、定义列表、属性、原始 HTML/TeX 等功能:
要了解更多信息,请参阅关于 使用可视化编辑器 的文档。
Knitr 引擎
Quarto 设计为与现有的 R Markdown 文档高度兼容。通常情况下,您应该能够使用 Quarto 渲染任何现有的 Rmd 文档而无需更改。
R Markdown文档与Quarto文档之间的一个重要区别在于,在Quarto中,代码块选项通常包含在代码块顶部的特殊注释中,而不是在开始代码块的那一行内。例如:
```{r}
#| echo: false
#| fig-cap: "Air Quality"
library(ggplot2)
ggplot(airquality, aes(Temp, Ozone)) +
geom_point() +
geom_smooth(method = "loess", se = FALSE)
```
Quarto采用这种方法,既可以更好地适应像fig-cap
、fig-subcap
和fig-alt
这样的较长选项,也使得在不具备便捷编辑代码块元数据功能的更结构化的编辑器中(例如大多数传统笔记本用户界面),编辑代码块选项变得简单明了。
请注意,如果你愿意,仍然可以在第一行包含代码块选项(例如```{r, echo = FALSE}
)。尽管如此,我们建议使用基于注释的语法,以使文档在不同执行引擎之间更具可移植性和一致性。
以这种方式包含的代码块选项使用YAML语法而不是R语法,以与YAML前置内容中提供的选项保持一致。然而,你仍然可以通过在选项值前加上!expr
来使用R代码。例如:
#| fig-cap: !expr 'paste("Air", "Quality")'
!expr
语法是YAML“标签”字面量的一个示例,可能不太直观。!expr
后面需要跟随一个_单一的YAML“流标量”_:有关双引号、单引号和无引号字符串的工作原理,请参阅YAML规范。
Jupyter 引擎
您还可以在 RStudio 中处理以 Jupyter 引擎为目标的 Quarto Markdown 文档。这些文件通常会在 YAML 前文中包含一个 jupyter
选项,指示要使用的内核。例如:
---
title: "Matplotlib 演示"
author: "Norah Smith"
jupyter: python3
---
如果您想在虚拟环境中工作(venv),请使用 文件 : 新建项目… 命令,指定 Jupyter 引擎并使用 venv,并指定您希望用哪些包来初始化 venv:
每当您打开项目时,RStudio 都会自动激活此虚拟环境。您可以使用 RStudio 的 终端 选项卡将其他 Python 包安装到环境中。例如:
YAML 智能
项目文件、YAML 前文和可执行单元选项的 YAML 代码补全功能可用:
如果 YAML 有误,文档保存时也会被高亮显示:
R 包
如果您不使用 RStudio 或更喜欢从 R 控制台渲染,可以使用 quarto R 包来实现。要安装 R 包:
install.packages("quarto")
然后,要渲染文档:
library(quarto)
quarto_render("document.qmd")
要渲染网站(即:组织为网站的目录中的所有 qmd):
library(quarto)
quarto_render()
要实时预览(自动渲染并在保存时刷新浏览器)您正在处理的文档,请使用 quarto_preview()
函数:
library(quarto)
quarto_preview("document.qmd")
如果您正在处理 网站 或 书籍 项目,您也可以在项目目录上使用 quarto_preview()
:
library(quarto)
quarto_preview()