我在 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 文件的顶部。有更好的解决方案吗?
任何帮助表示赞赏!
如何在四开PDF文档中自定义字体?mainfont我意识到和选项的存在fontfamily,但文档没有提供如何使用它们以及哪些字体可用的示例。另外,有哪些字体可供使用monofont?
这是文档:https://quarto.org/docs/reference/formats/pdf.html#fonts
我想创建一个下拉菜单来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)
不起作用。
那么我应该在哪里以及如何申报呢?
非常感谢!
在 R Markdown Beamer 中,我通过以下命令添加了目录 (TOC):
output:
beamer_presentation:
toc: true
slide_level: 2
Run Code Online (Sandbox Code Playgroud)
我需要一种方法来为 TOC 幻灯片制作标题(并且用葡萄牙语)。我看到了一些已回答的问题,但它们不是为 Beamer 准备的。
我正在使用带有revealjs格式的四开演示文稿。我可以像这样将图像设置为水平居中
{fig-align="center" height="200"}
Run Code Online (Sandbox Code Playgroud)
我试图让图形垂直居中对齐,但我找不到方法。如果我尝试通过将类更改为 来调整幻灯片的 css .center,它确实会将内容垂直居中,但它会居中所有内容而不仅仅是图像。
如何使图像垂直居中?
我尝试过的事情:
style="padding-top: 150px;有助于使其居中,但很引人注目vertical-align: middle;似乎不起作用抱歉,如果这是一个非常微不足道的问题,但我在互联网上查找并找不到答案。我正在使用 markdown 中的 gt 包制作一个基本表格。但在编织到 *.pdf 时,我似乎无法让文本换行。任何帮助将不胜感激!
table_data %>% gt()
Run Code Online (Sandbox Code Playgroud) 我一直在尝试 Rstudio 的新四开工具,但似乎我无法做一些在旧版本的R Notebook或R Markdown替代品中可以做的事情。
我想通过几个四开文档 (.qmd) 组织我的工作流程,并且我想生成 .html 文档以与非 R 用户共享。例如,假设我有以下 4 个文档:
在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) 我在 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 文件,再次出现相同的错误。
那么我该如何解决这个问题呢?
我正在使用 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 的使用并使用本地字体呢?