Опции Knitr для EMF в файлах PPTx - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь создать воспроизводимый рабочий процесс, который позволит мне создавать презентации PowerPoint в R. Я хотел бы создать чанк и глобальные опции темы, которые позволили бы мне иметь хорошо выглядящие значения по умолчанию для моих графиков, которые требовали бы минимальной настройки. В прошлом я мог использовать ggsave() и сохранять файлы в EMF, но это было до того, как я начал использовать RMarkdown.

Следующее работает для генерации PNG внутри файла PPT.

---
title: "PPT-Theme-Test"
output:
  powerpoint_presentation:
    slide_level: 2
---

```{r setup, include=FALSE}
library(tidyverse)

knitr::opts_chunk$set(
        include = TRUE,
        fig.width = 16,
        fig.height = 9,
        echo = FALSE,
        warning = FALSE,
        message = FALSE,
        cache = FALSE,
        fig.align = "left"
    )

    ppt_theme <- theme_minimal(base_size = 20) +
        theme(text = element_text(size = 20, color = "#777777"),
                panel.grid = element_blank(),
                plot.title = element_text(size = rel(2), face = "bold"),
                axis.text = element_text(size = rel(1)),
                panel.grid.major.x = element_blank(),
                panel.grid.minor.x = element_blank(),
                plot.background = element_rect(colour = "#E2E6ED", 
                                                fill = "#E2E6ED"))

    theme_set(ppt_theme)
```

## Test Plot

```{r results}
mtcars %>%
    ggplot(aes(x = mpg, y = disp, color = as_factor(gear))) +
    geom_point(show.legend = FALSE, size = 5) +
    scale_color_brewer(palette = "Set1", type = "qual") +
    labs(title = "MT Cars")
```

Когда я пытаюсь добавить dev = "emf" или dev = devEMF::emf(emfPlus = FALSE, custom.lty = FALSE) внутри функции knitr::opts_chunk$set(), изображения не отображаются в выводе PowerPoint. Вместо этого PDF-файлы сохраняются в выходной каталог (который не будет работать с PowerPoint). Если я добавлю эти строки вместе с fig.ext = "emf", изображения не будут загружаться полностью.

Я ценю любые идеи или обходные пути.

...