2015-12-03 4 views
4

Я хочу, чтобы изображение svg было встроено в документ PDF, который я визуализировал с помощью rmarkdown. Это не кажется возможным, или мне что-то не хватает? Если это невозможно, есть способ сначала преобразовать изображение .svg в .png, прежде чем встраивать его?Можно ли включить svg-изображение в pdf-документ, предоставленный rmarkdown?

В моем файле rmarkdown это выглядит следующим образом (обратите внимание на два различных вида вставки изображения):

```{r results="asis",eval=TRUE,echo=FALSE,message=FALSE, error=FALSE, warning=FALSE, comment = NA,fig.height=10} 

cat("![](svg_file.svg)") 

``` 

![](svg_file.svg) 

ответ

0

Я нашел решение, которое работает для меня. Он основан на использовании пакета LaTeX svg и некоторого кода LaTeX внутри вашего файла Rmarkdown.

Это может быть достигнуто в этих основных этапов:

  1. Включите svg пакет в LaTeX преамбуле. Это можно сделать, используя заголовок Rmarkdown.
  2. Убедитесь, что LaTeX вызывается с включенной опцией --shell-escape. Это также можно сделать с помощью заголовка Rmarkdown.
  3. Включите изображение в формате SVG, используя \includesvg{svg-image} внутри вашего текста Rmarkdown. Будьте осторожны, не включают расширение файла.

Обязательно используйте pdflatex в качестве двигателя LaTeX. Другие двигатели, вероятно, тоже будут работать, но им потребуются разные варианты ...

Ниже приведен пример, который работает на моей машине с SVG-изображением с именем svg-image.svg в рабочем каталоге.

--- 
output: 
    pdf_document: 
    latex_engine: pdflatex 
    pandoc_args: "--latex-engine-opt=--shell-escape" 
header-includes: 
    - \usepackage{svg} 
--- 

\includesvg{svg-image} 

Надеюсь, это поможет!

Смежные вопросы