r - knitr::include_graphics in bookdown,不渲染图像

标签 r knitr r-markdown bookdown

我试图在我使用 bookdown 渲染的文件中包含一个 .png 文件。 knitr::include_graphics()应该是要走的路。

编码:

```{r fig1, fig.cap='My Caption', echo=FALSE, message=FALSE, warning=FALSE}
knitr::include_graphics("./Figures/My Figure.png")
```

在 .Rmd 文件中,我可以运行我的 r 块,它呈现下面的图像。所以,路径应该是正确的。但是,当我编织章节或渲染整本书时,图形并未渲染。

难道是我的其他一些选项覆盖了这个数字?下面是我的 index.Rmd 文件的 YAML header ,以及我的 _output.yml 文件中的代码。
--- 
title: "My Title"
author: "My Name"
date: "`r Sys.Date()`"
output: 
  bookdown::gitbook:
    split_by: section
  bookdown::pdf_book:
    keep_tex: no
documentclass: book
classoption: openany
bibliography: [Mybib.bib]
csl: Mycsl.csl
biblio-style: apalike
link-citations: yes
description: "My Description"
---

bookdown::gitbook:
  config:
    toc:
      before: |
        <li><a href="./">Short Title</a></li>
bookdown::pdf_book:
  latex_engine: xelatex
  citation_package: natbib
bookdown::epub_book: default

最佳答案

图像文件路径中有空格。

文件名中的空格在 R 中不是问题,这就是您能够在 RStudio 中看到图像的原因。然而,knitr 有点复杂,因为它实际上执行了许多不同的程序(R、pandoc 和 LaTeX)。

knitr 的指南中所述, knitr:: includegraphics函数实际上根据输出是 HTML、PDF 还是 md 执行不同的结果。在构建 PDF 时,它通过 LaTeX 传递图像并使用函数 \includegraphics{}插入图片。如解释 here :

"The file name of the image should not contain white spaces nor multiple dots"



删除空格将解决问题,即使技术上允许,在 R 中避免它们通常是一种很好的做法。

归功于 @pzhao用于初步突出问题。

关于r - knitr::include_graphics in bookdown,不渲染图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47155042/

相关文章:

r - 如何创建仅包含数据集的 R 包?

r - 如果为 1,则将列转换为逗号分隔的列表

r - 根据 block 内容设置 block 选项

r - 您必须启用 Javascript 才能正确查看此页面。错误 knitr rgl

r - 计算特定值的变量中值发生变化的次数

r - 使用 Lubridate 将 R 中的字符列转换为日期

r - 编织具有 Shiny 内容的 Markdown 文件

html - 如何将 URL 链接添加到顶部导航栏

latex - 如何在四开 pdf 书籍的标题页上使用不同的页边距?

在另一个具有重复 block 名称的 Rmarkdown 文档中仅运行来自一个 Rmarkdown 文档的代码