You need to set a new font family for use with pdf()
. This requires you to have Adobe Font Metric files (*.afm
files) for the fonts you wish to use. You can convert the .tty
files to .afm
ones or find .afm
files for Arial on the interweb if you don't already have them.
Arial <- Type1Font(family = "Arial",
metrics = c("ArialMT.afm",
"arial-BoldMT.afm",
"Arial-ItalicMT.afm",
"Arial-BoldItalicMT.afm"))
where the character vector metrics
contains the paths to the relevant .afm
files, The files should be specified in this order:
- plain face
- bold face
- italic face
- bold-italic face
The you use the pdfFonts()
function to add a mapping to these new fonts
pdfFonts(Arial = Arial)
where Arial
is the object produced by Type1Font()
earlier.
The final step is to use the family
argument in pdf()
which refers to one of the existing families as defined by pdfFonts()
:
pdf("testArial.pdf", family = "Arial")
plot(1:10, 1:10)
dev.off()
I haven't tried this as I don't have Arial on my system nor too many .afm
files lying around, but I pieced this together from several sources:
- Paul Murrell and Brian Ripley (2006) Non-standard fonts in PostScript and PDF graphics. R News, 6(2):41-47. PDF
- A posting by David L. Carlson on the R mailing list from earlier this year.
An alternative depending on how your system is set-up is to a Cairo-based PDF device as that will use the functions of your system to identify and load fonts based simply on their name. See ?cairo_pdf
and then the Cairo Fonts section of ?X11
for details.