【问题标题】:knitr unable to load showtext / sysfontsknitr 无法加载 showtext / sysfonts
【发布时间】:2017-05-31 18:16:42
【问题描述】:

我一直在使用 knitr 和 showtext 库来生成使用某些 Google 字体的 HTML 文件。在我将 R 升级到 3.4 之前,它一直运行良好。当我现在编织文档时,出现以下错误:

错误:无法加载包“sysfonts”执行停止

这可以通过编织来重现:

---
title: "test"
output: html_document
---

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

没有库(showtext)它运行良好。

然后,当我尝试使用相同的模板与 library(sysfonts) 一起运行它时:

---
title: "test"
output: html_document
---

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

我收到此错误:

错误:“sysfonts”的包或命名空间加载失败:“sysfonts”的 loadNamespace() 中的 .onLoad 失败,详细信息:调用:dyn.load(file, DLLpath = DLLpath, ...) 错误:无法加载共享对象 '~/Library/R/3.4/library/sysfonts/libs/sysfonts.so': dlopen(~/Library/R/3.4/library/sysfonts/libs/sysfonts.so, 6): 库未加载:/ opt/X11/lib/libfreetype.6.dylib 参考来自:~/Library/R/3.4/library/sysfonts/libs/sysfonts.so 原因:找不到图片

这似乎是 sysfonts 库的问题。但是,我可以从控制台很好地加载 showtext 和 sysfonts。所以我不知道这是 sysfonts 问题还是 knitr 问题。我正在运行 El Capitan 10.6,最近又将 R 升级到 3.4。我尝试降级回 3.3,但仍然产生相同的错误。

【问题讨论】:

  • 您确定您只安装了一个 R 版本吗?我会尝试从您的 knitr 文档以及控制台打印R.home(),看看您是否得到相同的结果。如果不是这样,您可以检查.libPaths() 中的差异。
  • 它们都是一样的。不过,我仍然有以前版本的旧库,所以我删除了它们。不幸的是,这并没有什么不同。

标签: r knitr


【解决方案1】:

迟到的回复,但可能对其他人有用(如果在 Mac 上工作):

1) 删除所有相关的 R 包

remove.packages("sysfonts")
remove.packages("showtext")

2) 安装XQuartz

3) 重新安装并再次加载所有包

install.packages("sysfonts")
install.packages("showtext")

tcarnus on GitHub 提供的这个解决方案为我解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    相关资源
    最近更新 更多