Скомпилируйте RMarkdown PDF с вафельной диаграммой и символами неудачи. MWE включен

Я не могу скомпилировать PDF, используя RMarkdown, вафельный пакет и глифы

Не имеет значения, использую ли я устройство TIKZ или рендеринг PDF. Документ без проблем компилируется в HTML.

Единственный способ обойти это сейчас - создать SVG-изображение с помощью HTML-компилятора, а затем ссылаться на эти файлы в моем промежуточном.TEX-файле.

Обратите внимание, что если вы просто запустите код ниже строки, которая говорит: " ## ---- waffle_figure ---- ". Он должен создать диаграмму, учитывая, что вы ранее установили в своей системе шрифт fontawesome, установили пакет extrafont в R и выполните команду font_install().

---
title: "Waffle"
output:
  pdf_document:
    latex_engine: xelatex
  html_document: default
header-includes:
- \usepackage{fontspec}
- \defaultfontfeatures{Extension = .otf}
- \usepackage{fontawesome}
- \usepackage{tikz}
---

```{r setup, include=FALSE}
library(knitr)
library(tikzDevice)
knitr::opts_chunk$set(warning = FALSE,  error = FALSE, message = FALSE,  results='hide', echo = FALSE, dev = "tikz", external = TRUE)
```

\faTwitter

## Waffle Plot

You can also embed plots, for example:  \newline

```{r pressure, echo=FALSE, dev="tikz"}
## ---- waffle_figure ----
loadpackages <- function(package.list = c("ggplot2", "Rcpp")) {
    new.packages <- package.list[!(package.list %in% installed.packages()[,"Package"])]
    if (length(new.packages)){install.packages(new.packages, repos = 'http://cran.us.r-project.org')}
    lapply(eval(package.list), require, character.only = TRUE)}

loadpackages(c("waffle", "extrafont", "grid", "gridExtra", "tikzDevice"))
parts <- c(40, 30, 20, 10)
waffle(parts,
       rows=10,
       use_glyph = "user",
       glyph_size = 5)
```

1 ответ

Решение

Вафельный пакет обновлен! Теперь и кварцевые, и каирские устройства работают с knitr/rmarkdown. Огромное спасибо вам за Боба Рудиса и Дэйва Ганди.

Пересмотренный код включает латиноамериканский (LaTeX) шрифт, чтобы продемонстрировать, что можно использовать латексные шрифты вместе с потрясающими глифами в вафельных диаграммах.

Чтобы код работал, вы должны сначала установить lmroman10-регулярно-webfont.ttf и fontawesome-webfont.ttf с их соответствующих веб-сайтов: нажмите на ссылку набора веб - шрифтов и загрузите Fontawesome.


title: "Waffle"
output:
  pdf_document:
    latex_engine: xelatex
  html_document: default
header-includes:
- \usepackage{fontspec}
- \defaultfontfeatures{Extension = .otf}
- \usepackage{fontawesome}
- \usepackage{tikz}
---

```{r setup, include=FALSE}
library(knitr)
knitr::opts_chunk$set(warning = FALSE,  error = FALSE, message = FALSE,  results='hide', echo = FALSE, dev = "tikz", external = TRUE)
```

## Font Awesome Gyphy

Font awesome glyphs are easy to integrate into the main text. For example: \faTwitter.

## Waffle Plot

You can also embed plots with glyphs and custom fonts, for example:  \newline

```{r pressure, echo=FALSE, dev="quartz_pdf", dev.args=list(family = "Helvetica")}
## ---- waffle_figure ----
loadpackages <- function(package.list = c("ggplot2", "Rcpp")) {
    new.packages <- package.list[!(package.list %in% installed.packages()[,"Package"])]
    if (length(new.packages)){install.packages(new.packages, repos = 'http://cran.us.r-project.org')}
    lapply(eval(package.list), require, character.only = TRUE)}

loadpackages(c("waffle", "extrafont", "grid", "gridExtra"))
# font_import()  # Run this command, type "y", and press enter after installing new fonts.

parts <- c(40, 30, 20, 10)
waffle(parts,
       rows=10,
       use_glyph = "user",
       glyph_size = 7)+ggtitle("Some Sample Text Here")+
  theme(plot.title = element_text(family="LM Roman 10"))
```
Другие вопросы по тегам