带有extrafont的pdf会创建重叠文本

时间:2015-07-13 23:45:40

标签: r pdf fonts ggplot2 knitr

我试图在我的pdf中使用Arial字体,但是当我按照extrafont帮助文件中的说明操作时,每个点的文本都会相互重写:

library(extrafont)
library(ggplot2)

my_pdf <- function(file, width, height){
  loadfonts()
  pdf(file = file, width = width, height = height,
      family = "Arial")
} 

my_pdf("ArialTester.pdf")
qplot(1:10, 1:10, "point") + ggtitle(paste0(LETTERS,letters, collapse=""))
dev.off()

我在pdf中得到以下内容。请注意,标题是字母表。

这个问题的上下文是knitr,所以我需要一个设备函数,我可以设置为一个块选项(即dev = 'my_pdf'

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您需要使用embed_fonts()

library(extrafont)
library(ggplot2)

my_pdf <- function(file, width, height){
  loadfonts()
  pdf(file = file, width = width, height = height,
      family = "Arial")
}

my_pdf("ArialTester.pdf")
g <- qplot(1:10, 1:10, "point") + ggtitle(paste0(LETTERS,letters, collapse="")) +
  theme(text = element_text(family = "Arial"))
plot(g)
dev.off()
embed_fonts("ArialTester.pdf")