使用Firefox或Chrome打开时,Rmarkdown生成的html文件中未显示Pdf数字

时间:2017-04-21 18:46:16

标签: html r pdf knitr r-markdown

我想在由Rmarkdown生成的html文件中插入pdf图。这是我的test.Rmd

---
title: "knit include_graphics"
author: "D Li"
date: "4/21/2017"
output: html_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## R Markdown

```{r out.width=800}
knitr::include_graphics("/Users/dli/Dropbox/UFL/SFL/Doc_beta_div/ecoregions_all.pdf")
sessionInfo()  
```

这是我的会话信息:

## R version 3.3.2 (2016-10-31)
## Platform: x86_64-apple-darwin13.4.0 (64-bit)
## Running under: macOS Sierra 10.12.4
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
##  [1] backports_1.0.5      magrittr_1.5         rprojroot_1.2       
##  [4] tools_3.3.2          htmltools_0.3.5      yaml_2.1.14         
##  [7] Rcpp_0.12.10         stringi_1.1.2        rmarkdown_1.4.0.9001
## [10] knitr_1.15.19        stringr_1.2.0        digest_0.6.12       
## [13] evaluate_0.10

然后使用Rstudio版本1.0.136中的knit按钮,我得到一个test.html文件。插入的图显示在RStudio查看器面板和Safari中。但它不会在Chrome或Firefox中显示。有没有人有同样的问题?我该如何解决?

感谢。

Imgur

1 个答案:

答案 0 :(得分:1)

事实证明,当chunk选项out.width存在时,这是一个 knitr 问题,我在Github上只是fixed it。你可以devtools::install_github('yihui/knitr')

如果没有out.width,Pandoc会使用![](foo.pdf)标记写出PDF图像<embed>,该标记适用于所有主流浏览器,但在指定out.width时, knitr 将使用HTML语法<img src="foo.pdf" />来写出图片,但它无法在Chrome或Firefox中使用。解决此问题的方法是将标记更改为<embed>,就像Pandoc所做的那样。