extrafont
extrafont copied to clipboard
Warnings & all characters end up on top of each other
My code:
#Create local directory for my packages
dir.create(path = "M:/PortableSoftware/R-3.0.2/mylibrary")
#Set local library for my packages
my.library <- "M:/PortableSoftware/R-3.0.2/mylibrary"
#Set repository
my.repo <- getOption(x = "repos")
my.repo["CRAN"] <- "http://cran.uib.no/"
#Install extrafont package
install.packages(pkgs = "extrafont", lib = my.library, repos = my.repo, dependencies = TRUE, type = "win.binary", verbose = TRUE)
#Load extrafont package
library(package = "extrafont", lib.loc = my.library, verbose = TRUE)
#Import all .ttf fonts in a given directory
ttf_import(paths = "M:/MyStuff/Fonts/timesnewroman6.80/")
#Verify that the fonts were imported
fonts()
fonttable()
#Register the imported fonts for R's pdf (or postscript) device
loadfonts(device = "pdf", quiet = FALSE)
#Testing if it worked
pdf("font_plot.pdf", family="Times New Roman", width=4, height=4)
plot(mtcars$mpg, mtcars$wt,
main = "Fuel Efficiency of 32 Cars",
xlab = "Weight (x1000 lb)",
ylab = "Miles per Gallon")
dev.off()
Console output:
`
R version 3.0.2 (2013-09-25) -- "Frisbee Sailing"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64 (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.
R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
> #Create local directory for my packages
> dir.create(path = "M:/PortableSoftware/R-3.0.2/mylibrary")
Warning message:
In dir.create(path = "M:/PortableSoftware/R-3.0.2/mylibrary") :
'M:\PortableSoftware\R-3.0.2\mylibrary' already exists
>
> #Set local library for my packages
> my.library <- "M:/PortableSoftware/R-3.0.2/mylibrary"
>
> #Set repository
> my.repo <- getOption(x = "repos")
> my.repo["CRAN"] <- "http://cran.uib.no/"
>
> #Install extrafont package
> install.packages(pkgs = "extrafont", lib = my.library, repos = my.repo, dependencies = TRUE, type = "win.binary", verbose = TRUE)
trying URL 'http://cran.uib.no/bin/windows/contrib/3.0/extrafont_0.15.zip'
Content type 'application/zip' length 34007 bytes (33 Kb)
opened URL
downloaded 33 Kb
package ‘extrafont’ successfully unpacked and MD5 sums checked
The downloaded binary packages are in
C:\Users\sverrej\AppData\Local\Temp\RtmpYrkbZs\downloaded_packages
>
> #Load extrafont package
> library(package = "extrafont", lib.loc = my.library, verbose = TRUE)
Registering fonts with R
>
> #Import all .ttf fonts in a given directory
> ttf_import(paths = "M:/MyStuff/Fonts/timesnewroman6.80/")
Scanning ttf files in M:/MyStuff/Fonts/timesnewroman6.80/ ...
Extracting .afm files from .ttf files...
M:\MyStuff\Fonts\timesnewroman6.80\times.ttf : TimesNewRomanPSMT already registered in fonts database. Skipping.
M:\MyStuff\Fonts\timesnewroman6.80\timesbd.ttf : TimesNewRomanPS-BoldMT already registered in fonts database. Skipping.
M:\MyStuff\Fonts\timesnewroman6.80\timesbi.ttf : TimesNewRomanPS-BoldItalicMT already registered in fonts database. Skipping.
M:\MyStuff\Fonts\timesnewroman6.80\timesi.ttf : TimesNewRomanPS-ItalicMT already registered in fonts database. Skipping.
Found FontName for 0 fonts.
Scanning afm files in M:/PortableSoftware/R-3.0.2/mylibrary/extrafontdb/metrics
Warning messages:
1: In readLines(fd, 30) :
seek on a gzfile connection returned an internal error
2: In readLines(fd, 30) :
seek on a gzfile connection returned an internal error
3: In readLines(fd, 30) :
seek on a gzfile connection returned an internal error
4: In readLines(fd, 30) :
seek on a gzfile connection returned an internal error
>
> #Verify that the fonts were imported
> fonts()
[1] "Times New Roman"
> fonttable()
package afmfile fontfile
1 NA timesbi.afm.gz M:\\MyStuff\\Fonts\\timesnewroman6.80\\timesbi.ttf
2 NA timesbd.afm.gz M:\\MyStuff\\Fonts\\timesnewroman6.80\\timesbd.ttf
3 NA timesi.afm.gz M:\\MyStuff\\Fonts\\timesnewroman6.80\\timesi.ttf
4 NA times.afm.gz M:\\MyStuff\\Fonts\\timesnewroman6.80\\times.ttf
FullName FamilyName FontName Bold Italic
1 Times New Roman Bold Italic Times New Roman TimesNewRomanPS-BoldItalicMT TRUE TRUE
2 Times New Roman Bold Times New Roman TimesNewRomanPS-BoldMT TRUE FALSE
3 Times New Roman Italic Times New Roman TimesNewRomanPS-ItalicMT FALSE TRUE
4 Times New Roman Times New Roman TimesNewRomanPSMT FALSE FALSE
Symbol afmsymfile
1 FALSE NA
2 FALSE NA
3 FALSE NA
4 FALSE NA
>
> #Register the imported fonts for R's pdf (or postscript) device
> loadfonts(device = "pdf", quiet = FALSE)
Times New Roman already registered with pdfFonts().
>
> #Testing if it worked
> pdf("font_plot.pdf", family="Times New Roman", width=4, height=4)
Warning messages:
1: In pdf("font_plot.pdf", family = "Times New Roman", width = 4, height = 4) :
unknown AFM entity encountered
2: In pdf("font_plot.pdf", family = "Times New Roman", width = 4, height = 4) :
unknown AFM entity encountered
3: In pdf("font_plot.pdf", family = "Times New Roman", width = 4, height = 4) :
unknown AFM entity encountered
4: In pdf("font_plot.pdf", family = "Times New Roman", width = 4, height = 4) :
unknown AFM entity encountered
> plot(mtcars$mpg, mtcars$wt,
+ main = "Fuel Efficiency of 32 Cars",
+ xlab = "Weight (x1000 lb)",
+ ylab = "Miles per Gallon")
There were 50 or more warnings (use warnings() to see the first 50)
> dev.off()
null device
1
> warnings()
Warning messages:
1: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x6d
2: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x31
3: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x30
4: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x31
5: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x30
6: In axis(side = side, at = at, labels = labels, ...) :
font metrics unknown for character 0x4d
7: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x31
8: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x35
9: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x31
10: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x35
11: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x32
12: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x30
13: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x32
14: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x30
15: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x32
16: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x35
17: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x32
18: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x35
19: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x33
20: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x30
21: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x33
22: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x30
23: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x6d
24: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x32
25: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x32
26: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x33
27: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x33
28: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x34
29: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x34
30: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x35
31: In axis(side = side, at = at, labels = labels, ...) :
font width unknown for character 0x35
32: In title(...) : font width unknown for character 0x46
33: In title(...) : font width unknown for character 0x75
34: In title(...) : font width unknown for character 0x65
35: In title(...) : font width unknown for character 0x6c
36: In title(...) : font width unknown for character 0x20
37: In title(...) : font width unknown for character 0x45
38: In title(...) : font width unknown for character 0x66
39: In title(...) : font width unknown for character 0x66
40: In title(...) : font width unknown for character 0x69
41: In title(...) : font width unknown for character 0x63
42: In title(...) : font width unknown for character 0x69
43: In title(...) : font width unknown for character 0x65
44: In title(...) : font width unknown for character 0x6e
45: In title(...) : font width unknown for character 0x63
46: In title(...) : font width unknown for character 0x79
47: In title(...) : font width unknown for character 0x20
48: In title(...) : font width unknown for character 0x6f
49: In title(...) : font width unknown for character 0x66
50: In title(...) : font width unknown for character 0x20
>
The output:
I have the same issue using "Arial" with R3.4.4, extrafont 0.17 and extrafontdb 1.0 on a Win10 machine.
My devtools::session_info()
is as follows:
Session info ------------------------------------------------------------------------------------------------------
setting value
version R version 3.4.4 (2018-03-15)
system x86_64, mingw32
ui RStudio (1.1.423)
language (EN)
collate Dutch_Belgium.1252
tz Europe/Paris
date 2018-05-21
Packages ----------------------------------------------------------------------------------------------------------
package * version date source
assertthat 0.2.0 2017-04-11 CRAN (R 3.4.1)
base * 3.4.4 2018-03-15 local
bindr 0.1.1 2018-03-13 CRAN (R 3.4.4)
bindrcpp 0.2.2 2018-03-29 CRAN (R 3.4.4)
cellranger 1.1.0 2016-07-27 CRAN (R 3.4.1)
compiler 3.4.4 2018-03-15 local
datasets * 3.4.4 2018-03-15 local
devtools 1.13.5 2018-02-18 CRAN (R 3.4.3)
digest 0.6.15 2018-01-28 CRAN (R 3.4.3)
dplyr * 0.7.5 2018-05-19 CRAN (R 3.4.4)
extrafont * 0.17 2014-12-08 CRAN (R 3.4.0)
extrafontdb 1.0 2012-06-11 CRAN (R 3.4.0)
glue 1.2.0 2017-10-29 CRAN (R 3.4.2)
graphics * 3.4.4 2018-03-15 local
grDevices * 3.4.4 2018-03-15 local
grofit * 1.1.1-1 2014-10-06 CRAN (R 3.4.0)
magrittr 1.5 2014-11-22 CRAN (R 3.4.1)
memoise 1.1.0 2017-04-21 CRAN (R 3.4.1)
methods * 3.4.4 2018-03-15 local
minpack.lm * 1.2-1 2016-11-20 CRAN (R 3.4.3)
pillar 1.2.2 2018-04-26 CRAN (R 3.4.4)
pkgconfig 2.0.1 2017-03-21 CRAN (R 3.4.1)
purrr 0.2.4 2017-10-18 CRAN (R 3.4.4)
R6 2.2.2 2017-06-17 CRAN (R 3.4.1)
Rcpp 0.12.17 2018-05-18 CRAN (R 3.4.4)
readxl * 1.1.0 2018-04-20 CRAN (R 3.4.4)
rlang 0.2.0 2018-02-20 CRAN (R 3.4.3)
Rttf2pt1 1.3.6 2018-02-22 CRAN (R 3.4.3)
stats * 3.4.4 2018-03-15 local
tibble 1.4.2 2018-01-22 CRAN (R 3.4.3)
tidyr * 0.8.1 2018-05-18 CRAN (R 3.4.4)
tidyselect 0.2.4 2018-02-26 CRAN (R 3.4.4)
tools 3.4.4 2018-03-15 local
utils * 3.4.4 2018-03-15 local
withr 2.1.2 2018-03-15 CRAN (R 3.4.4)
yaml 2.1.19 2018-05-01 CRAN (R 3.4.4)
The code called to make extrafont
work was:
extrafont::font_import()
extrafont::loadfonts(device="pdf")
When calling fonts()
and fonttable()
I can verify that I have "Arial" in the list. When calling a pdf device with family="Arial"
I am getting warnings like above:
(...)
1: In strwidth(legend, units = "user", cex = cex, font = text.font) :
font width unknown for character 0x74
2: In strwidth(legend, units = "user", cex = cex, font = text.font) :
font width unknown for character 0x65
3: In strwidth(legend, units = "user", cex = cex, font = text.font) :
font width unknown for character 0x73
4: In strwidth(legend, units = "user", cex = cex, font = text.font) :
font width unknown for character 0x74
(...)
I was having the same issue, but using
ggsave(device = cairo_pdf...
fixed it (previously I was calling cairo_pdf(), which did printed to PDF but had overlapping titles like users above).
Thanks MichelineCampbell! That worked for me!
I was having the same issue, but using
ggsave(device = cairo_pdf...
fixed it (previously I was calling cairo_pdf(), which did printed to PDF but had overlapping titles like users above).
I have beening trying to solve this overlapping problem all day. Thanks a lot!