Как я могу сделать 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", заменит шрифты с засечками, что выглядит плохо.