gpt4 book ai didi

r - RStudio 中 knitr 按钮在呈现位于 blogdown 静态文件夹中的 Rmd 文件时的行为

转载 作者:行者123 更新时间:2023-12-05 04:54:13 26 4
gpt4 key购买 nike

我有一个 Rmd 文件,我想将其转换为 pdf 文件。目前它位于“静态”文件夹的子文件夹中,该文件夹是我的博客站点结构的一部分,由 blogdown 包创建。问题是,当我在 RStudio 中点击“编织”按钮时,它会调用 rmarkdown::render_site(...) 而我期待 rmarkdown::render(...)。我确实有一个文件 R/build.R,其中包含一行命令 blogdown::build_dir("static"),所以这对我来说很奇怪。当我尝试转换其他文件夹(与我的博客文件夹/文件无关)中的其他 Rmd 文件时,一切都按预期正常工作。

为了得到我想要的,我目前正在控制台中输入 rmarkdown::render("myfile.Rmd"),或者我正在使用 infinite moon reader,但两者都不如“编织”按钮 :(

以下是 xfun::session_info('blogdown') 将 blogdown 包更新到 ver 1.1 后的输出:

> xfun::session_info('blogdown')
R version 4.0.3 (2020-10-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18363), RStudio 1.4.1103

Locale:
LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252
LC_NUMERIC=C LC_TIME=English_United States.1252

Package version:
base64enc_0.1.3 BH_1.75.0.0 blogdown_1.1 bookdown_0.21 digest_0.6.27 evaluate_0.14 glue_1.4.2
graphics_4.0.3 grDevices_4.0.3 highr_0.8 htmltools_0.5.0 httpuv_1.5.4 jsonlite_1.7.2 knitr_1.30
later_1.1.0.1 magrittr_2.0.1 markdown_1.1 methods_4.0.3 mime_0.9 promises_1.1.1 R6_2.5.0
Rcpp_1.0.5 rlang_0.4.9 rmarkdown_2.6 servr_0.21 stats_4.0.3 stringi_1.5.3 stringr_1.4.0
tinytex_0.29 tools_4.0.3 utils_4.0.3 xfun_0.20 yaml_2.2.1

编辑:我不确定这是否有帮助,但我想转换为 pdf 的 HW3.Rmd 文件如下所示:

---
title: "Homework 3"
subtitle: "due Feb 2, 2021"
output:
pdf_document: default
---

```{r}
1 + 1
```

当我将此文件保存在 C:/Users/jungl/Dropbox/GitHub/blog2020/static/Drexel_2021/HW3.Rmd 中的文件夹中时(此处 C:/Users/jungl/Dropbox/GitHub/blog2020 是包含 blogdown 创建的所有文件夹/文件的根文件夹),“编织”按钮意外地调用了 rmarkdown::render_site(...)。但是,当我将相同的 HW3.Rmd 复制到 C:/Users/jungl/Dropbox/test/HW3.Rmd 中的文件夹中时,“Knit”按钮用作预期并调用 rmarkdown::render(...)。所以看起来 RStudio 的“编织”按钮以某种方式自动确定它是否应该调用 rmarkdown::render_site(...)rmarkdown::render(...) 根据工作中的 Rmd 文件是否位于包含 blogdown 生成的文件夹/文件的根文件夹的(子)文件夹中。

编辑:Github 存储库位于 https://github.com/junglee0713/blog2020,我刚刚检查过同样的问题仍然存在。我要转换为 PDF 的 HW3.Rmd 文件位于 https://github.com/junglee0713/blog2020/tree/master/static/Drexel_2021

另一个编辑:安装 blogdown 的开发版本似乎解决了问题(下面的输出,注意它仍然调用 rmarkdown::render_site(...)) ,但有另一个问题。它将同一目录中的其他 Rmd 文件(例如 HW1.RmdHW2.Rmd)呈现为各自的 PDF 文件。

==> rmarkdown::render_site('C:/Users/jungl/Dropbox/GitHub/blog2020/static/Drexel_2021/HW3.Rmd',  encoding = 'UTF-8');
|.................. | 25%
ordinary text without R code

|................................... | 50%
label: setup (with options)
List of 1
$ include: logi FALSE



processing file: HW3.Rmd
|.................................................... | 75%
ordinary text without R code

|......................................................................| 100%
label: unnamed-chunk-1 (with options)
List of 1
$ eval: symbol F


"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS HW3.utf8.md --to latex --from markdown+autolink_bare_uris+tex_math_single_backslash --output HW3.tex --lua-filter "C:\Users\jungl\Documents\R\win-library\4.0\rmarkdown\rmarkdown\lua\pagebreak.lua" --lua-filter "C:\Users\jungl\Documents\R\win-library\4.0\rmarkdown\rmarkdown\lua\latex-div.lua" --self-contained --highlight-style tango --pdf-engine pdflatex --variable graphics --variable "geometry:margin=1in"
output file: HW3.knit.md


Output created: HW3.pdf
`stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

因此,每次我将 HW3.Rmd 呈现为 PDF 时,我也会收到 HW1.pdfHW2.pdf 的未经请求的更新(如您所见,我在 HW3.Rmd 中没有任何 ggplot 图,输出警告使用 binwidth 选择更好的值。HW2.Rmd 确实有 geom_histogram () 在里面)。比较让我感兴趣的是,在HW1.RmdHW2.RmdHW3.Rmd所在的文件夹中,还有其他的我将 Rmd 文件转换为 HTML(比如 Drexel_2021_Lecture_1.RmdDrexel_2021_Lecture_2.RmdDrexel_2021_Lecture_3.Rmd——它们是 xaringan 幻灯片)并且它们不要受到编织的影响。

最佳答案

当您点击“Knit”按钮时,blogdown 会首先调用 rmarkdown::render_site(),但是这个函数 actually calls rmarkdown::render() eventually .

如果当您点击 Knit 按钮时它没有将您的 Rmd 文件编译为 PDF,请确保您使用的是最新版本的 blogdown,因为这听起来像是我已修复的错误几个月前 ( when in doubt, try to update packages )。

如果安装当前开发版本的blogdown(安装后重启R):

install.packages('blogdown', repos = c(
rstudio = 'https://rstudio.r-universe.dev',
CRAN = 'https://cloud.r-project.org'
))

当你点击 Knit 按钮时,你会在 R Markdown 选项卡中看到详细的编织日志:

The R Markdown tab

关于r - RStudio 中 knitr 按钮在呈现位于 blogdown 静态文件夹中的 Rmd 文件时的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65820777/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com