Quarto是一个全新的开源科技出版系统,号称是“RStudio 的下一代 R Markdown 版本”。我是一个狂热的 RMarkdown 用户,但我还没有完全理解使用 Quarto 相对于 RMarkdown 的优势是什么。两者看起来非常相似。
RMarkdown 和 Quarto 之间是否有需要注意的重要区别?
四开本
我正在创建一个网站,Quarto并希望有一个两列布局,这样我就可以很好地并排显示文本。streamlit您可以使用它columns来获得两列布局。以下是如何布局的示例代码:
---
title: "Two columns layout Quarto"
format:
html:
code-fold: true
engine: knitr
---
I would like to have text here and here
Sentence becomes longer, it should automatically stay in their column More text
Run Code Online (Sandbox Code Playgroud)
输出:
正如您所看到的,文本被组合成一个句子,而我希望将其分开,就像两列布局一样。所以我想知道这是否可能Quarto?
流线型
这是一个例子streamlit:
# Package
import streamlit as st
# Function with columns
def txt(a, b):
col1, col2 = st.columns([7,2])
with col1:
st.markdown(a)
with col2:
st.markdown(b)
# Example
st.write('# Example in Streamlit')
txt('I …Run Code Online (Sandbox Code Playgroud) 我在 R 中有一个 bookdown 项目,想切换到 Quarto。在 bookdown 项目中,我有一个 R 脚本_common.R(它包括库以及各种设置和辅助函数)在渲染每一章(单独的 qmd 文件)之前运行。
如何在 Quarto 中实现这样的脚本文件?
我尝试在 _quarto.yml 中设置:
project:
type: book
pre-render: _common.R
Run Code Online (Sandbox Code Playgroud)
但这只会在整本书渲染之前运行一次脚本,而不是在每一章之前运行一次。每个章节似乎都是在自己的环境中呈现的,因此所有设置和脚本_common.R都不可用。
解决方法是包括
```{r echo = FALSE, message=FALSE, warning=FALSE}
source("_common.R")
```
Run Code Online (Sandbox Code Playgroud)
在每个 .Rmd/.qmd 文件的顶部。有更好的解决方案吗?
任何帮助表示赞赏!
是否可以通过在 YAML 标头中指定来一次从 Quarto/R Markdown 文档创建多种输出格式?
我的猜测没有成功:
---
title: Stacked Area chart with Annotations
format:
- html
- gfm
---
Run Code Online (Sandbox Code Playgroud) 我在下面提供了一个可重现的小示例。我想为命名 list 中的每个 ggplot 对象在四开中生成选项卡plots。下面的四开文档将在其自己的二级标题中呈现图形,但不会按预期呈现在选项卡中。
---
title: "Untitled"
format: html
---
```{r}
library(tidyverse)
data <- iris %>% as_tibble()
plots <- data %>%
group_nest(Species) %>%
deframe() %>%
map(., ~ {
ggplot(.x, aes(x = Sepal.Length, y = Sepal.Width)) +
geom_point()
})
```
# Iris Plots
::: {.panel-tabset}
```{r}
#| column: screen
#| fig-width: 12
#| fig-height: 8
#| fig-align: center
#| results: asis
iwalk(plots, ~ {
cat('## ', .y, '\n\n')
print(.x)
cat('\n\n')
})
```
:::
Run Code Online (Sandbox Code Playgroud)
当块选项(除 results:asis 之外的所有选项)被删除时,文档将按预期正确渲染选项卡内的绘图。
# Iris …Run Code Online (Sandbox Code Playgroud) 如何在四开PDF文档中自定义字体?mainfont我意识到和选项的存在fontfamily,但文档没有提供如何使用它们以及哪些字体可用的示例。另外,有哪些字体可供使用monofont?
这是文档:https://quarto.org/docs/reference/formats/pdf.html#fonts
我是在 R 和 RStudio 中使用 Quarto 制作 Revealjs 幻灯片的新手。我想在具有默认 gt 样式的幻灯片上包含一个 {gt} 表 ( https://gt.rstudio.com/ )。但我遇到的问题是该表是 HTML,并且从演示文稿 CSS 继承了自定义 CSS 样式。
例如,呈现的表格如下所示:字体不是默认的 gt 字体以及其他一些小样式。
---
format:
revealjs:
theme: [night]
highlight-style: a11y
transition: fade
slide-number: true
chalkboard: true
execute:
freeze: auto
---
Run Code Online (Sandbox Code Playgroud)
我尝试过的让我接近的一件事是将knit_print()gt 表的默认方法覆盖为 1. 将表转换为图像gt::gtsave(),然后 2. 使用 {magick} pkg 将图像转换为 ggplot,然后 3. knit_print() ggplot。但它在图像的左侧和右侧增加了空白。
library(tidyverse)
library(gtsummary)
library(knitr)
knit_print.gt_tbl <- function(x, ...) {
# save gt as image -----------------------------------------------------------
path_gt_table_image <- fs::file_temp(ext = "png")
gt_table_image <- …Run Code Online (Sandbox Code Playgroud) 我想创建一个下拉菜单来Quarto显示多个绘图。这R Markdown真的很简单,每个图都使用# Dropdown menu {.tabset .tabset-dropdown}一些。##这是 R markdown 中的一个可重现的示例:
---
title: "Dropdown menu in Rmarkdown"
date: "2022-08-29"
output: html_document
---
# Dropdown menu {.tabset .tabset-dropdown}
## Plot 1
```{r, echo=FALSE}
plot(1:10, 10:1)
```
## Plot 2
```{r, echo=FALSE}
hist(rnorm(100))
```
## Plot 3
```{r, echo=FALSE}
plot(rnorm(10), rnorm(10))
```
Run Code Online (Sandbox Code Playgroud)
输出:
正如您在输出中看到的,有一个下拉菜单可以单独显示每个图。我在 中找到了一些有关Tabsets 部分的Quarto信息,也许认为使用::: {.tabset-dropdown})可以完成这项工作。我在 a 中尝试了以下代码.tabset-dropdown:
---
title: "Dropdown menu in Quarto"
format: html
---
::: …Run Code Online (Sandbox Code Playgroud) 我想将样式应用于四开块输出。
我做的第一件事是将一些 CSS 属性嵌入到.outputQuarto 文档的类中,然后使用以下命令引用它:
```{r class.output="output"}
```
Run Code Online (Sandbox Code Playgroud)
它有效,但我认为它不是很有效,因为我必须在每个文档中编写它。
所以我在custom.scss.output文件中编写了一个带有一些 CSS 属性的类,但现在
```{r class.output="output"}
```
Run Code Online (Sandbox Code Playgroud)
不起作用。
那么我应该在哪里以及如何申报呢?
非常感谢!