将字体导入到不在extrafont中的R.

时间:2017-09-15 10:40:50

标签: r

简单的问题,但我似乎无法在任何地方找到一个很好的解释。我想在R. Futura中使用Futura字体(在mac字体书中),而不是在extrafont中使用mac(因此windowsFont函数不起作用),我试过使用quartzFonts函数,但这似乎不起作用(也许我做错了..?) -

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

第一步是找到字体文件。我的计算机上的某些字体文件(helvet)是/path/to/helvet/uhvr8a.pfb path/to/helvet/uhvb8a.pfb path/to/helvet/uhvb8a.pfb

然后你使用

font.add("name_to_use_in_your_R_script", regular = "path/to/regular/font/file", etc)

以下是一个例子。 (下载字体文件,以便可以重现示例。对于您,您可以将file.path("fonts", "uhvr8a.pfb")行更改为相应字体文件的路径。

\documentclass[a4paper,10pt]{article}

\begin{document}

<<knitrOpts>>=
library(knitr)
library(sysfonts)
library(showtext)
knitr::opts_chunk$set(fig.showtext = TRUE)
library(ggplot2)
library(hutils)
@

A plot using ordinary fonts:

<<ordinary>>=
ggplot(data = data.frame(x = 0:25 %% 4,
                         y = 27:2 %/% 4,
                         label = LETTERS[1:26])) + 
  geom_text(aes(x, y, label = label), size = 18) + 
  theme_void()
@

<<using_helvet>>=
provide.dir("fonts")
for (face in c("uhvr8a.pfb", "uhvb8a.pfb", "uhvro8a.pfb")) {
  download.file(paste0("https://github.com/grattaninstitute/Assessing-2016-Super-tax-reforms/raw/master/Fonts/helvetic/", face), 
                mode = "wb",
                destfile = file.path("fonts", face))
}

font.add("helvet",
         regular = file.path("fonts", "uhvr8a.pfb"),
         bold = file.path("fonts", "uhvb8a.pfb"),
         italic = file.path("fonts", "uhvro8a.pfb"))
@

<<helvet>>=
ggplot(data = data.frame(x = 0:25 %% 4,
                         y = 27:2 %/% 4,
                         label = LETTERS[1:26])) + 
  geom_text(aes(x, y, label = label), size = 18, family = "helvet") + 
  theme_void()
@




\end{document}

enter image description here