使用库表情字体绘制崩溃 r 会话

plot crash r session with library emojifont

当我加载 library(emojifont) 时,完全以下情节使我的 r 会话崩溃。这个脚本几个月前就可以使用了,图书馆也有同样的版本。我自己的安装可能有问题,因为维护者无法重现该问题 (as I posted an issue on github)。但是我没有任何线索。
我使用 Ubuntu 16.04。库 emojifont 版本 0.50.

R version 3.4.1 (2017-06-30) -- "Single Candle"
Copyright (C) 2017 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

确实,我注意到了以下行为:

测试 1

如果我运行在新会话中按此顺序编写代码,第一个情节就可以了:

# Order 1 ----
x <- rnorm(10)
y <- rnorm(10)
plot(x, y, cex=0)

library(emojifont)
text(x, y, labels=emoji('cow'), cex=1.5, col='steelblue', family='OpenSansEmoji')

但是,如果我关闭绘图并在同一会话中绘制一个新绘图 plot(x, y, cex=0),会话就会崩溃。

测试 2

如果在 新会话 中,我在情节之前调用库,即使没有 emoji 内部,对情节的调用也会直接导致会话崩溃:

# Order 2 ----
library(emojifont)
x <- rnorm(10)
y <- rnorm(10)
plot(x, y, cex=0)
# Dont have time to run this line, the session crashes
text(x, y, labels=emoji('cow'), cex=1.5, col='steelblue', family='OpenSansEmoji')

错误如下:

Erreur : C stack usage 140727315310780 is too close to the limit
De plus : Warning message:
In axis(side = side, at = at, labels = labels, ...) : font family 'T??VUUUUU?%P?,@73@' not found, will use 'wqy-microhei' instead
Erreur :

似乎无法识别字体,但我尝试在我的计算机上直接安装这两个字体系列并没有改变。顺便说一句,如果我只在控制台中发送 emoji('evergreen_tree'),它会 returns 表情符号,它假定字体系列已被识别:

[1] ""

我更新了所有库并重新安装了 emojifont。
emojifont 中是否有任何修改绘图行为的内容?我的安装中的哪些更改会导致出现此问题?

由于 Ubuntu 中的库 libfreetype6-dev 已更新,因此有必要重新安装库 emojifont。但是,您还必须重新安装它所依赖的库:

install.packages(c("sysfonts", "showtextdb", "showtext"))
install.packages("emojifont")

这解决了问题。 感谢@Roland 给我指明了方向。