1

通过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”的机器上查看,将替换为衬线字体,这看起来很糟糕。

特拉维斯

4

0 回答 0