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

呈现位于blogdown静态文件夹中的Rmd文件时,RStudio中knitr按钮的行为,r,r-markdown,knitr,render,blogdown,R,R Markdown,Knitr,Render,Blogdown,我有一个Rmd文件,我想转换成pdf文件。目前它位于“静态”文件夹的子文件夹中,该文件夹是blogdown包创建的我的博客网站结构的一部分。问题是,当我点击RStudio中的“Knit”按钮时,它调用rmarkdown::render\u site(…),而我正期待rmarkdown::render(…)。我有一个文件R/build.R,只有一行命令blogdown::build\u dir(“static”),所以这对我来说很奇怪。当我尝试将其他Rmd文件转换到另一个文件夹(与我的博客文件夹/

我有一个Rmd文件,我想转换成pdf文件。目前它位于“静态”文件夹的子文件夹中,该文件夹是blogdown包创建的我的博客网站结构的一部分。问题是,当我点击RStudio中的“Knit”按钮时,它调用
rmarkdown::render\u site(…)
,而我正期待
rmarkdown::render(…)
。我有一个文件
R/build.R
,只有一行命令
blogdown::build\u dir(“static”)
,所以这对我来说很奇怪。当我尝试将其他Rmd文件转换到另一个文件夹(与我的博客文件夹/文件无关)时,一切正常

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

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

> 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创建的所有文件夹/文件的根文件夹),“Knit”按钮意外地调用
rmarkdown::render\u site(…)
。但是,当我在文件夹中复制与
C:/Users/jungl/Dropbox/test/HW3.Rmd
相同的
HW3.Rmd
时,“Knit”按钮按预期工作,并调用
rmarkdown::render(…)
。因此,RStudio的“Knit”按钮似乎自动确定是否应该调用
rmarkdown::render\u站点(…)
rmarkdown::render(…)
取决于工作中的Rmd文件是否位于根文件夹的(子)文件夹中,该文件夹保存blogdown生成的文件夹/文件

编辑: Github回购协议位于
https://github.com/junglee0713/blog2020
我刚刚检查了相同的问题是否仍然存在。我要转换为PDF的
HW3.Rmd
文件位于
https://github.com/junglee0713/blog2020/tree/master/static/Drexel_2021

还有一个编辑:安装blogdown的dev版本似乎解决了这个问题(下面的输出,注意它仍然调用
rmarkdown::render_site(…)
),但是还有另一个问题。它将同一目录中的其他Rmd文件,比如
HW1.Rmd
HW2.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.PDF
HW2.PDF
的未经请求的更新(如您所见,我在
HW3.Rmd
中没有任何ggplot图,并且输出警告使用binwidth选择更好的值。
HW2.Rmd
中有
geom\u直方图()。我更感兴趣的是,在
HW1.Rmd
HW2.Rmd
HW3.Rmd
所在的文件夹中,还有其他我转换为HTML的Rmd文件(比如
Drexel\u 2021\u讲座1.Rmd
Drexel\u 2021\u讲座2.Rmd
,以及
Drexel\u 2021\u讲座3.Rmd
,它们是Xarigan幻灯片)而且他们不会受到编织的影响。

当您单击“编织”按钮时,blogdown确实会首先调用
rmarkdown::render_site()
,但会调用此函数

如果在您单击Knit按钮时它没有将您的Rmd文件编译为PDF,请确保您使用的是最新版本的blogdown,因为它听起来像是我几个月前修复的bug()

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

install.packages('blogdown',repos=c(
rstudio公司https://rstudio.r-universe.dev',
克兰https://cloud.r-project.org'
))
单击“编织”按钮时,您将在R标记选项卡中看到编织的详细日志:


如果您能在您的帖子中提供xfun::session\u info('blogdown')
的输出,那将非常有帮助。谢谢!我将在下面发布xfun::session\u info('blogdown')的输出。但是,我仍然有同样的问题。点击“Knit”按钮后得到的结果如下:==>rmarkdown::render\u站点('C:/Users/jungl/Dropbox/GitHub/blog2020/static/Drexel_2021/HW3.Rmd',encoding='UTF-8');呈现static/Drexel_2021/HW3.Rmd…完成。以后,请将会话信息添加到原始帖子中(您可以随时编辑它),而不是将其作为答案发布,因为它不是答案。我这次是为你做的。现在,我可以请你提供一个可复制的示例吗?因为这在我自己的测试中是不可复制的。感谢Yihui编辑我的原始帖子——现在我删除了
xfun::session\u info('blogdown'))
根据您的建议回答。不客气!如果您提供一个可复制的示例,我将更容易帮助您。我将blogdown软件包更新为1.1版。尽管如此,仍然存在相同的问题。非常感谢!安装开发版本似乎可以解决问题,但这次它会呈现一些其他Rmd文件s也在同一个目录下,以PDF格式发布(可能在以前版本的blogdown中也是如此,我可能没有注意到),正如原始帖子中新编辑的部分所述。太好了!我很高兴我们取得了进展。它不应该呈现其他Rmd文件。这听起来像是
R/build.R
blogdown::build\u dir()的问题
。我想我知道如何修复它,明天我会研究它。@Jung JinLee您可以重新安装blogdown(v1.1.7)的开发版本,现在应该可以解决问题了。嗨,Yihui,问题完全解决了!!非常感谢您到目前为止花费的时间和精力,a