Как я могу сделать svglite рендеринга портативных svgs на travis-ci?

Графики, отображаемые через svglite, выглядят по-разному, когда отображаются через Travis, а затем локально.

Это происходит потому, что мой локальный компьютер (в данном случае macOS) использует псевдонимы различных (более стандартных?) Шрифтов для графиков R по умолчанию

gdtools::match_family("Arial")
## [1] "Arial"
gdtools::match_family("sans")
## [1] "Bitstream Vera Sans"

... чем Трэвис CI:

gdtools::match_family("Arial")
## [1] "Liberation Sans"
gdtools::match_family("sans")
## [1] "DejaVu Sans"

"Liberation Sans", в свою очередь, не обязательно доступен на всех компьютерах, просматривающих svg (он не был у меня, пока я не запустил brew cask install font-liberation-sans).

Таким образом, в то время как локально сгенерированные SVG имеют довольно приличную переносимость (~"Arial"), сгенерированные TravisCI (~"Liberation Sans") этого не делают.

Я бы хотел отличную мобильность, которая работает на любом компьютере с разумным текущим браузером. Из виньеток svglite fonts я понимаю, что для этого мне, вероятно, следует использовать псевдонимы пользовательских шрифтов, но мне не удалось заставить его работать, и я довольно озадачен по поводу всего бизнеса шрифтов.

Я просто хочу SVG от svglite, которые везде выглядят одинаково.

Вот шаблон index.Rmd это создает разные сюжеты.

---
title: "index"
author: "foo"
date: "11/2/2018"
output:
  rmarkdown::html_document
---

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

# `png` Device

```{r png, echo=FALSE, dev = 'png'}
plot(pressure)
```


# `svg` Device

```{r svg, echo=FALSE, dev = 'svg'}
plot(pressure)
```


# `svglite` Device

```{r svglite, echo=FALSE, dev = 'svglite'}
plot(pressure)
```

(Все сборки репо и Трэвиса находятся здесь, готовый сайт находится по адресу http://datascience.phil.fau.de/rmdbpl/).

При локальном отображении (macOS) все три графика выглядят примерно одинаково:

визуализируется локально

При сборке на Travis CI сюжет, отображаемый с помощью svglite, просматриваемый на машине без "Liberation Sans", заменит шрифты с засечками, что выглядит плохо.

Трэвис

0 ответов

Другие вопросы по тегам