As I mentioned earlier I’ve wanted to use otf-fonts in ggplot2-graphics

## Rmd-Files

The next step is to use them in Knitr‘s RMarkdown-documents. That’s simple: Just use it as I showed earlier.

  1 2 3 4 5 6 7 8 9 10 11  title: "demo" output: html_document {r} library(ggplot2) ggplot(mtcars, aes(x=wt, y=mpg, color=factor(gear))) + geom_point() + ggtitle("Fuel Efficiency of 32 Cars") + xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") + theme(text=element_text(size=16, family="Source Code Pro"))  

## Rnw-Files

But using these fonts in Rnw-files — that’s embedded R-code in LaTeX-files — seems to be a little more complex.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14  \documentclass{article} \begin{document} < >= Sys.setenv(LANG = "en") library(ggplot2, quietly=TRUE) ggplot(mtcars, aes(x=wt, y=mpg, color=factor(gear))) + geom_point() + ggtitle("Fuel Efficiency of 32 Cars") + xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") + theme(text=element_text(family="Source Code Pro")) @ \end{document} 

This document produces an error:

 1 2 3 4  Error in grid.Call.graphics(L_text, as.graphicsAnnot(x$label), x$x, x$y, : invalid font type Calls: knit ... drawDetails -> drawDetails.text -> grid.Call.graphics In addition: There were 50 or more warnings (use warnings() to see the first 50)  So I was looking for a work around. ## Using Cairo I’ve found the Cairo-device.   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17  \documentclass{article} \begin{document} <<>>= Sys.setenv(LANG = "en") library(Cairo) library(ggplot2, quietly=TRUE) @ <>= ggplot(mtcars, aes(x=wt, y=mpg, color=factor(gear))) + geom_point() + ggtitle("Fuel Efficiency of 32 Cars") + xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") + theme(text=element_text(family="Source Code Pro")) @ \end{document}  But this generates lots of warnings.  1  ## Warning in grid.Call(LtextBounds, as.graphicsAnnot(x$label), x$x,x$y, : font family 'Source Code Pro' not found in PostScript fontdatabase 

So I suppress warnings in the ggplot-chunk:

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18  \documentclass{article} \begin{document} <<>>= Sys.setenv(LANG = "en") library(Cairo) library(ggplot2, quietly=TRUE) @ <>= ggplot(mtcars, aes(x=wt, y=mpg, color=factor(gear))) + geom_point() + ggtitle("Fuel Efficiency of 32 Cars") + xlab("Weight (x1000 lb)") + ylab("Miles per Gallon") + theme(text=element_text(family="Source Code Pro")) @ \end{document} 

and tata: