我正在处理要打印到 html 文档的svg
列表。我正在使用magick
包,以为我愿意使用其他包/解决方案。下面的代码是我尝试呈现我的 html 文档。但是,它不是将svg
呈现到 html 文件中,而是简单地将 metadeta 打印到文档中。有没有办法克服这种行为?
---
title: "My Test Report"
author: "Nicholas Hayden"
date: "6/12/2018"
output: html_document
---
```{r setup, set-options, include=FALSE, warning=FALSE}
library(rsvg)
library(magick)
paths <- c(
"~/path/to/my1.svg",
"~/path/to/my2.svg")
for (i in 1:length(paths)) {
print(image_read_svg(paths[i]))
}
```
编辑:
一些阐明问题的例子。
Rmd
命令:
![]("~/path/to/my1.svg")
失败并产生...
File "/Users/nicholashayden/Desktop/path/to/my1.svg" not found in resource path
Error: pandoc document conversion failed with error 99
正如@mikeck所指出的。这可能是路径问题。但是,在没有~
的情况下尝试会产生相同的错误。
<img src="/Users/nicholashayden/path/to/my1.svg">
的 html 纯文本将图像放置在 html 文档中,而~
版本失败,并出现与上一个相同的错误。
knitr::include_graphics()
方法使用绝对路径或具有~
的路径生成空格
我想你想使用include_graphics
:
```{r}
for (i in 1:length(paths)) {
print(knitr::include_graphics(paths[i]))
}
```
我想我找到了这个问题的解决方案,这是一个伪解决方案,可以完成任务,但没有解释产生问题的潜在机制。
根据knitr::include_graphics()
文档,path
参数是一个A character vector of image paths
- 强调向量。我们可以不magick
地显示.svg
文件,只需在示例中的引用中使用下面的代码。
# From example
paths <- c(
"/Users/nicholashayden/path/to/my1.svg",
"/Users/nicholashayden/path/to/my2.svg")
# Solution
knitr::include_graphics(paths)
这样,我们可以避免使用由于某种原因导致此问题的for
循环。但是,这不适用于路径字符串中的~
。我的问题是在knitr::include_graphics()
函数中忽略和假设参数。希望这对将来的任何人都有帮助。