通过svglite渲染的绘图在通过 Travis 渲染时与在本地渲染时看起来不同。
发生这种情况是因为我的本地机器(在本例中为 macOS)为默认的 R 绘图使用了不同的(更标准的?)字体
gdtools::match_family("Arial")
## [1] "Arial"
gdtools::match_family("sans")
## [1] "Bitstream Vera Sans"
...比travis 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 字体小插图中了解到,我可能应该使用用户字体别名来完成此操作,但我还没有设法让它工作,并且对整个字体业务感到非常困惑。
我只想要来自 svglite 的 SVG 在任何地方看起来都一样。
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)
```
(整个 repo 和 travis 构建在这里,完成的网站在http://datascience.phil.fau.de/rmdbpl/)。
在本地(macOS)渲染时,所有三个图看起来大致相同:
在Travis CI上构建时,通过 svglite 渲染的绘图,在没有“Liberation Sans”的机器上查看,将替换为衬线字体,这看起来很糟糕。