更改字体后 RMarkdown 不会编织 ggplot2 图
RMarkdown won't knit ggplot2 plot after changing font
下图是在 R 中使用以下代码生成的(没有任何问题):
library(tidyverse)
library(extrafont)
loadfonts()
x <- rexp(100)
data.frame(info = x) %>%
ggplot() +
geom_histogram(aes(x = info), col = "red", fill = "red", alpha = 0.5) +
theme_minimal() +
theme(text = element_text(family="LM Roman 10"))
如您所见,绘图的字体设置为“LM Roman 10”,多亏了这个 post 并且它在 R 中完美运行。
然而,当我尝试使用 RMarkdown 将图像放入 LaTeX 文档时,出现此错误:
Quitting from lines 10-22 (min_example.Rmd)
Error in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
invalid font type
Calls: <Anonymous> ... drawDetails -> drawDetails.text -> grid.Call.graphics
Además: There were 50 or more warnings (use warnings() to see the first 50)
Ejecución interrumpida
这是 min_example.Rmd
的代码
---
title: "Untitled"
author: "Javier Rojas"
date: "2/9/2020"
output: pdf_document
---
```{r, echo=FALSE}
library(tidyverse)
library(extrafont)
loadfonts()
x <- rexp(100)
data.frame(info = x) %>%
ggplot() +
geom_histogram(aes(x = info), col = "red", fill = "red", alpha = 0.5) +
theme_minimal() +
theme(text = element_text(family="LM Roman 10"))
```
我正在使用 Mac 计算机 运行 macOS High Sierra 和 R 3.6.1
通常很容易解决。问题应该是,你的电脑没有安装字体。
您必须下载字体的 .otf
文件,例如(https://fonts2u.com/lmroman10-regular.font) 并将其安装在您的操作系统上。
如果你不知道如何操作,就google它(例如“安装额外的字体Windows”),网上有很多教程。
-编辑-
我有点快 - 没有意识到问题只是来自 运行 它在 rmarkdown 中。尝试以下操作:
```{r, fig.showtext=TRUE, echo=FALSE}
library("tidyverse")
library("showtext")
x <- rexp(100)
font_add("LM Roman 10", regular = "lmroman10-regular.otf")
data.frame(info = x) %>%
ggplot() +
geom_histogram(aes(x = info), col = "red", fill = "red", alpha = 0.5) +
theme_minimal() +
theme(text = element_text(family="LM Roman 10"))
```
请务必添加 fig.showtext=TRUE
、library("showtext")
和 font_add("LM Roman 10", regular = "lmroman10-regular.otf")
。
我只是将 .otf 放在我的项目文件夹中 - 但我认为您也可以给它另一个路径。
下图是在 R 中使用以下代码生成的(没有任何问题):
library(tidyverse)
library(extrafont)
loadfonts()
x <- rexp(100)
data.frame(info = x) %>%
ggplot() +
geom_histogram(aes(x = info), col = "red", fill = "red", alpha = 0.5) +
theme_minimal() +
theme(text = element_text(family="LM Roman 10"))
如您所见,绘图的字体设置为“LM Roman 10”,多亏了这个 post 并且它在 R 中完美运行。
然而,当我尝试使用 RMarkdown 将图像放入 LaTeX 文档时,出现此错误:
Quitting from lines 10-22 (min_example.Rmd)
Error in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
invalid font type
Calls: <Anonymous> ... drawDetails -> drawDetails.text -> grid.Call.graphics
Además: There were 50 or more warnings (use warnings() to see the first 50)
Ejecución interrumpida
这是 min_example.Rmd
---
title: "Untitled"
author: "Javier Rojas"
date: "2/9/2020"
output: pdf_document
---
```{r, echo=FALSE}
library(tidyverse)
library(extrafont)
loadfonts()
x <- rexp(100)
data.frame(info = x) %>%
ggplot() +
geom_histogram(aes(x = info), col = "red", fill = "red", alpha = 0.5) +
theme_minimal() +
theme(text = element_text(family="LM Roman 10"))
```
我正在使用 Mac 计算机 运行 macOS High Sierra 和 R 3.6.1
通常很容易解决。问题应该是,你的电脑没有安装字体。
您必须下载字体的 .otf
文件,例如(https://fonts2u.com/lmroman10-regular.font) 并将其安装在您的操作系统上。
如果你不知道如何操作,就google它(例如“安装额外的字体Windows”),网上有很多教程。
-编辑- 我有点快 - 没有意识到问题只是来自 运行 它在 rmarkdown 中。尝试以下操作:
```{r, fig.showtext=TRUE, echo=FALSE}
library("tidyverse")
library("showtext")
x <- rexp(100)
font_add("LM Roman 10", regular = "lmroman10-regular.otf")
data.frame(info = x) %>%
ggplot() +
geom_histogram(aes(x = info), col = "red", fill = "red", alpha = 0.5) +
theme_minimal() +
theme(text = element_text(family="LM Roman 10"))
```
请务必添加 fig.showtext=TRUE
、library("showtext")
和 font_add("LM Roman 10", regular = "lmroman10-regular.otf")
。
我只是将 .otf 放在我的项目文件夹中 - 但我认为您也可以给它另一个路径。