ioslides 演示文稿不呈现 png 图像文件
ioslides presentation doesn't render png image file
下面是一个小型 ioslides 演示文稿,其中一张幻灯片中嵌入了闪亮的应用程序。另一张幻灯片尝试显示 png 图像文件。
当我在 RStudio 中 "Run Presentation" 时,png 图像不呈现,我收到警告:
Warning in file.create(to[okay]) :
cannot create file 'C:\Users\John\AppData\Local\Temp\Rtmpkty0sF\file3b247a612422_files/C:/Develop/data/smile.png', reason 'Invalid argument'
如果我删除闪亮的代码,并从 YAML 中删除 "runtime: shiny",则 png 图像会正确呈现,而不会出现警告。在这种情况下,RStudio 显示一个 "knit" 演示文稿的按钮,而不是 "Run Presentation" 闪亮应用程序的按钮。
这里报告了类似的问题:
这里:
Error adding images in ioslides
这是我的设置:
Windows9、
RStudio 版本 0.99.473,
包:rmarkdown 版本:0.7.3,
包:闪亮版本:0.12.2.9001,
包:httpuv 版本:1.3.3,
这是我的 RMarkdown 代码:
---
title: "ioslides Presentation with Shiny"
author: "John Doe"
date: "August 27, 2015"
output:
ioslides_presentation:
widescreen: true
smaller: true
transition: 0.1
self_contained: true
runtime: shiny
---
## Slide with Embedded Inline Shiny Application
Below is an embedded inline shiny application:
```{r, echo=FALSE}
inputPanel(
selectInput("n_breaks", label = "Number of bins:",
choices = c(10, 20, 35, 50), selected = 20),
sliderInput("bw_adjust", label = "Bandwidth adjustment:",
min = 0.2, max = 2, value = 1, step = 0.2)
)
renderPlot({
hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks),
xlab = "Duration (minutes)", main = "Geyser eruption duration")
dens <- density(faithful$eruptions, adjust = input$bw_adjust)
lines(dens, col = "blue")
})
```
## Slide With a Smiling Face
![smiling_face](C:/Develop/data/smile.png)
JJ Allaire(RStudio 的 CEO!)在此处提供了 GitHub 的答案:
jjallaire answers
我总结一下,如果 ioslides 演示文稿包含嵌入式 shiny 应用程序,则它要求将图像文件存储在与 .Rmd 文件相同的目录中,或者存储在子目录中,而不是单独的目录中分支。应该使用相对文件路径而不是绝对路径来引用图像文件。这是因为当编织(解析)ioslides 演示文稿时,它们被存储为包含 .js 和其他文件的目录,并且必须将所有图像复制到该目录中。硬编码绝对文件路径可防止 RStudio knitr 复制图像文件。
我将图像文件复制到 "image" 子目录,并将我的 rmarkdown 代码更改为此,现在可以使用了:
![smiling_face](image/smile_small.png)
下面是一个小型 ioslides 演示文稿,其中一张幻灯片中嵌入了闪亮的应用程序。另一张幻灯片尝试显示 png 图像文件。 当我在 RStudio 中 "Run Presentation" 时,png 图像不呈现,我收到警告:
Warning in file.create(to[okay]) : cannot create file 'C:\Users\John\AppData\Local\Temp\Rtmpkty0sF\file3b247a612422_files/C:/Develop/data/smile.png', reason 'Invalid argument'
如果我删除闪亮的代码,并从 YAML 中删除 "runtime: shiny",则 png 图像会正确呈现,而不会出现警告。在这种情况下,RStudio 显示一个 "knit" 演示文稿的按钮,而不是 "Run Presentation" 闪亮应用程序的按钮。
这里报告了类似的问题:
这里:
Error adding images in ioslides
这是我的设置: Windows9、 RStudio 版本 0.99.473, 包:rmarkdown 版本:0.7.3, 包:闪亮版本:0.12.2.9001, 包:httpuv 版本:1.3.3,
这是我的 RMarkdown 代码:
---
title: "ioslides Presentation with Shiny"
author: "John Doe"
date: "August 27, 2015"
output:
ioslides_presentation:
widescreen: true
smaller: true
transition: 0.1
self_contained: true
runtime: shiny
---
## Slide with Embedded Inline Shiny Application
Below is an embedded inline shiny application:
```{r, echo=FALSE}
inputPanel(
selectInput("n_breaks", label = "Number of bins:",
choices = c(10, 20, 35, 50), selected = 20),
sliderInput("bw_adjust", label = "Bandwidth adjustment:",
min = 0.2, max = 2, value = 1, step = 0.2)
)
renderPlot({
hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks),
xlab = "Duration (minutes)", main = "Geyser eruption duration")
dens <- density(faithful$eruptions, adjust = input$bw_adjust)
lines(dens, col = "blue")
})
```
## Slide With a Smiling Face
![smiling_face](C:/Develop/data/smile.png)
JJ Allaire(RStudio 的 CEO!)在此处提供了 GitHub 的答案:
jjallaire answers
我总结一下,如果 ioslides 演示文稿包含嵌入式 shiny 应用程序,则它要求将图像文件存储在与 .Rmd 文件相同的目录中,或者存储在子目录中,而不是单独的目录中分支。应该使用相对文件路径而不是绝对路径来引用图像文件。这是因为当编织(解析)ioslides 演示文稿时,它们被存储为包含 .js 和其他文件的目录,并且必须将所有图像复制到该目录中。硬编码绝对文件路径可防止 RStudio knitr 复制图像文件。
我将图像文件复制到 "image" 子目录,并将我的 rmarkdown 代码更改为此,现在可以使用了:
![smiling_face](image/smile_small.png)