小编sha*_*fee的帖子

为四开书项目的每一章预渲染 R 脚本

我在 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 文件的顶部。有更好的解决方案吗?

任何帮助表示赞赏!

r bookdown quarto

12
推荐指数
1
解决办法
834
查看次数

更改四开 pdf 文档中的字体

如何在四开PDF文档中自定义字体?mainfont我意识到和选项的存在fontfamily,但文档没有提供如何使用它们以及哪些字体可用的示例。另外,有哪些字体可供使用monofont

这是文档:https://quarto.org/docs/reference/formats/pdf.html#fonts

pdf latex r quarto

11
推荐指数
1
解决办法
7356
查看次数

四开的下拉菜单

我想创建一个下拉菜单来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)

r drop-down-menu quarto

9
推荐指数
1
解决办法
1745
查看次数

如何将 CSS 样式应用于四开输出

我想将样式应用于四开块输出。

我做的第一件事是将一些 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)

不起作用。

那么我应该在哪里以及如何申报呢?

非常感谢!

css chunks output quarto

9
推荐指数
1
解决办法
5521
查看次数

如何在 r markdown Beamer 的目录幻灯片中添加标题

在 R Markdown Beamer 中,我通过以下命令添加了目录 (TOC):

output: 
  beamer_presentation: 
    toc: true
    slide_level: 2
Run Code Online (Sandbox Code Playgroud)

幻灯片插入标题

我需要一种方法来为 TOC 幻灯片制作标题(并且用葡萄牙语)。我看到了一些已回答的问题,但它们不是为 Beamer 准备的。

latex beamer r-markdown

8
推荐指数
1
解决办法
1354
查看次数

四开演示文稿中图像的垂直对齐

我正在使用带有revealjs格式的四开演示文稿。我可以像这样将图像设置为水平居中

![](img/path_to_img.svg){fig-align="center" height="200"}
Run Code Online (Sandbox Code Playgroud)

我试图让图形垂直居中对齐,但我找不到方法。如果我尝试通过将类更改为 来调整幻灯片的 css .center,它确实会将内容垂直居中,但它会居中所有内容而不仅仅是图像。

如何使图像垂直居中?

我尝试过的事情:

  • 添加style="padding-top: 150px;有助于使其居中,但很引人注目
  • 添加vertical-align: middle;似乎不起作用

css r reveal.js quarto

8
推荐指数
1
解决办法
4183
查看次数

使用 gt 编织为 pdf 时在表格中换行文本

抱歉,如果这是一个非常微不足道的问题,但我在互联网上查找并找不到答案。我正在使用 markdown 中的 gt 包制作一个基本表格。但在编织到 *.pdf 时,我似乎无法让文本换行。任何帮助将不胜感激!

table_data %>% gt()
Run Code Online (Sandbox Code Playgroud)

r-markdown gt

8
推荐指数
1
解决办法
442
查看次数

渲染许多连接的四开文档

我一直在尝试 Rstudio 的新四开工具,但似乎我无法做一些在旧版本的R NotebookR Markdown替代品中可以做的事情。

我想通过几个四开文档 (.qmd) 组织我的工作流程,并且我想生成 .html 文档以与非 R 用户共享。例如,假设我有以下 4 个文档:

  • 01_数据处理.qmd
  • 02_统计分析.qmd
  • 03_Plots.qmd
  • 04_报告.qmd

01_DataProcessing.qmd中,我清理并组织了其他三个文件中使用的所有数据。因此,其他三个文件依赖于01_DataProcessing.qmd,必须先运行 *01_DataProcessing.qmd 才能运行其他文件。在 Rstudio 中,这可以完美地工作,因为环境中的所有数据都可以由所有 .qmd 文件访问。

然而,当我想生成 .hmtl 文件时,我必须“渲染” .qmd 文件。这就是我发现问题的地方。渲染似乎忽略了全局环境中的所有变量(以及所有加载的库),因此它显示错误(执行停止)。这意味着我只能使用包含所有代码的独立文档,这对于大型工作流程可能会出现问题。

我错过了什么吗?我需要更改一些设置吗?有什么解决方法吗?如何指定 .qmd 使用全局环境中可用的所有数据?

请注意,将最新版本的 Rstudio 更改为 .rmd 并不能解决问题,因为行为与 .qmd 文档相同。另外,请注意,过去并非如此。

编辑

为了给出一个可重现的示例,假设在第一个qmd文件01_DataProcessing.qmd中,我创建了一个 data.frame并且我想在03_Plots.qmd文件中TestData使用TestData

01_数据处理.qmd

---
title: "01_DataProcessing"
format: html
editor: visual
---

```{r}
library(tidyverse)
library(magrittr)

TestData <- data.frame( …
Run Code Online (Sandbox Code Playgroud)

r rstudio knitr r-markdown quarto

8
推荐指数
1
解决办法
1990
查看次数

在 VS 代码中将 .qmd 文件渲染为 html 时,我遇到了“ModuleNotFoundError:没有名为 'nbformat' 的模块”

我在 VS code 中编辑了 .qmd 文件,但未能将其渲染为 html。错误信息如下:

Starting python3 kernel...Traceback (most recent call last):
  File "D:\Program Files\Quarto\share\jupyter\jupyter.py", line 21, in <module> 
    from notebook import notebook_execute, RestartKernel
  File "D:\Program Files\Quarto\share\jupyter\notebook.py", line 16, in <module>
    import nbformat
ModuleNotFoundError: No module named 'nbformat'
Run Code Online (Sandbox Code Playgroud)

我想知道如何解决这个问题。

我猜问题出在 python 解释器上,但我不知道如何切换到 .qmd 文件下的另一个 python 解释器。

另外,我conda install nbformat在命令行中尝试过,安装成功。接下来,我再次渲染 .qmd 文件,再次出现相同的错误。

那么我该如何解决这个问题呢?

python jupyter visual-studio-code quarto

8
推荐指数
1
解决办法
6014
查看次数

如何使用主题中本地存储的字体覆盖默认字体?

我正在使用 Quarto 构建一个网站,并尝试覆盖主题中的默认字体。(我的总体目标是使用本地谷歌字体而不是使用谷歌API)。

我的_quarto.yml样子是这样的:

project:
  type: website

format:
  html:
    theme: 
      light: [flatly, light.scss]
Run Code Online (Sandbox Code Playgroud)

确实light.scss看起来像那样。所有字体都在fonts/

/*-- scss:defaults --*/

/* lato-regular - latin-ext_latin */
@font-face {
  font-display: swap; 
  font-family: 'Lato';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/lato-v23-latin-ext_latin-regular.woff2') format('woff2'), /* Chrome 36+, Opera 23+, Firefox 39+ */
       url('fonts/lato-v23-latin-ext_latin-regular.woff') format('woff'); /* Chrome 5+, Firefox 3.6+, IE 9+, Safari 5.1+ */
}
Run Code Online (Sandbox Code Playgroud)

我正在使用 chromium 中的开发人员模式来调查是否使用了本地文件。不幸的是,我的custom.scss ie,(light.scss)无法覆盖默认配置。

如何才能覆盖 api 的使用并使用本地字体呢?

css google-fonts quarto

8
推荐指数
1
解决办法
1219
查看次数